summaryrefslogtreecommitdiffstats
path: root/src/core/frontend (unfollow)
Commit message (Collapse)AuthorFilesLines
2023-11-25yuzu: Constrain mouse in render window when emulatedNarr the Reg1-5/+5
2023-08-23general: Use console mode helper across projectlat9nq2-3/+3
2023-08-22general: Convert use_docked_mode to an enumerationlat9nq2-2/+5
Allows some special interactions with it in the Qt frontend.
2023-06-03android: native: Add support for custom Vulkan driver loading.bunnei1-12/+5
2023-06-03core: frontend: Refactor GraphicsContext to its own module.bunnei3-47/+72
2023-05-06service: nfc: Merge device interfaces and create the device managerNarr the Reg2-6/+6
2023-03-30applet: controller: Implement cancel buttongerman772-2/+2
2023-03-29service: am: Improve profile select appletNarr the Reg2-4/+15
2023-03-25qt: implement RequestExit for appletsLiam17-9/+63
2023-03-12general: fix spelling mistakesLiam1-1/+1
2022-12-13gl_device: Use a more robust way to use strict context modeAlexander Orzechowski1-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.
2022-12-06applets/controller: Use aliases for callbacksLioncash2-3/+5
2022-12-06applets/error: Use aliases for callbacksLioncash2-9/+11
2022-12-06applets/mii_edit: Use aliases for callbacksLioncash2-3/+5
2022-12-06applets/profile_select: Use aliases for callbacksLioncash2-4/+5
Deduplicates callback definitions and situates it in one place.
2022-12-06applets/web_browser: Use aliases for callbacksLioncash2-18/+17
Deduplicates a lot of long callback declarations
2022-12-06applets/software_keyboard: Use aliases for callbacksLioncash2-21/+16
Deduplicates really long std::function declarations to make the interface nicer to read.
2022-11-27Vulkan: update initializationLiam1-0/+2
Co-authored-by: bylaws <bylaws@users.noreply.github.com>
2022-11-23general: fix compile for Apple ClangLiam1-0/+1
2022-11-14general: Address review commentsgerman772-4/+5
2022-11-13service: am: Implement cabinet applet backendgerman772-0/+56
2022-10-10yuzu: Add 16:10 aspect ratioNarr the Reg2-0/+3
2022-07-27chore: make yuzu REUSE compliantAndrea Pappacoda2-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
2022-07-24applet/swkbd: Implement optional symbol keysMorph1-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.
2022-06-27core: Replace all instances of ResultCode with Resultgerman772-9/+9
2022-06-14common: Change semantics of UNREACHABLE to unconditionally crashLiam1-1/+1
2022-04-23general: Convert source file copyright comments over to SPDXMorph16-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.
2022-03-22applets/mii: Remove frontend parametersMorph2-17/+4
These are unused for now as we do not support a frontend implementation.
2022-03-22service: Move mii enums and structs into its own fileMorph1-1/+1
Moves these into types.h, since other files also make use of these types.
2022-03-22applets: Rename Mii to MiiEditMorph2-7/+8
2022-03-19core: Reduce unused includesameerj1-1/+0
2022-03-08emu_window: Create a way to Cancel the exit of a Scopedlat9nq1-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.
2022-03-01applet: mii: Simple implementation of mii appletgerman772-0/+54
2022-02-05general: Rename NewUUID to UUID, and remove the previous UUID implMorph2-6/+5
This completes the removal of the old UUID implementation.
2022-02-05profile: Migrate to the new UUID implementationMorph2-6/+6
2021-12-30core/hid: Fix controller type validationgerman771-5/+5
2021-11-25core/hid: Rename NpadType to NpadStyleIndexgerman771-5/+5
2021-11-25Morph review first wavegerman771-3/+2
2021-11-25kraken: Address comments from reviewgerman772-34/+25
review fixes
2021-11-25core/frontend: Update appletsgerman771-9/+14
2021-11-25core: Remove frontend/inputgerman771-217/+0
2021-11-25core/emu_window: Remove touch inputgerman772-113/+15
2021-11-25core/hid: Move input_interpreter to hidgerman772-206/+0
2021-11-20Fix screenshot dimensions when at 1x scaleameerj2-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.
2021-11-16bootmanager: Fix screenshot resolution factor usageameerj2-10/+7
Fixes screenshots at non integer scaling
2021-11-08applets/swkbd: Skip text checking if the text has been confirmedMorph2-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
2021-11-04core: Remove unused includesameerj5-5/+0
2021-09-23core/profile_select: Avoid uninitialized read in SelectProfile()Lioncash1-1/+2
The default constructor of UUID doesn't initialize its data members, so we need to directly initialize it to be invalid.
2021-07-14applets: Append applet_ prefix to backend appletsMorph2-2/+2
2021-06-28general: Make most settings a BasicSettinglat9nq1-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.
2021-06-23General: Resolve fmt specifiers to adhere to 8.0.0 API where applicableLioncash1-0/+1
Also removes some deprecated API usages.
2021-05-30input_common: Analog button, use time based position instead of frequent updatesgerman771-0/+15
2021-05-16core: Make variable shadowing a compile-time errorLioncash1-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.
2021-04-28applets/web: Fix a use-after-free when passing in the URL stringMorph2-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.
2021-04-24hid: Implement SevenSixAxis and ConsoleSixAxisSensorgerman771-3/+9
2021-04-23emu_window: Return pair from ClipToTouchScreen() instead of tupleLioncash2-5/+8
This is only a 2-tuple, so it can be converted over to the std::pair class.
2021-04-23emu_window: unsigned -> u32Lioncash2-21/+21
This is more concise and consistent with the rest of the codebase.
2021-04-15input_interpreter: Fix button hold being interpreted incorrectly on initMorph2-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.
2021-04-15applets/swkbd: Implement the Default Software Keyboard frontendMorph2-2/+236
2021-04-15applets: Remove the previous software keyboard applet implementationMorph2-53/+1
2021-04-15common: Move settings to common from core.bunnei3-3/+3
- Removes a dependency on core and input_common from common.
2021-02-08hid: Implement GC controllergerman1-0/+1
2021-02-06Make settings controller image change with controller inputgerman1-0/+11
2021-01-16input_interpreter: Mark two member functions as constLioncash1-4/+4
These aren't stateful functions, so we can make use of const. While we're at, we can resolve some -Wdocumentation warnings.
2021-01-16input_interpreter: Add method to check for a button press stateMorph2-0/+25
This allows to check for continuous input for the duration of a button press/hold
2021-01-15Always initialize keyboard inputgerman2-7/+7
2021-01-15Add mutitouch support for touch screensgerman2-23/+31
2021-01-15Allow to return up to 16 touch inputs per enginegerman2-6/+9
2020-12-18applets/web: Implement the online web browser appletMorph2-0/+17
2020-12-18main, applets/web: Re-add progress dialog for RomFS extractionMorph2-8/+8
2020-12-18frontend/input_interpreter: Add InputInterpreter APIMorph2-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>
2020-12-18applets/web: Implement the default web browser applet frontendMorph2-0/+20
2020-12-18applets: Remove the previous web browser applet implementationMorph4-136/+0
2020-12-08core: Remove unnecessary enum casts in log callsLioncash1-3/+4
Follows the video core PR. fmt doesn't require casts for enum classes anymore, so we can remove quite a few casts.
2020-11-26Implement full mouse supportgerman1-2/+7
2020-11-24Fix warnings in core/frontend/input.h with [[maybe_unused]]bunnei1-1/+3
Fixes build break due to #4927
2020-11-23Overhaul EmuWindow::PollEvents to fix yuzu-cmd calling SDL_PollEvents off main threadcomex1-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.
2020-11-22input_common: Treat warnings as errorsLioncash1-1/+1
Migrates over warnings as errors for input common to match how the common library treats warnings as errors.
2020-11-16input_common: Add VibrationDevice and VibrationDeviceFactoryMorph1-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.
2020-11-16controllers/npad: Add heuristics to reduce rumble state changesMorph1-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.
2020-11-16hid: Reorder all HID commandsMorph1-2/+2
Reorders all HID commands in command id order.
2020-11-16settings: Preparation for per-game input settingsMorph2-3/+3
2020-10-27controller: Pass ControllerParameters by reference in ReconfigureControllers()Lioncash2-3/+3
Prevents unnecessary copies and heap reallocations from occurring.
2020-10-21Revert "core: Fix clang build"bunnei2-3/+2
2020-10-18core: Fix clang buildLioncash2-2/+3
Recent changes to the build system that made more warnings be flagged as errors caused building via clang to break. Fixes #4795
2020-10-13core/CMakeLists: Make some warnings errorsLioncash2-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.
2020-09-29First implementation of controller rumblegerman1-0/+3
2020-09-26frontend/controller: Eliminate dependency on the global system instanceLioncash2-4/+12
2020-09-05Remove RealMotionDevicegerman1-21/+8
2020-09-05Include HID and configuration changes related to motiongerman1-0/+27
2020-09-04applets/controller: Resolve several compiler warningsMorph1-1/+2
Resolves -Wsign-compare and -Wunused-variable
2020-09-04Address feedbackMorph1-0/+2
2020-09-04applets/controller: Modify heuristic to account for certain gamesMorph1-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.
2020-09-04applets/controller: Implement fallback applet for the SDL frontendMorph1-1/+34
Implement the fallback applet for the SDL frontend, connecting only the minimum amount of players required.
2020-09-04applets/controller: Implement "Explain Text"Morph1-0/+3
"Explain Text" is additional text that is shown for each player in the controller applet.
2020-09-04Project Mjölnir: Part 2 - Controller AppletMorph2-0/+85
Co-authored-by: Its-Rei <kupfel@gmail.com>
2020-08-30Address second batch of reviewsFearlessTobi1-0/+1
2020-08-14emu_window: Mark Scoped constructor and Acquire() as nodiscardLioncash1-2/+2
Ensures that callers make use of the constructor, preventing bugs from silently occurring.
2020-07-10configuration: implement per-game configurations (#4098)lat9nq1-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>
2020-05-15frontend: Set minimum window size to 640x360 instead of 1280x720 (#3413)Morph2-1/+6
2020-04-16CMakeLists: Specify -Wextra on linux buildsLioncash1-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.
2020-04-07yuzu: Drop SDL2 and Qt frontend Vulkan requirementsReinUsesLisp1-5/+36
Create Vulkan instances and surfaces from the Vulkan backend.
2020-03-26Address review and fix broken yuzu-tester buildJames Rowe1-1/+1
2020-03-25Frontend/GPU: Refactor context managementJames Rowe3-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
2020-03-11framebuffer_layout.h: drop the use of enum for screen dimensions.Vitor Kiguchi2-10/+10
+clang format
2020-02-27renderer_opengl: Move Frame/FrameMailbox to OpenGL namespace.bunnei1-41/+0
2020-02-26core: frontend: Refactor scope_acquire_window_context to scope_acquire_context.bunnei3-23/+23
2020-02-26frontend: sdl2: emu_window: Implement separate presentation thread.bunnei1-3/+0
2020-02-26renderer_opengl: Add texture mailbox support for presenter thread.bunnei1-0/+1
2020-02-26core: frontend: emu_window: Add TextureMailbox class.bunnei1-0/+41
2020-02-14Add 4:3 aspect ratio and address feedbackMorph2-10/+13
2020-02-14Address feedbackMorph2-18/+26
2020-02-14Use enumeration instead of magic numbersMorph2-5/+11
2020-02-14Add following aspect ratios: 16:9, 21:9, Stretch to WindowMorph1-2/+15
Available as a drop down within the configure graphics tab.
2020-01-29yuzu: Implement Vulkan frontendReinUsesLisp1-0/+7
Adds a Qt and SDL2 frontend for Vulkan. It also finishes the missing bits on Vulkan initialization.
2020-01-15Moved analog direction logic to sdl_implCJBok1-0/+10
2019-06-25general_frontend: Add documentation for parental controls and ecommerce appletsZach Hilman2-4/+32
2019-06-25frontend: Add base class and default impl for ECommerce applet frontendZach Hilman2-0/+102
2019-06-25web_browser: Rename OpenPage to OpenPageLocalZach Hilman2-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.
2019-06-25frontend: Add base class and default impl of parent controls applet frontendZach Hilman2-1/+52
2019-06-03yuzu/bootmanager: Treat the resolution factor as a u32Lioncash2-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.
2019-05-26emu_window: Pass OnMinimalClientAreaChangeRequest argument by copyReinUsesLisp1-2/+1
There's no performance improvement in passing an unsigned pair by reference.
2019-05-04core/frontend/emu_window: Make GraphicsContext's destructor virtualLioncash2-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.
2019-04-25profile_select: Port Service::Account::UUID to Common::UUIDZach Hilman2-7/+6
2019-04-17web_browser: Make OpenPage non-constZach Hilman2-3/+3
2019-04-17main: Add GMainWindow hooks for Error displayZach Hilman1-1/+1
2019-04-17general_frontend: Add frontend scaffold for PhotoViewer appletZach Hilman2-0/+55
2019-04-17frontend: Add frontend receiver for Error appletZach Hilman2-0/+71
2019-04-17web_browser: Make OpenPage constZach Hilman2-3/+3
2019-04-01general: Use deducation guides for std::lock_guard and std::unique_lockLioncash1-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.
2019-02-27core/frontend/emu_window: Make ClipToTouchScreen a const member functionLioncash2-2/+2
This member function doesn't modify instance state, so it can have the const specifier applied to it.
2019-02-27common/math_util: Move contents into the Common namespaceLioncash2-7/+7
These types are within the common library, so they should be within the Common namespace.
2019-02-27common/vector_math: Move Vec[x] types into the Common namespaceLioncash1-1/+1
These types are within the common library, so they should be using the Common namespace.
2019-01-24frontend: Refactor ScopeAcquireWindowContext out of renderer_opengl.bunnei2-0/+41
2019-01-22QT Frontend: Migrate to QOpenGLWindowJames Rowe1-9/+30
2019-01-17core/frontend/applets/web_browser: Make OpenPage() non-constLioncash2-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.
2018-12-28frontend: Add frontend responder for web browserZach Hilman2-0/+52
2018-12-18yuzu, video_core: Screenshot functionalityzhupengfei2-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.
2018-12-03frontend: Add frontend applet for ProfileSelectZach Hilman2-0/+46
Responsible for selecting a profile and firing callback upon completion.
2018-11-19settings: Add Native type for mouse buttonsZach Hilman1-0/+7
2018-11-18applet: Add operation completed callbackZach Hilman2-3/+7
2018-11-18software_keyboard: Make GetText asynchronousZach Hilman2-5/+9
a
2018-11-18am: Allow applets to push multiple and different channels of dataZach Hilman2-8/+7
2018-11-18am: Implement ILibraryAppletAccessor IsCompleted and GetResultZach Hilman1-0/+1
2018-11-18am: Implement text check software keyboard modeZach Hilman2-0/+8
Allows the game to verify and send a message to the frontend.
2018-11-18am: Deglobalize software keyboard appletZach Hilman2-31/+36
2018-11-18qt/main: Register Qt Software Keyboard frontend with AMZach Hilman1-0/+1
Allows using Qt provider over default.
2018-11-18frontend/applets: Add frontend software keyboard provider and defaultZach Hilman2-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.
2018-08-15emu_window: Ensure WindowConfig members are always initializedLioncash1-3/+3
Previously we weren't always initializing all members of the struct. Prevents potentially wonky behavior from occurring.
2018-08-12core: Namespace EmuWindowLioncash2-0/+8
Gets the class out of the global namespace.
2018-07-03Rename logging macro back to LOG_*James Rowe1-3/+3
2018-04-26core: Replace remaining old non-generic logger usages with fmt-capable equivalentsLioncash1-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.
2018-01-13yuzu: Update license text to be consistent across project.bunnei2-2/+2
2018-01-12core: Fix recent GCC build breaks.bunnei1-0/+2
2018-01-11frontend: Update for undocked Switch screen layout.bunnei4-251/+39
2017-10-10hle: Remove a large amount of 3ds-specific service code.bunnei6-204/+0
2017-08-25SidebySide Layout (#2859)ThaMighty903-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
2017-08-24EmuWindow: refactor touch input into a TouchDevicewwylele2-39/+63
2017-08-24HID: use TouchDevice for touch padwwylele1-0/+6
2017-08-11move MotionEmu from core/frontend to input_common as a InputDevicewwylele5-252/+4
2017-08-11HID: use MotionDevice for Accelerometer and Gyroscopewwylele1-0/+20
2017-05-28Move screen size constants from video_core to coreYuri Kunde Schlesner3-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.
2017-05-28Move framebuffer_layout from Common to CoreYuri Kunde Schlesner3-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.
2017-03-01Input: remove unused stuff & clean upwwylele4-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
2017-03-01InputCommon: add Keyboardwwylele1-2/+0
2017-03-01HID: use AnalogDevicewwylele1-0/+7
2017-03-01HID: use ButtonDevicewwylele1-0/+6
2017-03-01Input: add device and factory templatewwylele1-0/+97
2017-02-27Doxygen: Amend minor issues (#2593)Mat M1-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.
2017-02-27Core: Make PerfStats internally lockedYuri Kunde Schlesner1-1/+1
More ergonomic to use and will be required for upcoming changes.
2017-02-27PerfStats: Add method to get the instantaneous time ratioYuri Kunde Schlesner1-3/+2
2017-02-23Add custom layout settings.SonofUgly1-11/+15
2017-02-11hid: remove the touch field from PadState (#2557)Weiyi Wang1-2/+0
2017-01-29core: emu_window.cpp, fix conversion warnings from float to s16 on MSVCKloen1-6/+6
2017-01-11CAM: implement basic camera functions with a blank camerawwylele6-0/+204
2016-12-29Frontend: make motion sensor interfaced thread-safewwylele2-2/+8
2016-12-26Frontend: emulate motion sensorwwylele4-8/+204
2016-12-23core: Move emu_window and key_map into coreMerryMage4-0/+642
* Removes circular dependences (common should not depend on core)