summaryrefslogtreecommitdiffstats
path: root/src/core/frontend/emu_window.h (unfollow)
Commit message (Collapse)AuthorFilesLines
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.
2021-11-25core/emu_window: Remove touch inputgerman771-25/+5
2021-11-04core: Remove unused includesameerj1-1/+0
2021-04-23emu_window: Return pair from ClipToTouchScreen() instead of tupleLioncash1-1/+1
This is only a 2-tuple, so it can be converted over to the std::pair class.
2021-04-23emu_window: unsigned -> u32Lioncash1-14/+14
This is more concise and consistent with the rest of the codebase.
2021-01-15Always initialize keyboard inputgerman1-4/+5
2021-01-15Add mutitouch support for touch screensgerman1-4/+8
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-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-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 Rowe1-16/+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-02-27renderer_opengl: Move Frame/FrameMailbox to OpenGL namespace.bunnei1-41/+0
2020-02-26frontend: sdl2: emu_window: Implement separate presentation thread.bunnei1-3/+0
2020-02-26core: frontend: emu_window: Add TextureMailbox class.bunnei1-0/+41
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.
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 virtualLioncash1-0/+2
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-02-27core/frontend/emu_window: Make ClipToTouchScreen a const member functionLioncash1-1/+1
This member function doesn't modify instance state, so it can have the const specifier applied to it.
2019-01-22QT Frontend: Migrate to QOpenGLWindowJames Rowe1-9/+30
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 EmuWindowLioncash1-0/+4
Gets the class out of the global namespace.
2018-01-11frontend: Update for undocked Switch screen layout.bunnei1-3/+3
2017-08-24EmuWindow: refactor touch input into a TouchDevicewwylele1-26/+5
2017-08-11move MotionEmu from core/frontend to input_common as a InputDevicewwylele1-83/+0
2017-05-28Move framebuffer_layout from Common to CoreYuri Kunde Schlesner1-1/+1
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 upwwylele1-52/+0
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
2016-12-29Frontend: make motion sensor interfaced thread-safewwylele1-2/+5
2016-12-26Frontend: emulate motion sensorwwylele1-8/+41
2016-12-23core: Move emu_window and key_map into coreMerryMage1-0/+0
* Removes circular dependences (common should not depend on core)
2016-11-05Add default hotkey to swap primary screens.James Rowe1-1/+1
Also minor style changes
2016-11-05Support additional screen layouts.James Rowe1-20/+10
Allows users to choose a single screen layout or a large screen layout. Adds a configuration option to change the prominent screen.
2016-09-21Remove empty newlines in #include blocks.Emmanuel Gil Peyrot1-2/+0
This makes clang-format useful on those. Also add a bunch of forgotten transitive includes, which otherwise prevented compilation.
2016-09-19Manually tweak source formatting and then re-run clang-formatYuri Kunde Schlesner1-4/+3
2016-09-18Sources: Run clang-format on everything.Emmanuel Gil Peyrot1-24/+30
2016-05-15fixup! fixup! Refactor input systemwwylele1-3/+3
2016-05-15Refactor input subsystemwwylele1-9/+37
2016-03-26remove unnecessary constwwylele1-2/+2
2016-03-22implement accel and gyro backendwwylele1-0/+48
2015-06-28Common: Cleanup emu_window includes.Emmanuel Gil Peyrot1-3/+9
2015-05-07Common: Remove common.hYuri Kunde Schlesner1-3/+3
2015-05-02EmuWindow: Clip mouse input coordinates to emulated screen dimensions.Zaneo1-0/+5
If the mouse position for a mouse move/drag would take it outside the emulated screen dimensions, clip the coordinates to the emulated screen dimensions. Qt and GLFW will report negative coordinates for mouse positions to the left, or above citra window. Added restriction to mouse coordinates passed to touchmoved by Qt/GLFW to be greater or equal to zero.
2015-03-14EmuWindow: Fixed a reference to a temporary variableSubv1-1/+1
in GetTouchState()
2015-03-11HID: Complete refactor of pad/touch input to fix threading issues.bunnei1-22/+35
2015-03-10EmuWindow: Made pad/touch functions non-static.bunnei1-9/+6
2015-03-10EmuWindow: Added infrastructure code to enable touchpad support.bunnei1-0/+29
2015-03-08Fixed EmuWindow typo (fixes OSX build)bunnei1-1/+1
2015-03-07Set framebuffer layout from EmuWindow.bunnei1-7/+25
2014-12-21License changepurpasmart961-1/+1
2014-11-18EmuWindow: Add some explicit documentation and set proper minimal client area size.Tony Wasserka1-2/+4
2014-11-18EmuWindow: Add a TODO.Tony Wasserka1-0/+1
Implementing this function currently is not critical, as we don't perform any configuration changes, yet. However, the interface is a good starting point for adding this functionality.
2014-11-18EmuWindow: Better document the purpose of OnMinimalClientAreaChangeRequest.Tony Wasserka1-0/+7
2014-11-18EmuWindow: Remove window title getters/setters.Tony Wasserka1-16/+1
The window title is none of the emulation core's business. The GUI code is free to put whatever it wants there. Providing properly thread-safe window title getters and setters is a mess anyway.
2014-11-18EmuWindow: Add documentation.Tony Wasserka1-18/+57
2014-11-18EmuWindow: Add support for specifying minimal client area sizes.Tony Wasserka1-8/+26
2014-11-18Fixup EmuWindow interface and implementations thereof.Tony Wasserka1-28/+33
2014-11-18Viewport scaling and display density independenceKevin Hartman1-2/+5
The view is scaled to be as large as possible, without changing the aspect, within the bounds of the window. On "retina" displays, or other displays where window units != pixels, the view should no longer draw incorrectly.
2014-11-17emu_window: Fix initializer list order.Lioncash1-2/+2
Gets rid of a warning on OSX.
2014-10-24Removed uses of raw c-string manipulation functions.archshift1-6/+6
2014-10-08Added configuration file system.archshift1-4/+6
Uses QSettings on citra-qt, and inih on citra-cli.
2014-09-12Added support for multiple input device types for KeyMap and connected Qt.Kevin Hartman1-15/+4
2014-09-12Initial HID PAD work, with GLFW only.Kevin Hartman1-0/+19
2014-04-24made qt window title consistentbunnei1-1/+1
2014-04-24added scm rev generation on Linux/cmakebunnei1-1/+2
2014-04-11added missing const to GetWindowTitlebunnei1-1/+1
2014-04-09- removed deprecated version.hbunnei1-60/+40
- cleaned up window title - cleaned up emu_window_glfw/emu_window
2014-04-09fixed project includes to use new directory structurebunnei1-1/+1
2014-04-09got rid of 'src' folders in each sub-projectbunnei1-0/+0
2014-04-07added "citra" instead of "emu" to title barbunnei1-1/+1
2014-04-02convert tabs to spacesbunnei1-2/+2
2013-09-26renamed from citrus to citraShizZy1-1/+1
2013-09-14renamed project to 'citrus'ShizZy1-1/+1
2013-09-05various fixes to be able to build projectShizZy1-17/+13
2013-09-05added emu_window.h to define interface to drawing to a windowShizZy1-0/+106