aboutsummaryrefslogtreecommitdiff
path: root/src/yuzu_cmd/emu_window/emu_window_sdl2.cpp
AgeCommit message (Collapse)Author
2020-11-29Merge pull request #4939 from german77/MouseInputbunnei
InputCommon: Implement full mouse support
2020-11-25Implement full mouse supportgerman
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-09-20renderer_opengl: Remove emulated mailbox presentationReinUsesLisp
Emulated mailbox presentation was causing performance issues on Nvidia's OpenGL driver. Remove it.
2020-08-27input_common: Eliminate most global stateLioncash
Abstracts most of the input mechanisms under an InputSubsystem class that is managed by the frontends, eliminating any static constructors and destructors. This gets rid of global accessor functions and also allows the frontends to have a more fine-grained control over the lifecycle of the input subsystem. This also makes it explicit which interfaces rely on the input subsystem instead of making it opaque in the interface functions. All that remains to migrate over is the factories, which can be done in a separate change.
2020-04-23Fix format error in performance statisticsH27CK
Formatting
2020-02-25frontend: sdl2: emu_window: Implement separate presentation thread.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-10-04SDL: Fix missing headerFernando Sahmkow
This fixes linux and mingw builds.
2019-09-22Add FPS to SDL title barjroweboy
Also fix a small issue with incorrect shutdown ordering in SDL. Previously the system would still be running so the telemetry task didn't launch and detached_tasks would assert(count == 0)
2019-05-26emu_window: Pass OnMinimalClientAreaChangeRequest argument by copyReinUsesLisp
There's no performance improvement in passing an unsigned pair by reference.
2019-05-25yuzu_cmd: Split emu_window OpenGL implementation into its own fileReinUsesLisp
2019-05-17yuzu_cmd: Use OpenGL compat when asked in the settingsReinUsesLisp
2019-04-13Merge pull request #2017 from jroweboy/glwidgetbunnei
Frontend: Migrate to QOpenGLWindow and support shared contexts
2019-03-02Input: Remove global variables from SDL InputJames Rowe
Changes the interface as well to remove any unique methods that frontends needed to call such as StartJoystickEventHandler by conditionally starting the polling thread only if the frontend hasn't started it already. Additionally, moves all global state into a single SDLState class in order to guarantee that the destructors are called in the proper order
2019-01-22citra_qt: Log settings on launchzhupengfei
2019-01-21SDL Frontend: Add shared context supportJames Rowe
2018-11-28gl_rasterizer: Remove extension booleansReinUsesLisp
2018-11-21Removed pre 4.3 ARB extensionsFernandoS27
2018-11-21Update OpenGL's backend version from 3.3 to 4.3FernandoS27
2018-10-09implemented touch in Qt and SDLNeatNit
change TouchToPixelPos to return std::pair<int, int> static_cast (SDL) various minor style and code improvements style - PascalCase for function names made touch events private const pointer arg in touch events make TouchToPixelPos a const member function did I do this right? braces on barely-multiline if remove question comment (confirmed in Discord) fixed consts remove unused parameter from TouchEndEvent DRY - High-DPI scaled touch put in separate function also fixes a bug where if you start touching (with either mouse or touchscreen) and drag the mouse to the LEFT of the emulator window, the touch point jumps to the RIGHT side of the touchscreen; draggin to above the window would make it jump to the bottom. implicit conversion from QPoint to QPointF, apparently I have no idea what const even means but I'll put it here anyway remove unused or used-once variables make touch scaling functions const, and put their implementations together removed unused FingerID parameters QTouchEvent forward declaration; add comment to TouchBegin that was lost in an edit better DRY in SDL To do -> TODO(NeatNit) remove unused include
2018-10-06yuzu/yuzu_cmd: Add checks for required extension ARB_copy_image.bunnei
2018-09-12Use ARB_multi_bind for uniform buffers (#1287)ReinUsesLisp
* gl_rasterizer: use ARB_multi_bind for uniform buffers * address feedback
2018-09-11gl_rasterizer: Use ARB_texture_storage.Markus Wick
It allows us to use texture views and it reduces the overhead within the GPU driver. But it disallows us to reallocate the texture, but we don't do so anyways. In the end, it is the new way to allocate textures, so there is no need to use the old way.
2018-09-10Port #4141 from citra: Joystick hotplug support (#1275)Tobias
* Joystick hotplug support (#4141) * use SDL_PollEvent instead of SDL_JoystickUpdate Register hot plugged controller by GUID if they were configured in a previous session * Move SDL_PollEvent into its own thread * Don't store SDLJoystick pointer in Input Device; Get pointer on each GetStatus call * Fix that joystick_list gets cleared after SDL_Quit * Add VirtualJoystick for InputDevices thats never nullptr * fixup! Add VirtualJoystick for InputDevices thats never nullptr * fixup! fixup! Add VirtualJoystick for InputDevices thats never nullptr * Remove SDL_GameController, make SDL_Joystick* unique_ptr * fixup! Remove SDL_GameController, make SDL_Joystick* unique_ptr * Adressed feedback; fixed handling of same guid reconnects * fixup! Adressed feedback; fixed handling of same guid reconnects * merge the two joystick_lists into one * make SDLJoystick a member of VirtualJoystick * fixup! make SDLJoystick a member of VirtualJoystick * fixup! make SDLJoystick a member of VirtualJoystick * fixup! fixup! make SDLJoystick a member of VirtualJoystick * SDLJoystick: Addressed review comments * Address one missed review comment
2018-09-08gl_rasterizer: Use baseInstance instead of moving the buffer points.bunnei
This hopefully helps our cache not to redundant upload the vertex buffer. # Conflicts: # src/video_core/renderer_opengl/gl_rasterizer.cpp
2018-09-07For SDL FrontendCaptV0rt3x
2018-09-06frontend: Set swap interval to 0fearlessTobi
2018-08-19Added check to see if ARB_texture_mirror_clamp_to_edge is supportedDavid Marcec
2018-07-26Port #3665 from CitrafearlessTobi
2018-07-22Frontend: Check for more required OpenGL extensions during startup.Subv
2018-07-12Port #3335 and #3373 from Citra: "Small SDL fixes" and "Print the actual ↵Tobias
error preventing SDL from working" (#637) * Port #3335 and #3373 from Citra * Fixup: Use the new logging placeholders
2018-07-02Rename logging macro back to LOG_*James Rowe
2018-06-04sdl: add check for GL extension supportBreadFish64
2018-04-29string_util: Remove StringFromFormat() and related functionsLioncash
Given we utilize fmt, we don't need to provide our own functions for formatting anymore
2018-04-26frontends: Move logging macros over to new fmt-capable onesLioncash
2018-04-21SDL2: Implement fullscreen. (Original PR: citra-emu/citra#3607)adityaruplaha
2018-01-12Remove settings issues in sdl and fix a few files that broke in mingwJames Rowe
2018-01-12Get yuzu sdl to start compilingJames Rowe
2018-01-12Massive removal of unused modulesJames Rowe