aboutsummaryrefslogtreecommitdiff
path: root/src/core/frontend/emu_window.h
AgeCommit message (Collapse)Author
2023-11-24yuzu: Constrain mouse in render window when emulatedNarr the Reg
2023-06-03core: frontend: Refactor GraphicsContext to its own module.bunnei
2023-03-12general: fix spelling mistakesLiam
2022-12-13gl_device: Use a more robust way to use strict context modeAlexander Orzechowski
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-11-27Vulkan: update initializationLiam
Co-authored-by: bylaws <bylaws@users.noreply.github.com>
2022-07-27chore: make yuzu REUSE compliantAndrea Pappacoda
[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-03-07emu_window: Create a way to Cancel the exit of a Scopedlat9nq
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.
2021-11-24core/emu_window: Remove touch inputgerman77
2021-11-03core: Remove unused includesameerj
2021-04-23emu_window: Return pair from ClipToTouchScreen() instead of tupleLioncash
This is only a 2-tuple, so it can be converted over to the std::pair class.
2021-04-23emu_window: unsigned -> u32Lioncash
This is more concise and consistent with the rest of the codebase.
2021-01-15Always initialize keyboard inputgerman
2021-01-15Add mutitouch support for touch screensgerman
2020-11-23Overhaul EmuWindow::PollEvents to fix yuzu-cmd calling SDL_PollEvents off ↵comex
main thread 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-08-14emu_window: Mark Scoped constructor and Acquire() as nodiscardLioncash
Ensures that callers make use of the constructor, preventing bugs from silently occurring.
2020-04-07yuzu: Drop SDL2 and Qt frontend Vulkan requirementsReinUsesLisp
Create Vulkan instances and surfaces from the Vulkan backend.
2020-03-25Address review and fix broken yuzu-tester buildJames Rowe
2020-03-24Frontend/GPU: Refactor context managementJames Rowe
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-02-26renderer_opengl: Move Frame/FrameMailbox to OpenGL namespace.bunnei
2020-02-25frontend: sdl2: emu_window: Implement separate presentation thread.bunnei
2020-02-25core: frontend: emu_window: Add TextureMailbox class.bunnei
2020-01-29yuzu: Implement Vulkan frontendReinUsesLisp
Adds a Qt and SDL2 frontend for Vulkan. It also finishes the missing bits on Vulkan initialization.
2019-05-26emu_window: Pass OnMinimalClientAreaChangeRequest argument by copyReinUsesLisp
There's no performance improvement in passing an unsigned pair by reference.
2019-05-04core/frontend/emu_window: Make GraphicsContext's destructor virtualLioncash
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-13Merge pull request #2017 from jroweboy/glwidgetbunnei
Frontend: Migrate to QOpenGLWindow and support shared contexts
2019-02-27core/frontend/emu_window: Make ClipToTouchScreen a const member functionLioncash
This member function doesn't modify instance state, so it can have the const specifier applied to it.
2019-01-21QT Frontend: Migrate to QOpenGLWindowJames Rowe
2018-08-14emu_window: Ensure WindowConfig members are always initializedLioncash
Previously we weren't always initializing all members of the struct. Prevents potentially wonky behavior from occurring.
2018-08-11core: Namespace EmuWindowLioncash
Gets the class out of the global namespace.
2018-01-10frontend: Update for undocked Switch screen layout.bunnei
2017-08-24EmuWindow: refactor touch input into a TouchDevicewwylele
2017-08-11move MotionEmu from core/frontend to input_common as a InputDevicewwylele
2017-05-27Move framebuffer_layout from Common to CoreYuri Kunde Schlesner
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 upwwylele
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 Keyboardwwylele
2016-12-29Frontend: make motion sensor interfaced thread-safewwylele
2016-12-26Frontend: emulate motion sensorwwylele
2016-12-23core: Move emu_window and key_map into coreMerryMage
* Removes circular dependences (common should not depend on core)