summaryrefslogtreecommitdiffstats
path: root/src/core/frontend (follow)
Commit message (Collapse)AuthorAgeFilesLines
* yuzu: Constrain mouse in render window when emulatedNarr the Reg2023-11-251-5/+5
|
* general: Use console mode helper across projectlat9nq2023-08-232-3/+3
|
* general: Convert use_docked_mode to an enumerationlat9nq2023-08-222-2/+5
| | | | Allows some special interactions with it in the Qt frontend.
* android: native: Add support for custom Vulkan driver loading.bunnei2023-06-031-12/+5
|
* core: frontend: Refactor GraphicsContext to its own module.bunnei2023-06-033-47/+72
|
* service: nfc: Merge device interfaces and create the device managerNarr the Reg2023-05-062-6/+6
|
* Merge pull request #10006 from german77/profile_selectliamwhite2023-04-012-4/+15
|\ | | | | service: am: Improve profile select applet
| * service: am: Improve profile select appletNarr the Reg2023-03-292-4/+15
| |
* | applet: controller: Implement cancel buttongerman772023-03-302-2/+2
|/
* qt: implement RequestExit for appletsLiam2023-03-2517-9/+63
|
* general: fix spelling mistakesLiam2023-03-121-1/+1
|
* gl_device: Use a more robust way to use strict context modeAlexander Orzechowski2022-12-131-0/+6
| | | | | | 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.
* applets/controller: Use aliases for callbacksLioncash2022-12-062-3/+5
|
* applets/error: Use aliases for callbacksLioncash2022-12-062-9/+11
|
* applets/mii_edit: Use aliases for callbacksLioncash2022-12-062-3/+5
|
* applets/profile_select: Use aliases for callbacksLioncash2022-12-062-4/+5
| | | | Deduplicates callback definitions and situates it in one place.
* applets/web_browser: Use aliases for callbacksLioncash2022-12-062-18/+17
| | | | Deduplicates a lot of long callback declarations
* applets/software_keyboard: Use aliases for callbacksLioncash2022-12-062-21/+16
| | | | | Deduplicates really long std::function declarations to make the interface nicer to read.
* Merge pull request #9289 from liamwhite/fruit-companyliamwhite2022-12-031-0/+1
|\ | | | | general: fix compile for Apple Clang
| * general: fix compile for Apple ClangLiam2022-11-231-0/+1
| |
* | Vulkan: update initializationLiam2022-11-271-0/+2
|/ | | | Co-authored-by: bylaws <bylaws@users.noreply.github.com>
* general: Address review commentsgerman772022-11-142-4/+5
|
* service: am: Implement cabinet applet backendgerman772022-11-132-0/+56
|
* yuzu: Add 16:10 aspect ratioNarr the Reg2022-10-102-0/+3
|
* Merge pull request #8633 from Morph1984/optional-keysliamwhite2022-07-271-0/+2
|\ | | | | applet/swkbd: Implement optional symbol keys
| * applet/swkbd: Implement optional symbol keysMorph2022-07-241-0/+2
| | | | | | | | These are only used in the numeric keyboard, and correspond to the keys to the left and right of the "0" key on the numeric keyboard.
* | chore: make yuzu REUSE compliantAndrea Pappacoda2022-07-272-6/+4
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [REUSE] is a specification that aims at making file copyright information consistent, so that it can be both human and machine readable. It basically requires that all files have a header containing copyright and licensing information. When this isn't possible, like when dealing with binary assets, generated files or embedded third-party dependencies, it is permitted to insert copyright information in the `.reuse/dep5` file. Oh, and it also requires that all the licenses used in the project are present in the `LICENSES` folder, that's why the diff is so huge. This can be done automatically with `reuse download --all`. The `reuse` tool also contains a handy subcommand that analyzes the project and tells whether or not the project is (still) compliant, `reuse lint`. Following REUSE has a few advantages over the current approach: - Copyright information is easy to access for users / downstream - Files like `dist/license.md` do not need to exist anymore, as `.reuse/dep5` is used instead - `reuse lint` makes it easy to ensure that copyright information of files like binary assets / images is always accurate and up to date To add copyright information of files that didn't have it I looked up who committed what and when, for each file. As yuzu contributors do not have to sign a CLA or similar I couldn't assume that copyright ownership was of the "yuzu Emulator Project", so I used the name and/or email of the commit author instead. [REUSE]: https://reuse.software Follow-up to 01cf05bc75b1e47beb08937439f3ed9339e7b254
* core: Replace all instances of ResultCode with Resultgerman772022-06-272-9/+9
|
* common: Change semantics of UNREACHABLE to unconditionally crashLiam2022-06-141-1/+1
|
* general: Convert source file copyright comments over to SPDXMorph2022-04-2316-48/+32
| | | | | This formats all copyright comments according to SPDX formatting guidelines. Additionally, this resolves the remaining GPLv2 only licensed files by relicensing them to GPLv2.0-or-later.
* applets/mii: Remove frontend parametersMorph2022-03-222-17/+4
| | | | These are unused for now as we do not support a frontend implementation.
* service: Move mii enums and structs into its own fileMorph2022-03-221-1/+1
| | | | Moves these into types.h, since other files also make use of these types.
* applets: Rename Mii to MiiEditMorph2022-03-222-7/+8
|
* core: Reduce unused includesameerj2022-03-191-1/+0
|
* Merge pull request #7964 from german77/miiiibunnei2022-03-172-0/+54
|\ | | | | applet: mii: Simple implementation of mii applet
| * applet: mii: Simple implementation of mii appletgerman772022-03-012-0/+54
| |
* | emu_window: Create a way to Cancel the exit of a Scopedlat9nq2022-03-081-1/+10
|/ | | | | | | | | If a GraphicsContext is destroyed before its Scoped is destroyed, this causes a crash as the Scoped tries to call a method in the destroyed context on exit. Add a way to Cancel the call when we know that calling the GraphicsContext will not work.
* general: Rename NewUUID to UUID, and remove the previous UUID implMorph2022-02-052-6/+5
| | | | This completes the removal of the old UUID implementation.
* profile: Migrate to the new UUID implementationMorph2022-02-052-6/+6
|
* core/hid: Fix controller type validationgerman772021-12-301-5/+5
|
* core/hid: Rename NpadType to NpadStyleIndexgerman772021-11-251-5/+5
|
* Morph review first wavegerman772021-11-251-3/+2
|
* kraken: Address comments from reviewgerman772021-11-252-34/+25
| | | | review fixes
* core/frontend: Update appletsgerman772021-11-251-9/+14
|
* core: Remove frontend/inputgerman772021-11-251-217/+0
|
* core/emu_window: Remove touch inputgerman772021-11-252-113/+15
|
* core/hid: Move input_interpreter to hidgerman772021-11-252-206/+0
|
* Fix screenshot dimensions when at 1x scaleameerj2021-11-202-11/+7
| | | | | | | This was regressed by ART. Prior to ART, the screenshots were saved at the title's framebuffer resolution. A misunderstanding of the existing logic led to screenshot dimensions becoming dependent on the host render window size. This changes the behavior to match how it was prior to ART at 1x, with screenshots now always being the title's framebuffer dimensions scaled by the resolution scaling factor.
* bootmanager: Fix screenshot resolution factor usageameerj2021-11-162-10/+7
| | | | Fixes screenshots at non integer scaling
* applets/swkbd: Skip text checking if the text has been confirmedMorph2021-11-082-5/+6
| | | | | | | Confirm means that the text has already been checked by the application to be correct, but is asking the user for confirmation. The confirmation text itself seems to be corrupted though, this needs to be investigated. Fixes the software keyboard in Famicom Detective Club: The Missing Heir
* core: Remove unused includesameerj2021-11-045-5/+0
|
* core/profile_select: Avoid uninitialized read in SelectProfile()Lioncash2021-09-231-1/+2
| | | | | The default constructor of UUID doesn't initialize its data members, so we need to directly initialize it to be invalid.
* applets: Append applet_ prefix to backend appletsMorph2021-07-142-2/+2
|
* general: Make most settings a BasicSettinglat9nq2021-06-281-1/+1
| | | | | | | | | | | Creates a new BasicSettings class in common/settings, and forces setting a default and label for each setting that uses it in common/settings. Moves defaults and labels from both frontends into common settings. Creates a helper function in each frontend to facillitate reading the settings now with the new default and label properties. Settings::Setting is also now a subclass of Settings::BasicSetting. Also adds documentation for both Setting and BasicSetting.
* General: Resolve fmt specifiers to adhere to 8.0.0 API where applicableLioncash2021-06-231-0/+1
| | | | Also removes some deprecated API usages.
* input_common: Analog button, use time based position instead of frequent updatesgerman772021-05-301-0/+15
|
* core: Make variable shadowing a compile-time errorLioncash2021-05-161-1/+1
| | | | | | Now that we have most of core free of shadowing, we can enable the warning as an error to catch anything that may be remaining and also eliminate this class of logic bug entirely.
* Merge pull request #6257 from Morph1984/fix-use-after-free-webappletbunnei2021-04-302-6/+7
|\ | | | | applets/web: Fix a use-after-free when passing in the URL string
| * applets/web: Fix a use-after-free when passing in the URL stringMorph2021-04-282-6/+7
| | | | | | | | | | | | The URL string was being deleted before being used, leading to a use-after-free occurring when it is used afterwards. Fix this by taking the string by const ref to extend its lifetime, ensuring it doesn't get deleted before use.
* | Merge pull request #6226 from german77/sevensixbunnei2021-04-301-3/+9
|\ \ | |/ |/| hid: Implement SevenSixAxis and ConsoleSixAxisSensor
| * hid: Implement SevenSixAxis and ConsoleSixAxisSensorgerman772021-04-241-3/+9
| |
* | emu_window: Return pair from ClipToTouchScreen() instead of tupleLioncash2021-04-232-5/+8
| | | | | | | | | | This is only a 2-tuple, so it can be converted over to the std::pair class.
* | emu_window: unsigned -> u32Lioncash2021-04-232-21/+21
|/ | | | This is more concise and consistent with the rest of the codebase.
* input_interpreter: Fix button hold being interpreted incorrectly on initMorph2021-04-152-1/+17
| | | | We reset all the button states to 0 except the first index (which has all the buttons as pressed) to prevent a button hold being interpreted as a button that was pressed once on the first poll.
* applets/swkbd: Implement the Default Software Keyboard frontendMorph2021-04-152-2/+236
|
* applets: Remove the previous software keyboard applet implementationMorph2021-04-152-53/+1
|
* common: Move settings to common from core.bunnei2021-04-153-3/+3
| | | | - Removes a dependency on core and input_common from common.
* hid: Implement GC controllergerman2021-02-081-0/+1
|
* Make settings controller image change with controller inputgerman2021-02-061-0/+11
|
* Merge pull request #5270 from german77/multiTouchbunnei2021-01-213-26/+37
|\ | | | | HID: Add multitouch support
| * Always initialize keyboard inputgerman2021-01-152-7/+7
| |
| * Add mutitouch support for touch screensgerman2021-01-152-23/+31
| |
| * Allow to return up to 16 touch inputs per enginegerman2021-01-152-6/+9
| |
* | input_interpreter: Mark two member functions as constLioncash2021-01-161-4/+4
| | | | | | | | | | | | These aren't stateful functions, so we can make use of const. While we're at, we can resolve some -Wdocumentation warnings.
* | input_interpreter: Add method to check for a button press stateMorph2021-01-162-0/+25
|/ | | | This allows to check for continuous input for the duration of a button press/hold
* applets/web: Implement the online web browser appletMorph2020-12-182-0/+17
|
* main, applets/web: Re-add progress dialog for RomFS extractionMorph2020-12-182-8/+8
|
* frontend/input_interpreter: Add InputInterpreter APIMorph2020-12-182-0/+165
| | | | | | The InputInterpreter class interfaces with HID to retrieve button press states. Input is intended to be polled every 50ms so that a button is considered to be held down after 400ms has elapsed since the initial button press and subsequent repeated presses occur every 50ms. Co-authored-by: Chloe <25727384+ogniK5377@users.noreply.github.com>
* applets/web: Implement the default web browser applet frontendMorph2020-12-182-0/+20
|
* applets: Remove the previous web browser applet implementationMorph2020-12-184-136/+0
|
* core: Remove unnecessary enum casts in log callsLioncash2020-12-081-3/+4
| | | | | Follows the video core PR. fmt doesn't require casts for enum classes anymore, so we can remove quite a few casts.
* Merge pull request #4939 from german77/MouseInputbunnei2020-11-301-2/+7
|\ | | | | InputCommon: Implement full mouse support
| * Implement full mouse supportgerman2020-11-261-2/+7
| |
* | Merge pull request #4976 from comex/poll-eventsRodrigo Locatti2020-11-261-2/+2
|\ \ | | | | | | Overhaul EmuWindow::PollEvents to fix yuzu-cmd calling SDL_PollEvents off main thread
| * | Overhaul EmuWindow::PollEvents to fix yuzu-cmd calling SDL_PollEvents off main threadcomex2020-11-231-2/+2
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | EmuWindow::PollEvents was called from the GPU thread (or the CPU thread in sync-GPU mode) when swapping buffers. It had three implementations: - In GRenderWindow, it didn't actually poll events, just set a flag and emit a signal to indicate that a frame was displayed. - In EmuWindow_SDL2_Hide, it did nothing. - In EmuWindow_SDL2, it did call SDL_PollEvents, but this is wrong because SDL_PollEvents is supposed to be called on the thread that set up video - in this case, the main thread, which was sleeping in a busyloop (regardless of whether sync-GPU was enabled). On macOS this causes a crash. To fix this: - Rename EmuWindow::PollEvents to OnFrameDisplayed, and give it a default implementation that does nothing. - In EmuWindow_SDL2, do not override OnFrameDisplayed, but instead have the main thread call SDL_WaitEvent in a loop.
* | Fix warnings in core/frontend/input.h with [[maybe_unused]]bunnei2020-11-241-1/+3
| | | | | | Fixes build break due to #4927
* | input_common: Treat warnings as errorsLioncash2020-11-221-1/+1
|/ | | | | Migrates over warnings as errors for input common to match how the common library treats warnings as errors.
* input_common: Add VibrationDevice and VibrationDeviceFactoryMorph2020-11-161-0/+7
| | | | | | A vibration device is an input device that returns an unsigned byte as status. It represents whether the vibration device supports vibration or not. If the status returns 1, it supports vibration. Otherwise, it does not support vibration.
* controllers/npad: Add heuristics to reduce rumble state changesMorph2020-11-161-1/+1
| | | | | Sending too many state changes in a short period of time can cause massive performance issues. As a result, we have to use several heuristics to reduce the number of state changes to minimize/eliminate this performance impact while maintaining the quality of these vibrations as much as possible.
* hid: Reorder all HID commandsMorph2020-11-161-2/+2
| | | | Reorders all HID commands in command id order.
* settings: Preparation for per-game input settingsMorph2020-11-162-3/+3
|
* controller: Pass ControllerParameters by reference in ReconfigureControllers()Lioncash2020-10-272-3/+3
| | | | Prevents unnecessary copies and heap reallocations from occurring.
* Revert "core: Fix clang build"bunnei2020-10-212-3/+2
|
* core: Fix clang buildLioncash2020-10-182-2/+3
| | | | | | | Recent changes to the build system that made more warnings be flagged as errors caused building via clang to break. Fixes #4795
* core/CMakeLists: Make some warnings errorsLioncash2020-10-132-7/+9
| | | | | | | | | Makes our error coverage a little more consistent across the board by applying it to Linux side of things as well. This also makes it more consistent with the warning settings in other libraries in the project. This also updates httplib to 0.7.9, as there are several warning cleanups made that allow us to enable several warnings as errors.
* Merge pull request #4291 from german77/ImplementControllerRumbleDavid2020-09-301-0/+3
|\ | | | | input_common: First implementation of controller rumble
| * First implementation of controller rumblegerman2020-09-291-0/+3
| |
* | frontend/controller: Eliminate dependency on the global system instanceLioncash2020-09-262-4/+12
|/
* Merge pull request #4594 from german77/MotionHIDbunnei2020-09-171-4/+18
|\ | | | | hid/configuration: Implement motion controls to HID
| * Remove RealMotionDevicegerman2020-09-051-21/+8
| |
| * Include HID and configuration changes related to motiongerman2020-09-051-0/+27
| |
* | applets/controller: Resolve several compiler warningsMorph2020-09-041-1/+2
| | | | | | | | Resolves -Wsign-compare and -Wunused-variable
* | Address feedbackMorph2020-09-041-0/+2
| |
* | applets/controller: Modify heuristic to account for certain gamesMorph2020-09-041-7/+12
| | | | | | | | | | | | | | | | Now left and right joycons have the same priority (meaning both needs to be supported by the game). Explanation of the new heuristic: Assign left joycons to even player indices and right joycons to odd player indices. We do this since Captain Toad Treasure Tracker expects a left joycon for Player 1 and a right Joycon for Player 2 in 2 Player Assist mode.
* | applets/controller: Implement fallback applet for the SDL frontendMorph2020-09-041-1/+34
| | | | | | | | Implement the fallback applet for the SDL frontend, connecting only the minimum amount of players required.
* | applets/controller: Implement "Explain Text"Morph2020-09-041-0/+3
| | | | | | | | "Explain Text" is additional text that is shown for each player in the controller applet.
* | Project Mjölnir: Part 2 - Controller AppletMorph2020-09-042-0/+85
|/ | | | Co-authored-by: Its-Rei <kupfel@gmail.com>
* Address second batch of reviewsFearlessTobi2020-08-301-0/+1
|
* emu_window: Mark Scoped constructor and Acquire() as nodiscardLioncash2020-08-141-2/+2
| | | | | Ensures that callers make use of the constructor, preventing bugs from silently occurring.
* configuration: implement per-game configurations (#4098)lat9nq2020-07-101-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Switch game settings to use a pointer In order to add full per-game settings, we need to be able to tell yuzu to switch to using either the global or game configuration. Using a pointer makes it easier to switch. * configuration: add new UI without changing existing funcitonality The new UI also adds General, System, Graphics, Advanced Graphics, and Audio tabs, but as yet they do nothing. This commit keeps yuzu to the same functionality as originally branched. * configuration: Rename files These weren't included in the last commit. Now they are. * configuration: setup global configuration checkbox Global config checkbox now enables/disables the appropriate tabs in the game properties dialog. The use global configuration setting is now saved to the config, defaulting to true. This also addresses some changes requested in the PR. * configuration: swap to per-game config memory for properties dialog Does not set memory going in-game. Swaps to game values when opening the properties dialog, then swaps back when closing it. Uses a `memcpy` to swap. Also implements saving config files, limited to certain groups of configurations so as to not risk setting unsafe configurations. * configuration: change config interfaces to use config-specific pointers When a game is booted, we need to be able to open the configuration dialogs without changing the settings pointer in the game's emualtion. A new pointer specific to just the configuration dialogs can be used to separate changes to just those config dialogs without affecting the emulation. * configuration: boot a game using per-game settings Swaps values where needed to boot a game. * configuration: user correct config during emulation Creates a new pointer specifically for modifying the configuration while emulation is in progress. Both the regular configuration dialog and the game properties dialog now use the pointer Settings::config_values to focus edits to the correct struct. * settings: split Settings::values into two different structs By splitting the settings into two mutually exclusive structs, it becomes easier, as a developer, to determine how to use the Settings structs after per-game configurations is merged. Other benefits include only duplicating the required settings in memory. * settings: move use_docked_mode to Controls group `use_docked_mode` is set in the input settings and cannot be accessed from the system settings. Grouping it with system settings causes it to be saved with per-game settings, which may make transferring configs more difficult later on, especially since docked mode cannot be set from within the game properties dialog. * configuration: Fix the other yuzu executables and a regression In main.cpp, we have to get the title ID before the ROM is loaded, else the renderer will reflect only the global settings and now the user's game specific settings. * settings: use a template to duplicate memory for each setting Replaces the type of each variable in the Settings::Values struct with a new class that allows basic data reading and writing. The new struct Settings::Setting duplicates the data in memory and can manage global overrides per each setting. * configuration: correct add-ons config and swap settings when apropriate Any add-ons interaction happens directly through the global values struct. Swapping bewteen structs now also includes copying the necessary global configs that cannot be changed nor saved in per-game settings. General and System config menus now update based on whether it is viewing the global or per-game settings. * settings: restore old values struct No longer needed with the Settings::Setting class template. * configuration: implement hierarchical game properties dialog This sets the apropriate global or local data in each setting. * clang format * clang format take 2 can the docker container save this? * address comments and style issues * config: read and write settings with global awareness Adds new functions to read and write settings while keeping the global state in focus. Files now generated per-game are much smaller since often they only need address the global state. * settings: restore global state when necessary Upon closing a game or the game properties dialog, we need to restore all global settings to the original global state so that we can properly open the configuration dialog or boot a different game. * configuration: guard setting values incorrectly This disables setting values while a game is running if the setting is overwritten by a per game setting. * config: don't write local settings in the global config Simple guards to prevent writing the wrong settings in the wrong files. * configuration: add comments, assume less, and clang format No longer assumes that a disabled UI element means the global state is turned off, instead opting to directly answer that question. Still however assumes a game is running if it is in that state. * configuration: fix a logic error Should not be negated * restore settings' global state regardless of accept/cancel Fixes loading a properties dialog and causing the global config dialog to show local settings. * fix more logic errors Fixed the frame limit would set the global setting from the game properties dialog. Also strengthened the Settings::Setting member variables and simplified the logic in config reading (ReadSettingGlobal). * fix another logic error In my efforts to guard RestoreGlobalState, I accidentally negated the IsPowered condition. * configure_audio: set toggle_stretched_audio to tristate * fixed custom rtc and rng seed overwriting the global value * clang format * rebased * clang format take 4 * address my own review Basically revert unintended changes * settings: literal instead of casting "No need to cast, use 1U instead" Thanks, Morph! Co-authored-by: Morph <39850852+Morph1984@users.noreply.github.com> * Revert "settings: literal instead of casting " This reverts commit 95e992a87c898f3e882ffdb415bb0ef9f80f613f. * main: fix status buttons reporting wrong settings after stop emulation * settings: Log UseDockedMode in the Controls group This should have happened when use_docked_mode was moved over to the controls group internally. This just reflects this in the log. * main: load settings if the file has a title id In other words, don't exit if the loader has trouble getting a title id. * use a zero * settings: initalize resolution factor with constructor instead of casting * Revert "settings: initalize resolution factor with constructor instead of casting" This reverts commit 54c35ecb46a29953842614620f9b7de1aa9d5dc8. * configure_graphics: guard device selector when Vulkan is global Prevents the user from editing the device selector if Vulkan is the global renderer backend. Also resets the vulkan_device variable when the users switches back-and-forth between global and Vulkan. * address reviewer concerns Changes function variables to const wherever they don't need to be changed. Sets Settings::Setting to final as it should not be inherited from. Sets ConfigurationShared::use_global_text to static. Co-Authored-By: VolcaEM <volcaem@users.noreply.github.com> * main: load per-game settings after LoadROM This prevents `Restart Emulation` from restoring the global settings *after* the per-game settings were applied. Thanks to BSoDGamingYT for finding this bug. * Revert "main: load per-game settings after LoadROM" This reverts commit 9d0d48c52d2dcf3bfb1806cc8fa7d5a271a8a804. * main: only restore global settings when necessary Loading the per-game settings cannot happen after the ROM is loaded, so we have to specify when to restore the global state. Again thanks to BSoD for finding the bug. * configuration_shared: address reviewer concerns except operator overrides Dropping operator override usage in next commit. Co-Authored-By: LC <lioncash@users.noreply.github.com> * settings: Drop operator overrides from Setting template Requires using GetValue and SetValue explicitly. Also reverts a change that broke title ID formatting in the game properties dialog. * complete rebase * configuration_shared: translate "Use global configuration" Uses ConfigurePerGame to do so, since its usage, at least as of now, corresponds with ConfigurationShared. * configure_per_game: address reviewer concern As far as I understand, it prevents the program from unnecessarily copying strings. Co-Authored-By: LC <lioncash@users.noreply.github.com> Co-authored-by: Morph <39850852+Morph1984@users.noreply.github.com> Co-authored-by: VolcaEM <volcaem@users.noreply.github.com> Co-authored-by: LC <lioncash@users.noreply.github.com>
* frontend: Set minimum window size to 640x360 instead of 1280x720 (#3413)Morph2020-05-152-1/+6
|
* CMakeLists: Specify -Wextra on linux buildsLioncash2020-04-161-1/+1
| | | | | | | | | | | Allows reporting more cases where logic errors may exist, such as implicit fallthrough cases, etc. We currently ignore unused parameters, since we currently have many cases where this is intentional (virtual interfaces). While we're at it, we can also tidy up any existing code that causes warnings. This also uncovered a few bugs as well.
* yuzu: Drop SDL2 and Qt frontend Vulkan requirementsReinUsesLisp2020-04-071-5/+36
| | | | Create Vulkan instances and surfaces from the Vulkan backend.
* Address review and fix broken yuzu-tester buildJames Rowe2020-03-261-1/+1
|
* Frontend/GPU: Refactor context managementJames Rowe2020-03-253-57/+28
| | | | | | | | | | | | | | | | | | | | Changes the GraphicsContext to be managed by the GPU core. This eliminates the need for the frontends to fool around with tricky MakeCurrent/DoneCurrent calls that are dependent on the settings (such as async gpu option). This also refactors out the need to use QWidget::fromWindowContainer as that caused issues with focus and input handling. Now we use a regular QWidget and just access the native windowHandle() directly. Another change is removing the debug tool setting in FrameMailbox. Instead of trying to block the frontend until a new frame is ready, the core will now take over presentation and draw directly to the window if the renderer detects that its hooked by NSight or RenderDoc Lastly, since it was in the way, I removed ScopeAcquireWindowContext and replaced it with a simple subclass in GraphicsContext that achieves the same result
* framebuffer_layout.h: drop the use of enum for screen dimensions.Vitor Kiguchi2020-03-112-10/+10
| | | | +clang format
* renderer_opengl: Move Frame/FrameMailbox to OpenGL namespace.bunnei2020-02-271-41/+0
|
* core: frontend: Refactor scope_acquire_window_context to scope_acquire_context.bunnei2020-02-263-23/+23
|
* frontend: sdl2: emu_window: Implement separate presentation thread.bunnei2020-02-261-3/+0
|
* renderer_opengl: Add texture mailbox support for presenter thread.bunnei2020-02-261-0/+1
|
* core: frontend: emu_window: Add TextureMailbox class.bunnei2020-02-261-0/+41
|
* Add 4:3 aspect ratio and address feedbackMorph2020-02-142-10/+13
|
* Address feedbackMorph2020-02-142-18/+26
|
* Use enumeration instead of magic numbersMorph2020-02-142-5/+11
|
* Add following aspect ratios: 16:9, 21:9, Stretch to WindowMorph2020-02-141-2/+15
| | | | Available as a drop down within the configure graphics tab.
* Merge pull request #3337 from ReinUsesLisp/vulkan-stagedbunnei2020-02-031-0/+7
|\ | | | | yuzu: Implement Vulkan frontend
| * yuzu: Implement Vulkan frontendReinUsesLisp2020-01-291-0/+7
| | | | | | | | | | Adds a Qt and SDL2 frontend for Vulkan. It also finishes the missing bits on Vulkan initialization.
* | Moved analog direction logic to sdl_implCJBok2020-01-151-0/+10
|/
* general_frontend: Add documentation for parental controls and ecommerce appletsZach Hilman2019-06-252-4/+32
|
* frontend: Add base class and default impl for ECommerce applet frontendZach Hilman2019-06-252-0/+102
|
* web_browser: Rename OpenPage to OpenPageLocalZach Hilman2019-06-252-7/+7
| | | This is more representative of what actually occurs, as web does support remote URLs which wouldn't need a romfs callback. This paves for easy future support of this with a call like 'OpenPageRemote' or similar.
* frontend: Add base class and default impl of parent controls applet frontendZach Hilman2019-06-252-1/+52
|
* yuzu/bootmanager: Treat the resolution factor as a u32Lioncash2019-06-032-13/+21
| | | | | | | | | Treating it as a u16 can result in a sign-conversion warning when performing arithmetic with it, as u16 promotes to an int when aritmetic is performed on it, not unsigned int. This also makes the interface more uniform, as the layout interface now operates on u32 across the board.
* Merge pull request #1931 from DarkLordZach/mii-database-1bunnei2019-05-302-7/+6
|\ | | | | mii: Implement MiiManager backend and several mii service commands
| * profile_select: Port Service::Account::UUID to Common::UUIDZach Hilman2019-04-252-7/+6
| |
* | emu_window: Pass OnMinimalClientAreaChangeRequest argument by copyReinUsesLisp2019-05-261-2/+1
| | | | | | | | | | There's no performance improvement in passing an unsigned pair by reference.
* | core/frontend/emu_window: Make GraphicsContext's destructor virtualLioncash2019-05-042-0/+4
|/ | | | | This class is used in a polymorphic context, so destruction of the context will lead to undefined behavior if the destructor isn't virtual.
* web_browser: Make OpenPage non-constZach Hilman2019-04-172-3/+3
|
* main: Add GMainWindow hooks for Error displayZach Hilman2019-04-171-1/+1
|
* general_frontend: Add frontend scaffold for PhotoViewer appletZach Hilman2019-04-172-0/+55
|
* frontend: Add frontend receiver for Error appletZach Hilman2019-04-172-0/+71
|
* web_browser: Make OpenPage constZach Hilman2019-04-172-3/+3
|
* Merge pull request #2017 from jroweboy/glwidgetbunnei2019-04-141-9/+30
|\ | | | | Frontend: Migrate to QOpenGLWindow and support shared contexts
| * QT Frontend: Migrate to QOpenGLWindowJames Rowe2019-01-221-9/+30
| |
* | general: Use deducation guides for std::lock_guard and std::unique_lockLioncash2019-04-011-3/+3
| | | | | | | | | | | | | | Since C++17, the introduction of deduction guides for locking facilities means that we no longer need to hardcode the mutex type into the locks themselves, making it easier to switch mutex types, should it ever be necessary in the future.
* | Merge pull request #2170 from lioncash/emu-windowbunnei2019-02-272-2/+2
|\ \ | | | | | | core/frontend/emu_window: Make ClipToTouchScreen a const member function
| * | core/frontend/emu_window: Make ClipToTouchScreen a const member functionLioncash2019-02-272-2/+2
| | | | | | | | | | | | | | | This member function doesn't modify instance state, so it can have the const specifier applied to it.
* | | common/math_util: Move contents into the Common namespaceLioncash2019-02-272-7/+7
| | | | | | | | | | | | | | | These types are within the common library, so they should be within the Common namespace.
* | | common/vector_math: Move Vec[x] types into the Common namespaceLioncash2019-02-271-1/+1
|/ / | | | | | | | | These types are within the common library, so they should be using the Common namespace.
* / frontend: Refactor ScopeAcquireWindowContext out of renderer_opengl.bunnei2019-01-242-0/+41
|/
* core/frontend/applets/web_browser: Make OpenPage() non-constLioncash2019-01-172-3/+3
| | | | | | | | This is a function that definitely doesn't always have a non-modifying behavior across all implementations, so this should be made non-const. This gets rid of the need to mark data members as mutable to work around the fact mutating data members needs to occur.
* frontend: Add frontend responder for web browserZach Hilman2018-12-282-0/+52
|
* Merge pull request #1886 from FearlessTobi/port-4164bunnei2018-12-232-0/+22
|\ | | | | Port citra-emu/citra#4164: "citra_qt, video_core: Screenshot functionality"
| * yuzu, video_core: Screenshot functionalityzhupengfei2018-12-182-0/+22
| | | | | | | | Allows capturing screenshot at the current internal resolution (native for software renderer), but a setting is available to capture it in other resolutions. The screenshot is saved to a single PNG in the current layout.
* | frontend: Add frontend applet for ProfileSelectZach Hilman2018-12-032-0/+46
|/ | | Responsible for selecting a profile and firing callback upon completion.
* Merge pull request #1667 from DarkLordZach/swkbdbunnei2018-11-202-0/+83
|\ | | | | am: Implement HLE software keyboard applet
| * applet: Add operation completed callbackZach Hilman2018-11-182-3/+7
| |
| * software_keyboard: Make GetText asynchronousZach Hilman2018-11-182-5/+9
| | | | | | | | a
| * am: Allow applets to push multiple and different channels of dataZach Hilman2018-11-182-8/+7
| |
| * am: Implement ILibraryAppletAccessor IsCompleted and GetResultZach Hilman2018-11-181-0/+1
| |
| * am: Implement text check software keyboard modeZach Hilman2018-11-182-0/+8
| | | | | | | | Allows the game to verify and send a message to the frontend.
| * am: Deglobalize software keyboard appletZach Hilman2018-11-182-31/+36
| |
| * qt/main: Register Qt Software Keyboard frontend with AMZach Hilman2018-11-181-0/+1
| | | | | | | | Allows using Qt provider over default.
| * frontend/applets: Add frontend software keyboard provider and defaultZach Hilman2018-11-182-0/+61
| | | | | | Default implementation will return "yuzu" for any string. GUI clients (or CLI) can implement the Frontend::SoftwareKeyboardApplet class and register an instance to provide functionality.
* | settings: Add Native type for mouse buttonsZach Hilman2018-11-191-0/+7
|/
* emu_window: Ensure WindowConfig members are always initializedLioncash2018-08-151-3/+3
| | | | | Previously we weren't always initializing all members of the struct. Prevents potentially wonky behavior from occurring.
* core: Namespace EmuWindowLioncash2018-08-122-0/+8
| | | | Gets the class out of the global namespace.
* Rename logging macro back to LOG_*James Rowe2018-07-031-3/+3
|
* core: Replace remaining old non-generic logger usages with fmt-capable equivalentsLioncash2018-04-261-3/+3
| | | | | | LOG_GENERIC usages will be amended in a follow-up to keep API changes separate from interface changes, as it will require removing a parameter from the relevant function in the VMManager class.
* yuzu: Update license text to be consistent across project.bunnei2018-01-132-2/+2
|
* core: Fix recent GCC build breaks.bunnei2018-01-121-0/+2
|
* frontend: Update for undocked Switch screen layout.bunnei2018-01-114-251/+39
|
* hle: Remove a large amount of 3ds-specific service code.bunnei2017-10-106-204/+0
|
* Merge pull request #2899 from wwylele/touch-refactorbunnei2017-08-293-39/+69
|\ | | | | Refactor touch input into a TouchDevice
| * EmuWindow: refactor touch input into a TouchDevicewwylele2017-08-242-39/+63
| |
| * HID: use TouchDevice for touch padwwylele2017-08-241-0/+6
| |
* | SidebySide Layout (#2859)ThaMighty902017-08-253-1/+49
|/ | | | | | | | | | | | | | | | | | | | | | * added a SidebySide Layout * Reworked, so both screen have the same height and cleaned up screen translates. * added the option in the UI, hope this is the right way to do it. formated framebuffer_layout.cpp * delete the x64 files * deleted ui_configure_graphics.h * added Option for the Layout in the xml * got rid of SIDE_BY_SIDE_ASPECT_RATIO because it was useless. pulled translate into variables * changed shift variables to u32 and moved them in their respective branch. remove notr="true" for the Screen layout drop down * reworked intends :). changed function description for SideFrameLayout * some description reworking
* move MotionEmu from core/frontend to input_common as a InputDevicewwylele2017-08-115-252/+4
|
* HID: use MotionDevice for Accelerometer and Gyroscopewwylele2017-08-111-0/+20
|
* Move screen size constants from video_core to coreYuri Kunde Schlesner2017-05-283-13/+24
| | | | | video_core didn't even properly use them, and they were the source of many otherwise-unnecessary dependencies from core to video_core.
* Move framebuffer_layout from Common to CoreYuri Kunde Schlesner2017-05-283-1/+213
| | | | | | This removes a dependency inversion between core and common. It's also the proper place for the file since it makes screen layout decisions specific to the 3DS.
* Merge pull request #2512 from SonofUgly/custom-layoutbunnei2017-03-221-11/+15
|\ | | | | Add custom layout settings.
| * Add custom layout settings.SonofUgly2017-02-231-11/+15
| |
* | Input: remove unused stuff & clean upwwylele2017-03-014-322/+1
| | | | | | | | | | | | | | 1. removed zl, zr and c-stick from HID::PadState. They are handled by IR, not HID 2. removed button handling in EmuWindow 3. removed key_map 4. cleanup #include
* | InputCommon: add Keyboardwwylele2017-03-011-2/+0
| |
* | HID: use AnalogDevicewwylele2017-03-011-0/+7
| |
* | HID: use ButtonDevicewwylele2017-03-011-0/+6
| |
* | Input: add device and factory templatewwylele2017-03-011-0/+97
| |
* | Doxygen: Amend minor issues (#2593)Mat M2017-02-271-2/+2
| | | | | | | | | | | | | | | | | | Corrects a few issues with regards to Doxygen documentation, for example: - Incorrect parameter referencing. - Missing @param tags. - Typos in @param tags. and a few minor other issues.
* | Core: Make PerfStats internally lockedYuri Kunde Schlesner2017-02-271-1/+1
| | | | | | | | More ergonomic to use and will be required for upcoming changes.
* | PerfStats: Add method to get the instantaneous time ratioYuri Kunde Schlesner2017-02-271-3/+2
| |
* | hid: remove the touch field from PadState (#2557)Weiyi Wang2017-02-111-2/+0
| |
* | Merge pull request #2368 from wwylele/camera-2Yuri Kunde Schlesner2017-01-306-0/+204
|\ \ | | | | | | CAM: build the service framework with a dummy implementation
| * | CAM: implement basic camera functions with a blank camerawwylele2017-01-116-0/+204
| | |
* | | core: emu_window.cpp, fix conversion warnings from float to s16 on MSVCKloen2017-01-291-6/+6
| |/ |/|
* | Frontend: make motion sensor interfaced thread-safewwylele2016-12-292-2/+8
| |
* | Frontend: emulate motion sensorwwylele2016-12-264-8/+204
|/
* core: Move emu_window and key_map into coreMerryMage2016-12-234-0/+642
* Removes circular dependences (common should not depend on core)