summaryrefslogtreecommitdiffstats
path: root/src/yuzu_cmd/emu_window/emu_window_sdl2.cpp (unfollow)
Commit message (Collapse)AuthorFilesLines
2021-11-25yuzu_cmd: Use new inputgerman771-37/+35
2021-08-08yuzu-cmd/CMakeLists: Correct attribution for this function.Fernando Sahmkow1-0/+1
2021-08-01yuzu-cmd: hide cursor when in fullscreensan1-0/+4
Exposed the SDL_ShowCursor function to EmuWindow baseclass. When creating the window (GL or VK) in fullscreen it now automatically hides the cursor.
2021-07-30emu_window: Remove global system instancelat9nq1-3/+3
It was just the one in emu_window_sdl2, but since _gl and _vk inherit from it, they all needed adjustments. Leaves just the one auto system& in main().
2021-07-23general: Implement FullscreenMode enumerationlat9nq1-2/+2
Prevents us from using an unclear 0 or 1 to describe the fullscreen mode.
2021-07-22yuzu_cmd: Make use of fullscreen_mode settinglat9nq1-15/+29
Reverts 48259de0c1a6a1aca77eec31cb8aca5ca2b680dd to the previous hierarchy and fixes the resolution issue with this fullscreen mode. yuzu-cmd will now read the fullscreen_mode setting and use it appropriately.
2021-07-21yuzu-cmd: Fullscreen Improvements (#6656)san1-6/+6
* emu_window_sdl2_vk: Use the generated SDL config On Linux, due to the way we include SDL2 as a submodule, it makes it difficult for us to specify which SDL_config.h we intended to include. Before, CMake would default to the dummy one included with SDL and ignore the generated one. This tells CMake to use the generated one. In addition, we define USING_GENERATED_CONFIG_H to throw an error in case the dummy config is used by accident. Fixes Vulkan not working on Linux yuzu-cmd. * emu_window_sdl2_vk: Specify the window manager if it should be supported The original language "not implemented" is wrong if the implementation exists but is not compiled. This causes a bit of a debugging headache when it goes wrong. Log it if the window manager is known before exiting. * sdl_impl, emu_window: Remove clang ignore Fixed upstream by libsdl-org/SDL@25fc40b0bd44c484051064bc6b945ea9943f88dd * Enable fullscreen support for Vulkan on yuzu-cmd Hooked up the existing SDL2 logic for fullscreen support in the Vulkan window of yuzu-cmd. * Change fullscreen logic to attempt desktop resolution first on yuzu-cmd Changed the order in which we attempt to switch to fullscreen. First try desktop resolution first, if it fails fall back to streched fullscreen using windowed resolution. Co-authored-by: lat9nq <22451773+lat9nq@users.noreply.github.com> Co-authored-by: san <san+gitkraken@smederijmerlijn.nl>
2021-07-16sdl_impl, emu_window: Remove clang ignorelat9nq1-8/+0
Fixed upstream by libsdl-org/SDL@25fc40b0bd44c484051064bc6b945ea9943f88dd
2021-05-16perf_stats: Rework FPS counter to be more accurateameerj1-1/+1
The FPS counter was based on metrics in the nvdisp swapbuffers call. This metric would be accurate if the gpu thread/renderer were synchronous with the nvdisp service, but that's no longer the case. This commit moves the frame counting responsibility onto the concrete renderers after their frame draw calls. Resulting in more meaningful metrics. The displayed FPS is now made up of the average framerate between the previous and most recent update, in order to avoid distracting FPS counter updates when framerate is oscillating between close values. The status bar update frequency was also changed from 2 seconds to 500ms.
2021-04-23emu_window: unsigned -> u32Lioncash1-1/+1
This is more concise and consistent with the rest of the codebase.
2021-04-18general: Ignore implicit-fallthrough for SDL.hlat9nq1-0/+9
SDL 2.0.14 introduces an incompatibility with Clang, causing it to trigger -Wimplicit-fallthrough even though it is marked. Ignore it for now, with a comment mentioning why this is needed.
2021-02-28inputCommon: Mouse fixesgerman771-3/+21
2021-02-14yuzu: Various frontend improvements to avoid crashes and improve experience on Linux.bunnei1-0/+17
2021-02-08Add mouse panninggerman1-1/+2
2021-01-15Add mutitouch support for touch screensgerman1-6/+6
2020-11-26Implement full mouse supportgerman1-4/+4
2020-11-23Overhaul EmuWindow::PollEvents to fix yuzu-cmd calling SDL_PollEvents off main threadcomex1-49/+51
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 presentationReinUsesLisp1-3/+2
Emulated mailbox presentation was causing performance issues on Nvidia's OpenGL driver. Remove it.
2020-08-27input_common: Eliminate most global stateLioncash1-8/+10
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 statisticsH27CK1-3/+4
Formatting
2020-02-26frontend: sdl2: emu_window: Implement separate presentation thread.bunnei1-1/+1
2020-01-29yuzu: Implement Vulkan frontendReinUsesLisp1-0/+4
Adds a Qt and SDL2 frontend for Vulkan. It also finishes the missing bits on Vulkan initialization.
2019-10-05SDL: Fix missing headerFernando Sahmkow1-0/+1
This fixes linux and mingw builds.
2019-09-22Add FPS to SDL title barjroweboy1-0/+12
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 copyReinUsesLisp1-2/+1
There's no performance improvement in passing an unsigned pair by reference.
2019-05-25yuzu_cmd: Split emu_window OpenGL implementation into its own fileReinUsesLisp1-156/+15
2019-05-17yuzu_cmd: Use OpenGL compat when asked in the settingsReinUsesLisp1-1/+5
2019-03-02Input: Remove global variables from SDL InputJames Rowe1-8/+5
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 launchzhupengfei1-0/+1
2019-01-22SDL Frontend: Add shared context supportJames Rowe1-1/+36
2018-11-29gl_rasterizer: Remove extension booleansReinUsesLisp1-0/+2
2018-11-21Removed pre 4.3 ARB extensionsFernandoS271-14/+0
2018-11-21Update OpenGL's backend version from 3.3 to 4.3FernandoS271-1/+1
2018-10-09implemented touch in Qt and SDLNeatNit1-2/+46
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.bunnei1-0/+2
2018-09-13Use ARB_multi_bind for uniform buffers (#1287)ReinUsesLisp1-0/+2
* gl_rasterizer: use ARB_multi_bind for uniform buffers * address feedback
2018-09-11gl_rasterizer: Use ARB_texture_storage.Markus Wick1-0/+2
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-11Port #4141 from citra: Joystick hotplug support (#1275)Tobias1-1/+6
* 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.bunnei1-0/+2
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 FrontendCaptV0rt3x1-2/+2
2018-09-06frontend: Set swap interval to 0fearlessTobi1-0/+1
2018-08-19Added check to see if ARB_texture_mirror_clamp_to_edge is supportedDavid Marcec1-0/+2
2018-07-26Port #3665 from CitrafearlessTobi1-0/+2
2018-07-22Frontend: Check for more required OpenGL extensions during startup.Subv1-2/+12
2018-07-12Port #3335 and #3373 from Citra: "Small SDL fixes" and "Print the actual error preventing SDL from working" (#637)Tobias1-3/+3
* Port #3335 and #3373 from Citra * Fixup: Use the new logging placeholders
2018-07-03Rename logging macro back to LOG_*James Rowe1-10/+10
2018-06-04sdl: add check for GL extension supportBreadFish641-0/+23
2018-04-30string_util: Remove StringFromFormat() and related functionsLioncash1-2/+3
Given we utilize fmt, we don't need to provide our own functions for formatting anymore
2018-04-27frontends: Move logging macros over to new fmt-capable onesLioncash1-4/+4
2018-04-21SDL2: Implement fullscreen. (Original PR: citra-emu/citra#3607)adityaruplaha1-1/+26
2018-01-13Remove settings issues in sdl and fix a few files that broke in mingwJames Rowe1-2/+0
2018-01-13Get yuzu sdl to start compilingJames Rowe1-4/+2
2018-01-13Massive removal of unused modulesJames Rowe1-0/+0
2018-01-11frontend: Update for undocked Switch screen layout.bunnei1-3/+2
2017-08-11move MotionEmu from core/frontend to input_common as a InputDevicewwylele1-6/+4
2017-07-16Network: Init Network in SDL and QTB3n301-0/+4
2017-05-28Move screen size constants from video_core to coreYuri Kunde Schlesner1-7/+7
video_core didn't even properly use them, and they were the source of many otherwise-unnecessary dependencies from core to video_core.
2017-03-01InputCommon: add Keyboardwwylele1-15/+6
2017-02-23Gui: Change title bar to include build nameJames Rowe1-2/+2
Nightly builds now have "Citra Nightly" in the titlebar Bleeding edge builds now have "Citra Bleeding Edge" in the titlebar
2016-12-26Frontend: emulate motion sensorwwylele1-7/+15
2016-12-23core: Move emu_window and key_map into coreMerryMage1-1/+1
* Removes circular dependences (common should not depend on core)
2016-11-05Support additional screen layouts.James Rowe1-4/+1
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-7/+1
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-0/+1
2016-09-18Sources: Run clang-format on everything.Emmanuel Gil Peyrot1-10/+15
2016-08-30config: Add a setting for graphics V-Sync.bunnei1-0/+1
2016-05-15Refactor input subsystemwwylele1-3/+4
2016-05-06Frontends, VideoCore: Move glad initialisation to the frontendEmmanuel Gil Peyrot1-0/+7
On SDL2 this allows it to use SDL_GL_GetProcAddress() instead of the default function loader, and fixes a crash when using apitrace with an EGL context. On Qt we will need to migrate from QGLWidget to QOpenGLWidget and QOpenGLContext before we can use gladLoadGLLoader() instead of gladLoadGL(), since the former doesn’t expose a function loader.
2016-03-15SDL2: Explicitly use RGB8 color buffer.bunnei1-0/+4
2016-03-02Dependencies: Remove GLFW, Add SDL2MerryMage1-0/+167
citra: Remove GLFW, Add SDL2 FindSDL2: Do not CACHE SDL2_* variables if library is not found EmuWindow_SDL2: Set minimal client area at initialisation time EmuWindow_SDL2: Corrections EmuWindow_SDL2: Fix no decorations on startup on OS X cmake: windows_copy_files