src/video


Log

Author Commit Date CI Message
Sylvain f5a98044 2022-03-23T10:13:56 Android: add SetWindowResizable() implementation - which also enable/disable the orientation lock status. This is only provided when the window is not SDL_WINDOW_FULLSCREEN (see SDL_video.c). Final orientation also depends on SDL_HINT_ORIENTATIONS.
Charlie Birks 4b8d69a4 2022-03-22T17:09:44 Avoid trying to use texture framebuffers on emscripten
Sam Lantinga 34fd83ca 2022-03-22T06:50:10 Don't try to hide foreign windows when destroying the SDL window representation Fixes https://github.com/libsdl-org/SDL/issues/5432
Ozkan Sezer 74680f5c 2022-03-21T18:56:56 regenerated SDL_blit_auto.c.
pionere dd6c46cb 2022-03-21T18:56:56 blit-auto optimizations
Sam Lantinga 8f964576 2022-03-19T11:01:55 Fixed parameter operation ordering for ease of reading
Sam Lantinga 0517b61e 2022-03-19T11:00:00 Relative mouse mode is tied to the window with keyboard focus This isn't obvious, but makes sense when thinking about how games actually use it. This is also in line with how Windows mouse relative mode is implemented. Fixes https://github.com/libsdl-org/SDL/issues/5340
Ryan C. Gordon d81fee76 2022-03-19T10:27:31 SDL_Rect: Added floating point versions of all the rectangle APIs. Fixes #5110.
Ryan C. Gordon 4d9bef60 2022-03-19T09:44:09 SDL_Rect: minor code cleanups.
Ryan C. Gordon c573ebe1 2022-03-19T09:29:01 SDL_UnionRect: If both rects are empty, zero out the result struct.
Sam Lantinga 6c962177 2022-03-18T10:07:59 Added the hint SDL_HINT_MOUSE_RELATIVE_MODE_CENTER, controlling whether the mouse should be constrained to the center of the window or the whole window in relative mode. For further info about the pros and cons, check out the discussion in https://github.com/libsdl-org/SDL/issues/5271
Sam Lantinga 3167ba34 2022-03-17T17:58:35 Fixed freeing the Windows blank cursor
Sam Lantinga 0387bf82 2022-03-17T17:55:28 Fixed memory leak in WIN_CreateBlankCursor()
Sam Lantinga d4062785 2022-03-17T17:01:36 Try not forcing activation when grabbing the mouse in fullscreen windows
Sam Lantinga 4e784fce 2022-03-17T16:57:33 When updating grab state, only activate windows that are grabbed, fullscreen, and shown. Fixes https://github.com/libsdl-org/SDL/issues/5371
Sam Lantinga e5f45455 2022-03-17T14:44:34 Added a hint to mark a foreign window as usable with OpenGL Fixes https://github.com/libsdl-org/SDL/issues/2942
Sam Lantinga 4e49b78a 2022-03-17T14:44:17 Fixed compile warning and comment typo
Ethan Lee 0bf8ccfb 2022-02-08T22:15:11 video: Add a hint to allow Vulkan surfaces on foreign windows
Esme Povirk 829e15a4 2022-02-05T14:38:39 Ignore unknown WM_SIZE types. According to MSDN, we can also get SIZE_MAXHIDE and SIZE_MAXSHOW, based on state changes to other windows. It's not clear under what circumstances this will happen (I saw some docs indicating it may require multiple application windows), but it doesn't seem right to treat them as RESTORED.
uyjulian a164c9d2 2022-01-04T10:43:34 SDL_cocoawindow.m: update fullscreen toggle when SDL_SetWindowResizable called
Sylvain 93e7caab 2022-03-16T18:08:20 SDL_blit_slow: remove one nested 'if()' because of ARGB2101010 handling
Sylvain 56568ffb 2022-03-16T18:04:40 Remove 'reserved identifier' warning
Ozkan Sezer d1e4367f 2022-03-15T21:41:02 SDL_windowskeyboard.c: fix build with SDL_DISABLE_WINDOWS_IME defined. Fixes https://github.com/libsdl-org/SDL/issues/5408
Sylvain f3e86b9f 2022-03-15T17:46:12 Fixed bug #2199: make SDL_blit_slow handles SDL_PIXELFORMAT_ARGB2101010, storing as RGBA
Zach Reedy 363c3678 2022-03-10T17:12:33 Fixed: Incorrect assumption that mouse button is released when window is allocated
Guus Waals 7495b981 2022-03-11T15:14:51 Make SDL_VIDEO_OPENGL_EGL optional on Android
Ozkan Sezer ee6bfcdd 2022-03-13T20:56:42 SDL_blit_N.c: removed duplicated const (fixes bug #5401)
Ozkan Sezer 072db7b0 2022-03-12T01:56:40 SDL_windowskeyboard.c (IME_IsTextInputShown): remove unused local vars.
Zach Reedy d14a1263 2022-03-11T17:45:17 IME Composition Truncation + SDL_IsTextInputShown + SDL_ClearComposition (#5398) * Fixes for IME Composition Truncation + Addition of SDL_ClearComposition, SDL_IsTextInputShown * Fixed: Documentation and code style issues raised during code review.
Charlie Birks 9de97e19 2020-12-01T12:46:59 emscripten: Don't prevent default on filtered key events
Ozkan Sezer afb0606f 2022-03-10T18:50:10 minor os/2 clean-ups.
Jo Bates 01d38e7a 2022-03-09T14:03:52 Make Win32 fullscreen and borderless windows minimizable
Sylvain 45833a14 2022-03-09T15:33:45 Prevent shadowing static variable '_this' with local paramter '_this' of SDL_CreateWindowTexture
Sylvain a4a80c86 2022-03-09T15:21:55 Fix variable may be uninitialized when used here [-Wconditional-uninitialized]
Mahyar Koshkouei 41e7d1ba 2022-03-06T23:02:57 Add SDL_GetDisplayDPI implementation on Emscripten Signed-off-by: Mahyar Koshkouei <mk@deltabeard.com>
Cameron Cawley 2f7b885d 2022-02-28T16:30:34 Fix 'potentially uninitialized local pointer variable' error in UWP builds
Cameron Cawley 98353533 2022-02-23T18:54:31 riscos: Report keyboard repeat events
Ryan C. Gordon b946e31e 2022-02-23T09:10:46 video: Allow unaccelerated SDL_HINT_FRAMEBUFFER_ACCELERATION renderers. If the app requested a specific renderer, even if it's not the optimal path, let them have it, because they might want to render with a specific GPU API on top of the framebuffer pixels. This fixes DosBox-X crashing on startup, which forces the hint to "opengl".
Ryan C. Gordon 60ddb74c 2022-02-02T12:19:37 video: rework how we prepare a texture framebuffer. Now we see if we can create an SDL_Renderer, and if that renderer reports itself as "accelerated," and added some initial heuristics to the OpenGL renderer to make better decisions about what qualifies as "accelerated." This adds some FIXMEs that might be merely hypothetical, and removes the old OpenGL checks from the video subsystem that probably weren't meaningful in modern times. This will definitely need to improve the existing list in the GL renderer, to catch things like llvmpipe, etc. Reference issue #4624.
Sylvain 85e65000 2022-02-11T11:08:08 X11 Segmentation fault with multiple windows and renderers (see #5256)
Sylvain a75041e8 2022-02-10T13:44:59 Fixed bug #2140: basic support to convert 16 colors palette PIXELFORMAT_INDEX4, to allow conversion to SDL_Texture
waddlesplash 423feac6 2022-02-05T21:23:40 haiku: Actually remove BDirectWindow and fix OpenGL handling. This provides the other half of 05c72b113c830392f8b08532317ef07972b29a2e.
Ozkan Sezer c8cee0b8 2022-02-04T23:28:56 OS2_HasClipboardText: store the boolean result before closing clipboard. just in case..
Ozkan Sezer 3b9e6c1c 2022-02-04T19:50:20 SDL_os2video.c: fixed HasClipboardText() semantics. Empty string in clipboard is expected to give FALSE by SDL_HasClipboardText. Noticed in a commit by josch1710 in bitwiseworks' os/2 fork.
pionere 3bef4a5d 2022-01-22T15:43:09 cleanup error-handling in SDL_egl.c - always set error message in SDL_EGL_ChooseConfig / SDL_EGL_CreateContext - assume SDL_EGL_DeleteContext does not alter the error message - sync generic error message of SDL_EGL_MakeCurrent with SDL_EGL_Get/SetSwapInterval - do not overwrite error message of SDL_EGL_ChooseConfig in WINRT_CreateWindow
pionere b5c50526 2022-01-22T15:34:22 cleanup error-handling in SDL_bmp.c - add missing error-message in SDL_LoadBMP_RW - check return value of SDL_RWtell in SDL_LoadBMP_RW - use standard SDL_EFREAD error instead of custom strings + adjust return type of readRlePixels
pionere 19df4af2 2022-01-22T10:33:38 simplify SDL_DUMMY/OFFSCREEN_CreateWindowFramebuffer
SonicMastr ecd922b5 2022-02-01T22:33:13 Fix touch holding detection after #5244 changes
Weng Xuetian b11dfd76 2022-02-01T14:43:26 Only generate key repetition for keys that should repeat on wayland. This fix repetition on modifier keys, e.g. Control.
Weng Xuetian a90a2e75 2022-01-30T16:44:44 Fix text_input_v3 preedit string For every batch of text_input_v3 updates, if there is no preedit in this batch, preedit should be cleared.
pionere 97269e14 2022-01-18T17:51:17 adjustments to ime_candidates - allocate ime_candidates on demand - allow write to the whole allocated memory of ime_candidates - ensure ime_candcount is set to zero in case the candidates can not be queried for any reason
pionere 6f404d0f 2022-01-18T17:49:33 cleanup IME_GetCandidateList / UILess_GetCandidateList - move IME_ShowCandidateList, ImmGetContext and ImmReleaseContext to this function - set ime_candpgsize to MAX_CANDLIST if dwPageSize is zero - comment out deselection of ime_candsel in case of korean language for the moment (LANG_CHT does not work anyway)
pionere e11ba0f5 2022-01-08T12:03:57 do not load/unload opengl library when SDL_WINDOW_METAL flag is changed
pionere 32c7d5d3 2022-01-18T17:44:51 cleanup IME_UpdateInputLocale - do not store the HKL in a static variable - always set the ime_candvertical value in case the HKL is changed
pionere 25aa7244 2022-01-18T17:43:31 cleanup IME_GetId - use assert instead of a check (it is a static function with constant parameter) - assume it is called with 0 first (simplifies the logic) - reuse dwLang value instead of a new 'call' to LANG()
pionere 60deadba 2022-01-17T17:22:30 re-use return value of SDL_SetError/WIN_SetErrorFromHRESULT/SDL_OutOfMemory
pionere ebdd5366 2022-01-17T16:26:02 use SDL_InvalidParamError or SDL_assert instead of custom SDL_SetError
pionere 3c85cef4 2022-01-17T09:58:16 cleanup SDL_RegisterApp - fix memory leak when RegisterClassEx fails - set style according to the documentation - eliminate duplicated SDL_Instance setter
pionere 014e2bbd 2022-01-12T16:40:52 use SDL_COMPILE_TIME_ASSERT instead of SDL_STATIC_ASSERT
pionere 95f30c7a 2022-01-12T10:12:54 fix compiler warnings in video/uikit
pionere eb80f2c6 2022-01-11T10:45:41 sync handling of subsystems II.
pionere 942b01a5 2022-01-09T15:08:21 do not use RWOps in WIN_SetWindowIcon
Ryan C. Gordon 19ae71b2 2022-01-27T11:48:32 video: Don't add SDL_WINDOW_(METAL|OPENGL) to new windows if unsupported. Fixes #4656. (Better than the previous fix in 3044310518dbb2d4814b32c6521f332b8d69aae5.)
Cameron Gutman cc40f732 2022-01-26T21:09:39 wayland: Round the refresh rate rather than truncating it A 59999 mHz monitor should be reported as 60 Hz, not 59 Hz.
Ryan C. Gordon 30443105 2022-01-26T21:10:15 video: Don't add SDL_WINDOW_METAL to new windows if not using Cocoa or UIKit. Fixes #4656.
Cameron Gutman 77a9ca6b 2022-01-26T18:26:07 wayland: Fix SDL_SetWindowSize() being dropped right after exiting fullscreen If we get a SDL_SetWindowSize() call right after SDL_SetWindowFullscreen() but before we've gotten a new configure event from the compositor, the attempt to set our window size will silently fail (when libdecor is enabled). Fix this by remembering that we need to commit a new size, so we can do that in decoration_frame_configure().
Ryan C. Gordon f37e4a94 2022-01-26T17:02:49 video: Don't check if we can use a "texture framebuffer" until needed. This prevents SDL from making an OpenGL context and maybe throwing it away immediately by default. It will now only do it when trying to request a window framebuffer directly, or creating an SDL_Renderer with the "software" backend, which makes that request itself. The way SDL decides if it should use a "texture framebuffer" needs dramatic updating, but this solves the immediate problem. Reference Issue #4624.
Ethan Lee 8ceba27d 2021-04-17T12:07:38 video: Prefer Wayland over X11
Ethan Lee 68a71f91 2022-01-25T11:18:04 wayland: Try to avoid committing before the window is shown
Ethan Lee f0e768da 2022-01-25T13:07:00 wayland: Call SetFullscreen directly in ShowWindow. This cuts out an extra flush when getting the first configure event.
Sylvain 8c660ccb 2022-01-25T17:14:01 Fixed bug #5256: X11 Segmentation fault with multiple windows and renderers First window is created and it triggers and 'EnterNotify' event which calls SDL_SetMouseFocus() and X11_ShowCursor() while the second windows hasn't finished to be created (eg window->driverdata isn't set) Just check for a valid 'driverdata'
Ethan Lee e2d74bcb 2022-01-25T11:16:09 wayland: Detach hidden surfaces in HideWindow, not ShowWindow
ulatekh 57bc9040 2022-01-07T08:54:08 Add hint to optionally forcibly raise the window under MS Windows.
ulatekh d7873e65 2022-01-04T15:47:29 Disable tablet flicks under MS Windows.
ulatekh 53df0e66 2022-01-21T17:15:18 Fix the erroneous generation of mouse-down events from touch-move events. The issue is that MS Windows synthesizes a mouse-move event in response to touch-move events, and those mouse-move events are NOT labeled as coming from a touch (e.g. GetMouseMessageSource() will not return SDL_MOUSE_EVENT_SOURCE_TOUCH for those synthesized mouse-move events). In addition, there seems to be no way to prevent this from happening; https://gist.github.com/vbfox/1339671 claims to demonstrate a technique to prevent it, but in my experience, it doesn't work. Because of this, the "fallthrough" case can't test that the synthesized mouse-move came from a touch-move, and starts erroneously pressing down the mouse-button, leading to massive confusion in the client application.
Ethan Lee e1b4761c 2022-01-20T14:10:56 wayland: Avoid calling SetFullscreen in libdecor ShowWindow. This caused some weird stuff to happen in the libdecor path, probably because the window hasn't actually been mapped yet. It ends up calling stuff that should not yet apply, and so fullscreen in particular would have a really messed up titlebar. The good news is, libdecor is good about tracking fullscreen state, so we can let the callback do this for us. Keep this for xdg_shell because we actually map the window ourselves, so we know this call is valid for that path.
Ethan Lee ed3442d7 2022-01-19T15:47:52 wayland: Fix building with SDL_OPENGL=OFF
Cameron Gutman d3952a8a 2022-01-16T15:14:33 wayland: Avoid spurious resize events
Mathieu Eyraud 2a0cde8f 2022-01-16T09:40:51 Always send SDL_WINDOWEVENT_SIZE_CHANGED when window is resized SDL_WINDOWEVENT_SIZE_CHANGED is now sent even if the resulting size of the window does not match the requested size.
Ethan Lee 9a2bbd8a 2022-01-12T13:01:05 wayland: Convert URI to local path for DropFile
kenmays bff86701 2022-01-12T06:47:02 haiku: updated for Haiku
Ozkan Sezer 5b6e2d69 2022-01-12T11:01:02 SDL_os2messagebox.c (_makeDlg): remove unnecessary casts
Ryan C. Gordon 42302d0a 2022-01-11T21:17:21 x11: Let apps specify a custom _NET_WM_WINDOW_TYPE. Fixes #5185.
Ozkan Sezer ea0bca57 2022-01-11T14:56:56 SDL_cocoamodes.m: fix build against older SDKs. Fixes https://github.com/libsdl-org/SDL/issues/5208
Ethan Lee 3e1b3bc3 2022-01-10T10:07:44 wayland: Horizontal wheel values do not need to be inverted
Joan Bruguera 9e6249fa 2022-01-08T19:24:47 wayland: Avoid spurious key repeats when not pumping events Previous to this commit, key repeats events were typically generated when pumping events, based on the time of when the events are pumped. However, if an application doesn't call `SDL_PumpEvents` for some seconds, this time can be multiple seconds in the future compared to the actual key up event time, and generates key repeats even if a key was pressed only for an instant. In practice, this can happen when the user presses a key which causes the application to do something without pumping events (e.g. load a level). In Crispy Doom & PrBoom+, when the user presses the key bound to "Restart level/demo", the game doesn't pump events during the "screen melt" effect, and the level is restarted multiple times due to spurious repeats. To fix this, if the key up event is among the events to be pumped, we generate the key repeats there, since in the Wayland callback we receive the time when the key up event happened. Otherwise, we know no key up event happened and we can generate as many repeats as necessary after pumping. Signed-off-by: Joan Bruguera <joanbrugueram@gmail.com>
Joan Bruguera 461724d2 2022-01-08T19:09:35 wayland: Refactor time fields in SDL_WaylandKeyboardRepeat Refactorization with no functional changes. Instead of `next_repeat_ms` containing a timestamp based on SDL ticks, we make it zero-based relative to the key press time, and we store the key press time in SDL ticks in a new field. This refactorization is groundwork for future commits which need to use the key press and release timestamps provided by the Wayland API, which are also expressed in milliseconds, but whose base does not match the one for SDL ticks. Signed-off-by: Joan Bruguera <joanbrugueram@gmail.com>
Joan Bruguera fb0c3040 2022-01-08T21:10:14 wayland: Avoid infinite loop in keyboard_repeat_handle If `repeat_info->next_repeat_ms` overflows, many key presses will be generated. In the worst case, `now = 0xFFFFFFFFU` and the loop will never terminate. Rearrange the comparison in order to gracefully handle the overflow case. Signed-off-by: Joan Bruguera <joanbrugueram@gmail.com>
Sam Lantinga 1085c317 2022-01-07T16:43:53 Use the requested cursor size instead of the default cursor size CopyImage() will scale based on the system accessibility settings automatically. Fixes https://github.com/libsdl-org/SDL/issues/5198
Sam Lantinga 4b38d4c9 2022-01-07T12:37:28 Leave the Metal view active on the window when recreating the Metal renderer Fixes https://github.com/libsdl-org/SDL/issues/5140 Also move the metal tag definition to SDL_syswm.h so it can be used by applications
Sam Lantinga 957c48b4 2022-01-07T10:58:04 Fixed detecting focus change to child dialogs Fixes https://github.com/libsdl-org/SDL/issues/5157
Wouter Wijsman 515b5f2a 2021-12-22T12:04:10 Fix build errors in PSP port
stdgregwar c3ec62d6 2021-01-09T11:25:39 PSP lazier blend states, display mode report with 16bit option
Cameron Gutman 8f924b82 2022-01-03T16:41:03 kmsdrm: Remove gbm_bo_get_offset() It is not present on some older libgbm versions that we still support and has been unused since 85e8adf.
Sam Lantinga 120c76c8 2022-01-03T09:40:00 Updated copyright for 2022
Ozkan Sezer 4b112620 2022-01-02T19:11:50 SDL_cocoamodes.m (Cocoa_GetDisplayDPI): fix build using older toolchains Fixes https://github.com/libsdl-org/SDL/issues/5162
rohlem 0403fa8a 2022-01-02T02:36:23 X11_WaitEventTimeout: remove unreachable return If that condition was reachable, the return value should be negative to indicate that waiting for the timeout failed. Otherwise, SDL_WaitEventTimeout would incorrectly return early.
Sam Lantinga 8f816998 2021-12-31T08:46:54 Only clear IME display options if SDL_HINT_IME_SHOW_UI is off (thanks opxdo!) Fixes https://github.com/libsdl-org/SDL/issues/5153
Ryan C. Gordon e4000c02 2021-12-31T10:30:51 video: SDL_GL_GetAttribute needs to operate on FBO 0. If a different FBO is bound, this would return incorrect results. Fixes #5082.
shinyquagsire23 6a7b6380 2021-12-28T12:07:56 Fix macOS cursor jumping to corner on first titlebar click