Commit graph

2229 commits

Author SHA1 Message Date
Liam
45672d43e3 qt: avoid setting WA_DontCreateNativeAncestors on all platforms 2022-12-17 10:41:20 -05:00
liamwhite
a3bac5550d
Merge pull request #9451 from ameerj/camera-data-array
camera: Use pre-allocated vector for camera data
2022-12-17 10:21:50 -05:00
ameerj
7bf4bec257 camera: Use pre-allocated vector for camera data
And avoid an unnecessary copy
2022-12-16 18:00:47 -05:00
liamwhite
bbb202ceed
Merge pull request #6354 from ogniK5377/device-name
Set: Allow setting device nickname
2022-12-16 14:05:00 -05:00
liamwhite
6bc1a477bf
Merge pull request #8605 from devsnek/graceful-shutdown
let games gracefully exit
2022-12-16 11:57:33 -05:00
liamwhite
9bfd4d880e
Merge pull request #6769 from lat9nq/create-shortcut-2
yuzu qt, common: Add option to create game shortcuts on Linux
2022-12-16 11:57:16 -05:00
Liam
b81caf1879 qt: handle wayland-egl platform name 2022-12-16 08:47:22 -05:00
Chloe Marcec
c5f519e1e4 Set: Allow setting device nickname 2022-12-13 19:54:17 -05:00
lat9nq
5a5bb91f40 main: Address review feedback
Moves icon path to ~/.local/share/icons, though I'm opting to avoid
using the game title for the icon and desktop entry name as that would
cause filenames such as
"yuzu-cadence-of-hyrule-crypt-of-the-necrodancer-featuring-the-legend-of-zelda-demo.desktop".
2022-12-13 19:23:54 -05:00
lat9nq
18bdf45868 yuzu qt: Create shortcuts on Linux
This creates a Desktop Entry file and a PNG icon for the entry when the
user right-clicks a game and selects "Create Shortcut -> Create
{Application,Desktop} Shortcut". This uses the current executable's path
to create the shortcut.

yuzu qt: Add more error checking and OS gating for shortcuts

main: Remove FreeBSD gating for shortcuts

I'm not going to test FreeBSD, so I don't know if they follow
Freedesktop.org or not. I just have to let someone else verify that it
works there and let them enable it.

main: Move shortcut function to its own function

This function should really be in a common library, at least among
frontends.

main: Remove image manip references

main: Fix difference in MinGW and native GCC versions

main: Fix negation in creat shortcut

Addresses review comment

Co-authored-by: Jan Beich <jbeich@FreeBSD.org>

main: Re-enable freedesktop shorcuts for FreeBSD
2022-12-13 16:42:00 -05:00
Alexander Orzechowski
09e3029c11 gl_device: Use a more robust way to use strict context mode
Instead of checking a environment variable which may not actually
exist or is just wrong, ask QT if it's running on the wayland
platform.
2022-12-13 15:01:51 -05:00
Alexander Orzechowski
2221afaf26 OpenGL: Check for threading support
We need this.
2022-12-13 13:23:35 -05:00
Alexander Orzechowski
45fcde817e wayland: Always use exclusive fullscreen
Wayland does not allow clients to choose their own size and position
on the screen. The concept of fullscreening an application by sizing
it to the screen and removing decorations does not exist. Use
exclusive fullscreen instead.
2022-12-13 13:23:35 -05:00
Alexander Orzechowski
29fbce9fe6 RenderWidget: Set WA_DontCreateNativeAncestors
Some windowing systems like wayland are designed to show hardware accellerated
surfaces as subsurfaces and not native windows.
2022-12-13 13:23:35 -05:00
Liam
d5f53da79d renderer_opengl: refactor context acquire 2022-12-13 13:23:23 -05:00
Liam
179adee396 emu_thread: properly force shutdown for unresponsive guest programs 2022-12-12 21:38:20 -05:00
Gus Caplan
f44c60321e let games gracefully exit 2022-12-12 21:18:32 -05:00
Narr the Reg
0ed80c9818 yuzu: Make unlimited frame rate non persistent between game boots 2022-12-12 19:21:30 -06:00
Mai
0c531ff911
Merge pull request #9419 from liamwhite/no-gl
cmake: make OpenGL loader optional
2022-12-11 21:09:52 +00:00
Liam
8d1d6e149f cmake: make OpenGL loader optional
Co-authored-by: liushuyu <liushuyu@users.noreply.github.com>
2022-12-10 15:12:27 -05:00
Liam
5b837157bd video_core: Integrate SMAA
Co-authored-by: goldenx86 <goldenx86@users.noreply.github.com>
Co-authored-by: BreadFish64 <breadfish64@users.noreply.github.com>
2022-12-08 17:17:45 -05:00
merry
e1f5f4bdea
Merge pull request #9370 from liamwhite/break-unmapped
core: add option to break on unmapped access
2022-12-06 20:20:20 +00:00
liamwhite
d8534ea140
Merge pull request #9390 from lioncash/keyboard
applets: Extract callback types into aliases
2022-12-06 11:26:53 -05:00
liamwhite
bbdb6d391e
Merge pull request #9389 from lioncash/emumove
emulated_console/emulated_controller: std::move ParamPackage instances where applicable
2022-12-06 11:26:46 -05:00
liamwhite
a225ba4cda
Merge pull request #9391 from abouvier/cmake-sdl
cmake: use sdl2 imported target
2022-12-06 09:58:48 -05:00
Lioncash
dba84458be configure_graphics: Make SPIRV backend string translatable
The parenthetical needs to be translatable, like with GLASM
2022-12-06 00:13:07 -05:00
Alexandre Bouvier
e6ae720c33 cmake: use sdl2 imported target 2022-12-06 01:26:30 +01:00
Lioncash
fedd857054 applets/controller: Use aliases for callbacks 2022-12-05 19:06:04 -05:00
Lioncash
d8da9a2afd applets/error: Use aliases for callbacks 2022-12-05 19:06:04 -05:00
Lioncash
a84676c2aa applets/profile_select: Use aliases for callbacks
Deduplicates callback definitions and situates it in one place.
2022-12-05 19:06:04 -05:00
Lioncash
e26c86a6e7 applets/web_browser: Use aliases for callbacks
Deduplicates a lot of long callback declarations
2022-12-05 19:06:04 -05:00
Lioncash
9bbb77637e applets/software_keyboard: Use aliases for callbacks
Deduplicates really long std::function declarations to make the
interface nicer to read.
2022-12-05 19:06:01 -05:00
Lioncash
e4a16f50ef emulated_controller: Remove unused parameter in GetMappedDevices()
This isn't used, so it can be removed to make the function a little
nicer.
2022-12-05 18:27:18 -05:00
liamwhite
3b19f741bd
Merge pull request #6833 from abouvier/unbundle
cmake: prefer system libraries
2022-12-05 12:26:09 -05:00
liamwhite
522e7c5663
Merge pull request #9273 from ameerj/per-game-profile
Configuration: Add per-game input profiles
2022-12-04 13:38:01 -05:00
Alexandre Bouvier
8e17b5469f cmake: prefer system libraries 2022-12-04 17:09:25 +01:00
bunnei
f77cc6c412
Merge pull request #9344 from liamwhite/null
video_core: add null backend
2022-12-03 11:23:25 -08:00
liamwhite
75e16547f8
Merge pull request #9300 from ameerj/pch
CMake: Use precompiled headers to improve compile times
2022-12-03 14:10:06 -05:00
liamwhite
22aff09b33
Merge pull request #9289 from liamwhite/fruit-company
general: fix compile for Apple Clang
2022-12-03 12:09:21 -05:00
Matías Locatti
c043ba8467
Merge pull request #9303 from liamwhite/new-vulkan-init
Vulkan: update initialization
2022-12-02 18:32:54 -03:00
Liam
6072b22a0b core: add option to break on unmapped access 2022-12-02 08:25:45 -05:00
ameerj
5b5612c1cc CMake: Consolidate common PCH headers 2022-11-30 18:30:30 -05:00
Morph
49219b8a86
Merge pull request #9349 from lat9nq/cmake-322
CMakeLists: Bump minimum required CMake version to 3.22
2022-11-29 19:41:47 -05:00
ameerj
37bc5118ea CMake: Use precompiled headers 2022-11-29 18:50:49 -05:00
liamwhite
d6b63239ae
Merge pull request #9308 from lat9nq/from-scratch
startup_checks: Use Windows flow for *nix
2022-11-29 18:45:39 -05:00
liamwhite
cafca891ea
Merge pull request #9322 from german77/pump_events
input_common: Pump SDL events from main thread
2022-11-29 18:45:25 -05:00
lat9nq
0941ae0b61 CMake: Directly link to SDL2-static when appropriate
Trying to be lazy and alias SDL2 to SDL2-static causes issues in later
versions of CMake. Just use the same condition to tell which one to use.
2022-11-28 23:21:14 -05:00
Liam
89dd7dc180 video_core: add null backend 2022-11-28 19:49:09 -05:00
ameerj
4cbbf590e3 configure_input_player: Fix profile saving when using handheld controller type 2022-11-28 19:22:18 -05:00
ameerj
3de05726eb config: Custom profile detection fixes
Also only reads/writes applicable configs for the custom profiles.
2022-11-28 19:22:18 -05:00
ameerj
b1b20ad84a configure_input_per_game: Allow configuring all 8 players 2022-11-28 19:22:18 -05:00
Lioncash
e96f55b6e2 yuzu/main: Merge variable declaration into ifdef
This is only used in the non-Windows path.
2022-11-28 08:40:41 -05:00
liamwhite
6b64557ad6
Merge pull request #8829 from Docteh/qt6_0002
CMake: rework for Qt6 support
2022-11-27 17:56:22 -05:00
Liam
2956a33463 Vulkan: update initialization
Co-authored-by: bylaws <bylaws@users.noreply.github.com>
2022-11-27 14:58:28 -05:00
german77
7d8095d944 input_common: Pump sdl events from main thread 2022-11-27 11:09:40 -06:00
bunnei
3ab8d9ac7c
Merge pull request #9276 from goldenx86/fsrSlider
FSR Sharpening Slider
2022-11-27 00:13:15 -08:00
Matías Locatti
972bd6cb54
Sharpness instead of Sharpening 2022-11-26 02:14:10 -03:00
lat9nq
19a640286c configure_graphics: Implement custom FSR Sharpening setting 2022-11-25 22:42:54 -05:00
Kyle Kienapfel
a75542ad2d CMake: rework for Qt6 support
This PR rearranges things in the CMake system to make compiling with Qt6 possible

1. Camera API has changed in Qt6, so the camera feature is disabled
2. A previous fix involving QLocale is now version gated.
3. QRegExp replaced with QRegularExpression, see #5343
4. Qt6_LOCATION option added to specify a location to search for Qt6
  (see examples below)
5. windeployqt is used to copy Qt6 files into the build directory on Windows

Notes for Arch Linux
Arch install happened to have qt6-base qt6-declarative qt6-translations installed

mkdir build && cd build
cmake .. -GNinja -DYUZU_USE_BUNDLED_VCPKG=ON -DYUZU_TESTS=OFF -DENABLE_QT6=YES -DYUZU_USE_BUNDLED_QT=NO

Windows (MSVC)
Qt wants users to download precompiled libraries via an online installer,
it is worth noting that the GPL/LGPL takes precendence over any ...

In the Qt Maintenance tool, under a version, such as 6.3.1
Select "MSVC 2019 64-bit"
Under Additional Libraries Qt Multimedia may be of use for Camera support

For the Web Applet I had to select the following:
PDF Positioning WebChannel WebEngine

mkdir build && cd build
cmake -G "Visual Studio 16 2019" -DQt6_LOCATION=C:/Qt/6.4.0/msvc2019_64/ \
-DENABLE_COMPATIBILITY_LIST_DOWNLOAD=YES -DYUZU_USE_BUNDLED_QT=NO \
-DENABLE_QT_TRANSLATION=YES -DENABLE_QT6=YES ..

Some numbers for reference (msvc2019_64)
Qt5 (slimmed down) 508 MB
Qt5.15.2 all in    929 MB
Qt6.3.1           1.71 GB
Qt6.3.2           1.73 GB
Qt6.4.0-beta3     1.83 GB
Qt6.4.0           1.67 GB
2022-11-24 06:28:42 -08:00
Matías Locatti
f209e976f4 FSR Sharpening Slider part 1 - only a global slider 2022-11-24 04:22:13 -05:00
lat9nq
35319ca3a5 startup_checks: Use fmt::print, fix exec error handling
Uses fmt::print opposed to std::fprintf for error printing.

Call exit instead of returning to caller to prevent a like issue the
previous commit was trying to solve.

Removes unneeded comment.

Co-authored-by: liamwhite <liamwhite@users.noreply.github.com>
Co-authored-by: Lioncash <mathew1800@gmail.com>
2022-11-23 21:59:24 -05:00
lat9nq
3e6c835a64 startup_checks: Use Windows flow for *nix
Spawns a child using fork and exec as opposed to fork alone. Workaround
for the macos file manager complaining about not supporting fork without
exec.

Control flow for *nix is now roughly the same as for Windows.
2022-11-23 21:35:47 -05:00
Liam
9abceaed61 Qt: assign menuRole properties for actions 2022-11-23 12:41:56 -05:00
Liam
9737615948 general: fix compile for Apple Clang 2022-11-22 22:22:28 -05:00
Morph
7e0f70e5a1 qt_amiibo_settings: Use WebClient only if ENABLE_WEB_SERVICE is enabled
Resolves compilation errors when ENABLE_WEB_SERVICE is disabled in CMake configuration
2022-11-21 15:22:17 -05:00
ameerj
9efdad6a27 Configuration: Add per-game input profiles 2022-11-20 14:06:31 -05:00
bunnei
57a05b1653
Merge pull request #9238 from german77/cabinet_applet
service: am: Implement cabinet applet
2022-11-20 00:48:39 -08:00
Kyle Kienapfel
d23a35dfbd qt: Add Qt version to LogRuntimes 2022-11-17 19:14:14 -08:00
Kyle Kienapfel
ad3ee5c52b Qt6: Disable IR Sensor when compiling with Qt6
Gating the IR Sensor code behind a macro like so
`#if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0)) && YUZU_USE_QT_MULTIMEDIA`

The YUZU_USE_QT_MULTIMEDIA flag is implemented in later commit

Also the locale fix in src/yuzu/main.cpp is now gated against Qt6,
as it causes compilation error
2022-11-17 19:14:14 -08:00
Morph
e5a446a0df
Merge pull request #9229 from Docteh/achy_breaky_heart
Add break for default cases
2022-11-17 19:20:18 -05:00
lat9nq
e94bcf03cb configure_profile_manager: Cleanup reference/pointer usage
Co-authored-by: Morph <39850852+Morph1984@users.noreply.github.com>
Co-authored-by: Mai M. <mathew1800@gmail.com>
2022-11-15 19:25:09 -05:00
lat9nq
8ca02794c5 configure_profile_manager: Remove profile picture border
The border adds its own width at least on Linux which causes the icon to
be offset by 1px, and cropped by 2px on the bottom and right sides.
2022-11-15 18:11:58 -05:00
lat9nq
ef5184cf1c configure_profile_manager: Use a custom dialog for deletion
A hopefully more informative dialog that most importantly notifies the
user that their saves will be deleted with the user profile.

cpm: Only keep track of UI elements that we need

cpm: Remove unused forward declarations

cpm: Add missing include
2022-11-15 18:11:56 -05:00
Kyle Kienapfel
6fa3faec65 Add break for default cases
Visual Studio has an option to search all files in a solution, so I
did a search in there for "default:" looking for any missing break
statements.

I've left out default statements that return something, and that throw
something, even if via ThrowInvalidType. UNREACHABLE leads towards throw

R_THROW macro leads towards a return
2022-11-13 16:30:55 -08:00
german77
75e6ec85e1 general: Address review comments 2022-11-13 17:13:43 -06:00
german77
9afadca5dc yuzu: Implement cabinet applet frontend 2022-11-13 13:58:19 -06:00
german77
fb57cd26a1 service: am: Implement cabinet applet backend 2022-11-13 11:07:48 -06:00
Matías Locatti
540c1696d1 Ignore ARM for core count 2022-11-12 15:31:54 -03:00
Mai
7dfe35eca6
Merge pull request #9231 from goldenx86/corecount
Add CPU core count to log files
2022-11-12 03:19:26 +00:00
Matías Locatti
69768ec71e Add CPU core count to log files 2022-11-11 23:50:48 -03:00
liamwhite
c4bc7ce7e2
Merge pull request #9133 from FearlessTobi/compat-improvements
yuzu/compatdb: Improve compatibility submission system
2022-11-11 16:15:36 -05:00
Tobias
211da31b34
yuzu/main: Change to 8_GiB instead of magic number
Co-authored-by: Morph <39850852+Morph1984@users.noreply.github.com>
2022-11-11 19:15:52 +01:00
bunnei
5eb30c7827
Merge pull request #9223 from goldenx86/threadcount
Add CPU thread count to log files
2022-11-10 23:12:39 -08:00
bunnei
d05b183f21
Merge pull request #9198 from liamwhite/arm64
Initial ARM64 support
2022-11-10 17:11:27 -08:00
Mai
83eb9cf7da
Merge pull request #9180 from Docteh/remove_stuff
UI: split up strings relating to content removal
2022-11-11 00:42:40 +00:00
Matías Locatti
0c176ce828
Me likes
Co-authored-by: Morph <39850852+Morph1984@users.noreply.github.com>
2022-11-10 18:36:39 -03:00
FearlessTobi
26a1d4fc37 yuzu/compatdb: Rework compatibility submission system
Co-Authored-By: Narr the Reg <5944268+german77@users.noreply.github.com>
2022-11-10 21:36:22 +01:00
Matías Locatti
766941f1a3 Add CPU thread count to log files 2022-11-10 15:46:08 -03:00
Liam
cbaf642ffe Initial ARM64 support 2022-11-09 16:58:49 -05:00
german77
aa55c62159 yuzu: Change QtKeyToSwitchKey switch case to array 2022-11-06 18:08:31 -06:00
Kyle Kienapfel
a5d8703235 UI: split up strings relating to content removal
Requested by Italian translator (Fs00 in Discord)

"Remove Installed Game %1?"
"Error Removing %1"

I didn't press for translated strings, so have a taste direct from deepl

Rimuovere il contenuto del gioco installato?
Rimuovere l'aggiornamento del gioco installato?
Rimuovere il DLC del gioco installato?
2022-11-04 20:25:38 -07:00
Jan Beich
d7d7ae8219 Qt: enable recent Linux features on more Unices
- Prevent sleep via xdg-desktop-portal after fa7abafa5f
- Pause on suspend after b7642cff36
- Exit on SIGINT/SIGTERM after 9479940a1f
- Improve dark themes after b51db12567
2022-11-04 13:01:17 +00:00
Piplup
ece22fcbc7
UI: Add options to hide extra columns (#9093)
UI change that allows the user to hide the size and or file types columns
2022-11-04 02:30:39 -04:00
Ludovic
f325fcb131
remove unnecessary sepator in file menu (main.ui) 2022-11-02 17:33:53 +01:00
liamwhite
1cdd2d5204
Merge pull request #9091 from Docteh/what_compat_list
UI: Add option to hide the compatibility list
2022-10-30 09:17:16 -04:00
Morph
f51c71e956 yuzu: Resolve -Wpessimizing-move 2022-10-22 15:02:04 -04:00
Morph
bb31b0f261 startup_checks: Resolve -Wstringop-truncation
Copies up to sizeof(p_name) - 1 in strncpy and null terminates it at p_name[254]
2022-10-22 15:02:04 -04:00
Morph
f86774c1ac startup_checks: Resolve -Wformat 2022-10-22 15:02:04 -04:00
liamwhite
9e16837088
Merge pull request #9099 from Docteh/undocked
Controller Applet had instance of Undocked, make Handheld
2022-10-20 18:05:05 -04:00
Kyle Kienapfel
d4c0b7b437 Controller Applet had instance of Undocked, make Handheld
Remember that time we renamed the Undocked option to Handheld in the
status bar, and then later remembered the Controller Configuration?

Scrolling through Transifex I noticed that we still have one instance of
"Undocked" in the text.
2022-10-20 06:55:23 -07:00