summaryrefslogtreecommitdiffstats
path: root/src/core/frontend/emu_window.h (follow)
Commit message (Collapse)AuthorAgeFilesLines
* yuzu: Constrain mouse in render window when emulatedNarr the Reg2023-11-251-5/+5
|
* core: frontend: Refactor GraphicsContext to its own module.bunnei2023-06-031-45/+3
|
* general: fix spelling mistakesLiam2023-03-121-1/+1
|
* gl_device: Use a more robust way to use strict context modeAlexander Orzechowski2022-12-131-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.
* Vulkan: update initializationLiam2022-11-271-0/+2
| | | | Co-authored-by: bylaws <bylaws@users.noreply.github.com>
* chore: make yuzu REUSE compliantAndrea Pappacoda2022-07-271-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [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
* emu_window: Create a way to Cancel the exit of a Scopedlat9nq2022-03-081-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.
* core/emu_window: Remove touch inputgerman772021-11-251-25/+5
|
* core: Remove unused includesameerj2021-11-041-1/+0
|
* 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)