summaryrefslogtreecommitdiffstats
path: root/src/core/frontend/emu_window.h (follow)
Commit message (Collapse)AuthorAgeFilesLines
* emu_window: Return pair from ClipToTouchScreen() instead of tupleLioncash2021-04-231-1/+1
| | | | | This is only a 2-tuple, so it can be converted over to the std::pair class.
* emu_window: unsigned -> u32Lioncash2021-04-231-14/+14
| | | | This is more concise and consistent with the rest of the codebase.
* Always initialize keyboard inputgerman2021-01-151-4/+5
|
* Add mutitouch support for touch screensgerman2021-01-151-4/+8
|
* 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.
* 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.
* 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-251-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
* renderer_opengl: Move Frame/FrameMailbox to OpenGL namespace.bunnei2020-02-271-41/+0
|
* frontend: sdl2: emu_window: Implement separate presentation thread.bunnei2020-02-261-3/+0
|
* core: frontend: emu_window: Add TextureMailbox class.bunnei2020-02-261-0/+41
|
* 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.
* 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-041-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.
* 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
| |
* | core/frontend/emu_window: Make ClipToTouchScreen a const member functionLioncash2019-02-271-1/+1
|/ | | | | This member function doesn't modify instance state, so it can have the const specifier applied to it.
* 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-121-0/+4
| | | | Gets the class out of the global namespace.
* frontend: Update for undocked Switch screen layout.bunnei2018-01-111-3/+3
|
* EmuWindow: refactor touch input into a TouchDevicewwylele2017-08-241-26/+5
|
* move MotionEmu from core/frontend to input_common as a InputDevicewwylele2017-08-111-83/+0
|
* Move framebuffer_layout from Common to CoreYuri Kunde Schlesner2017-05-281-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.
* Input: remove unused stuff & clean upwwylele2017-03-011-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
* InputCommon: add Keyboardwwylele2017-03-011-2/+0
|
* Frontend: make motion sensor interfaced thread-safewwylele2016-12-291-2/+5
|
* Frontend: emulate motion sensorwwylele2016-12-261-8/+41
|
* core: Move emu_window and key_map into coreMerryMage2016-12-231-0/+290
* Removes circular dependences (common should not depend on core)