aboutsummaryrefslogtreecommitdiff
path: root/src/core/frontend/emu_window.h
AgeCommit message (Collapse)Author
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)