src/video


Log

Author Commit Date CI Message
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
Edward Li a35a7d25 2021-12-25T05:00:26 Fix SigSegV from displayInfoInvalidate when changing resolution
Edward Li 1c41b535 2021-12-25T03:47:59 macOS: Calculate correct DPI by not using backingScaleFactor
Sylvain a1e992b1 2021-12-21T22:07:17 Fixed bug #5118 - [Android] PointerIcon leak in Cursor API
Erik Soma 71e3998d 2021-11-23T17:56:46 Make SDL_VideoInit cleanup when errors occur before video driver creation.
Ozkan Sezer 2052b5bc 2021-12-17T01:10:10 os2messagebox: use proper UCHAR* typecast in assignment, just in case.
Sam Lantinga ca18bf11 2021-12-16T12:01:18 Don't compare raw mouse button state with windows message button state When mouse buttons are swapped, right mouse button down is the same value as raw mouse button up, and conceptually the two systems use different button masks, so never cache state between the two. Fixes https://github.com/libsdl-org/SDL/issues/5108
Ethan Lee 4c9966ee 2021-12-16T10:22:27 wayland: Add a note for why we check 0,0 for fullscreen configurations
Sylvain 6101499c 2021-12-16T09:07:31 BigEndian: fix code that generates illegal instruction with gcc-4.9.2 on powerpc Program received signal SIGILL, Illegal instruction. X11_InitKeyboard (_this=0x1001f8f0) at /home/sdl/SDL_git/src/video/x11/SDL_x11keyboard.c:273 273 XKeyboardState values = { .global_auto_repeat = AutoRepeatModeOff };
Alex Szpakowski 3a5e148b 2021-12-14T11:02:07 Renderer backends use SDL_Color instead of int for geometry colors.
David Redondo e2ade2bf 2021-12-10T16:22:34 Fix build against wayland 1.20 Fixes #5088
David Gow 9da93d07 2021-12-08T12:38:16 video: x11: Set XImage's byte_order field (fix #5081) If the X server's byte order is different from the client, things might display in the wrong colour. Apparently we can just set the byte_order field to the client's byte order, and the X server will adjust everything automatically: https://xorg.freedesktop.narkive.com/GbSD1aPq/ximage-s-byte-order-field
Hanseul Jun e7f84c20 2021-12-09T10:40:53 Fix a typo in comment.
Hanseul Jun 66fbf00e 2021-12-09T10:40:18 Temporarily ignore gl_config.driver_loaded check in Cocoa_GLES_SetupWindow.
Valentin Hăloiu cb8fa5f9 2021-12-04T03:50:12 wayland: fix keycodes of swapped xkb modifier keys
Ozkan Sezer 8d14e6ea 2021-12-08T14:01:02 replaced use of _MAX_PATH with CCHMAXPATH in os/2 code, it now compiles without HAVE_LIBC
Sergio Padrino 6f6382f8 2020-05-15T20:45:30 Fix SDL_GameController API for PSP (#3) - Add missing mapping - Make sure the only window has the keyboard focus (so no `SDL_HINT_JOYSTICK_ALLOW_BACKGROUND_EVENTS` is needed)
Cameron Gutman da0f76de 2021-12-07T00:38:46 cocoa: Don't round scroll deltas from trackpads Rounding the scroll deltas from trackpads causes jerky scrolling behavior by artificially amplifying the effects of very small scroll movements. We should only round events from devices with discrete scroll wheels, because we know the smallest unit of movement there is a single tick.
Ozkan Sezer 00014dc2 2021-12-07T18:47:10 fix some warnings from psp builds (missing includes.)
Ozkan Sezer 03019c91 2021-12-06T20:37:52 autotools, cmake: tighten Xfixes check && explicitly test BarrierEventID Apparently the older versions of libXi doesn't have it. Fixes the build break issue reported at: https://github.com/libsdl-org/SDL/commit/4b42c05ba1eaaaa9a4ef803acea8f13402271039#commitcomment-61427659
David Gow a709b5b6 2021-12-04T14:14:47 video: wayland: Handle 0x0 xdg_toplevel_configure in fullscreen The xdg_shell spec seems to state[1] that xdg_toplevel_configure events can always provide a 0×0 width/height to signal that the compositor doesn't care. SDL previously assumed the provided width/height was always valid for fullscreen windows, and so applied it as-is. This broke SDL applications on KDE/KWin 5.23, which now sends 0×0 configure events (and, in 5.23.3, 1×1 events for some reason), breaking all SDL applications in fullscreen[2]. [1]: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/issues/6 [2]: https://bugs.kde.org/show_bug.cgi?id=444962#c6
Davis Mosenkovs 66b0a6ee 2021-12-01T01:33:57 workaround for libmali gbm_device_get_fd() gbm_device_get_fd() in at least some libmali versions duplicates handle. Other implementations do not do duplication. To prevent handle leak save drm_fd in SDL_DisplayData.
Ozkan Sezer 662ea5ab 2021-12-01T01:40:24 minor correction after previous patch and minor tidy-up.
Ozkan Sezer 70c5e91d 2021-12-01T01:20:10 os/2 optionally builds against libiconv.
Sam Lantinga 8c91cf7d 2021-11-30T12:36:46 Always create a full 256-entry map in case color values are out of range Fixes https://github.com/libsdl-org/SDL/issues/5042
Sam Lantinga 8589134f 2021-11-30T10:23:21 Fixed potential buffer overflow in YUV conversion Fixes https://github.com/libsdl-org/SDL/issues/5043
Cameron Gutman 715d4812 2021-11-29T22:43:25 windows: Fix GUI key state when grabbing the keyboard When our keyboard grab hook is installed, GetKeyState() will return 0 for the GUI keys even when they are pressed. This leads to spurious key up events when holding down the GUI keys and the inability to use any key combos involving those modifier keys.
David Gow f6fdbc1e 2021-11-29T21:16:15 video: x11: Fix an invalid SDL_LogError() call This fixes a compile warning — and possible invalid memory read — introduced in 9c03d255 ("Add back X11 legacy WM_NAME encodings"), which was part of PR #5029, fixing Bug #4924. The issue is with one of the added warnings in X11_GetWindowTitle(). Basically, the "title" variable passed to SDL_LogError() hasn't been initialised yet: we could pass propdata in directly, but it's better to move the SDL_LogError() call until after title is set, IMHO. This fixes the following warning from gcc (SUSE Linux) 11.2.1: In file included from /home/david/Development/SDL/src/video/x11/../../SDL_internal.h:45, from /home/david/Development/SDL/src/video/x11/SDL_x11window.c:21: /home/david/Development/SDL/src/video/x11/SDL_x11window.c: In function 'X11_GetWindowTitle': /home/david/Development/SDL/src/video/x11/../../dynapi/SDL_dynapi_overrides.h:33:22: warning: '%s' directive argument is null [-Wformat-overflow=] 33 | #define SDL_LogDebug SDL_LogDebug_REAL /home/david/Development/SDL/src/video/x11/SDL_x11window.c:720:13: note: in expansion of macro 'SDL_LogDebug' 720 | SDL_LogDebug(SDL_LOG_CATEGORY_VIDEO, "Failed to convert WM_NAME title expecting UTF8! Title: %s", title); | ^~~~~~~~~~~~
Fredrick Brennan b5d47aa2 2021-11-28T23:15:31 Fix comment style for old compilers (`//`⇒`/**/`)
Fredrick Brennan 367684b0 2021-11-28T22:56:24 Add patches suggested by @slouken in round 1 review
Fredrick Brennan 9c03d255 2021-11-28T16:18:39 Add back X11 legacy WM_NAME encodings Closes #4924. Based on patches of the past, such as this work by James Cloos in July 2010: https://github.com/exg/rxvt-unicode/commit/d7d98751b7385416ad1694b5f1fde6c312ba20d5, as well as code comments in the Perl module X11::Protocol::WM (https://metacpan.org/pod/X11::Protocol::WM) and even the code to Xlib itself, which taught me that we should never have been using `XStoreName`, all it does is call `XChangeProperty`, hardcoded to `XA_STRING`! What can I say, when the task is old school, the sources are too 😂
Ethan Lee 72e53e4b 2021-11-28T19:25:22 wayland: Clear driverdata before calling ResetDisplayModes
Sam Lantinga 942973dd 2021-11-28T09:27:28 Use mouse ID 0 for raw mouse events We don't track state for each mouse individually, so we should just use the global mouse ID for all events. Fixes https://github.com/libsdl-org/SDL/issues/5026
Sam Lantinga 11a9cd63 2021-11-27T08:14:50 Fixed building SDL on UWP
Sam Lantinga 4e5839a5 2021-11-26T13:45:08 Fixed compiling for Raspberry Pi
Sam Lantinga 57366285 2021-11-23T20:14:18 Only send display events for hotplugged displays, not the initial state
Sylvain 381f99a3 2021-11-23T10:58:04 Fix warnings: re-add enum forward declaration
Sylvain dd6817b3 2021-11-23T10:47:34 Fix warnings: static function, {} initializier, un-needed enum forward declaration
Sylvain fae70349 2021-11-23T10:33:12 Fix warnings: static, include, un-initialized vairables
Sylvain 9c72adc8 2021-11-23T09:41:01 More "Integer overflow generates Illegal instruction under sanitizers" (see bug #4995)
Sylvain 8dd6edec 2021-11-23T09:30:42 Fixed bug #3232 - Integer overflow generates Illegal instruction under sanitizers + see bug #4995
Sylvain c878d9a0 2021-11-22T17:06:41 Haiku: comment this should not be SDL_free()
Sylvain 0445c13a 2021-11-22T16:49:17 Remove 'malloc' from comment
Sylvain c3633d2c 2021-11-22T16:44:48 Haiku: use SDL_malloc
Sylvain 79b37cc5 2021-11-22T16:43:49 Pandora: use SDL_malloc
Sylvain 10ffcbb1 2021-11-22T16:41:45 QNX: use SDL_malloc
Sylvain 9fcc630f 2021-11-22T16:37:34 X11: use SDL_malloc
Sylvain 19bf36db 2021-11-22T16:37:19 DirectFB: use SDL_malloc
Sylvain 5a7a7ba5 2021-11-22T11:25:59 Don't use "realloc" in comment so that it doesn't show up
Sylvain b4aeaa30 2021-11-22T11:20:52 Use SDL_calloc / SDL_free
Sylvain cb9f85e8 2021-11-22T11:18:01 Don't use "round", so that it's doesn't show up while searching for the function
Sylvain d31251b0 2021-11-21T22:30:48 use SDL's functions version inplace of libc version
Sam Lantinga c97b7218 2021-11-21T12:18:10 Added SDL_PremultiplyAlpha() to premultiply alpha on a block of SDL_PIXELFORMAT_ARGB8888 pixels
Ryan C. Gordon ceb9e9a8 2021-11-21T00:21:41 cocoa: Removed a debug printf call.
Ryan C. Gordon 18715acb 2021-11-21T00:14:18 cocoa: Position non-left mouse button events in background windows correctly. Fixes #4828.
Ryan C. Gordon 23b7bdef 2021-11-20T14:11:30 offscreen: Don't fail to create a window because of driver_loaded politics. Fixes #4922.
Sam Lantinga 665865ed 2021-11-19T09:58:13 If the hardware is in an error state, the final page flip may not come. We should either put a timeout on the wait when destroying the window, or skip it entirely.
Ethan Lee a7a54e64 2021-11-18T00:43:55 wayland: Add support for display connect/disconnect events
Ethan Lee 5cc23868 2021-11-15T11:52:43 wayland: Add support for SDL_DisplayOrientation
Sam Lantinga cc094f4d 2021-11-14T20:15:48 Fixed building with the macOS 10.8 SDK
Zack Middleton 1cd3e837 2021-11-14T15:51:38 cocoa: Fix abort on touch event types without a subtype macOS 10.6 has some touch NSEvents which do not have a subtype (Begin/EndGesture, Magnify, Rotate, Swipe) and cause an uncaught exception which triggers SIGABRT and the program exits. As it is, none of the macOS 10.6 touch events are detected as a trackpad (including Gesture due to using different subtypes).
Ozkan Sezer 781caec2 2021-11-15T00:55:24 SDL_waylandevents.c (keyboard_handle_keymap): silenced -Wwrite-strings .
Ozkan Sezer 8a6e48d4 2021-11-14T04:40:50 constified SDL_RegisterApp()
Ozkan Sezer 7dfd22ac 2021-11-14T02:32:00 fix XGetDefault signature - its first and second params are _Xconst
Cameron Gutman 674f361d 2021-11-13T11:44:04 wayland: Fix memory leaks in clipboard code
Cameron Gutman eb3f1462 2021-11-12T18:26:15 x11: Fix memory leak in X11_CreatePixmapCursor()
Ozkan Sezer 3dc7813a 2021-11-12T20:47:02 more whitespace tidy-ups in SDL_os2messagebox.c
Sam Lantinga c2dd50a9 2021-11-12T08:28:02 Fixed whitespace
Sam Lantinga 074e613b 2021-11-12T03:03:56 Fixed typo
Sam Lantinga 35d90f17 2021-11-12T03:00:57 Better implementation of SDL_SetWindowMouseGrab() and SDL_SetWindowMouseRect() on macOS
Misa 3bf7994f 2021-09-27T14:38:12 Add and use `SDL_FALLTHROUGH` for fallthroughs Case fallthrough warnings can be suppressed using the __fallthrough__ compiler attribute. Unfortunately, not all compilers have this attribute, or even have __has_attribute to check if they have the __fallthrough__ attribute. [[fallthrough]] is also available in C++17 and the next C2x, but not everyone uses C++17 or C2x. So define the SDL_FALLTHROUGH macro to deal with those problems - if we are using C++17 or C2x, it expands to [[fallthrough]]; else if the compiler has __has_attribute and has the __fallthrough__ attribute, then it expands to __attribute__((__fallthrough__)); else it expands to an empty statement, with a /* fallthrough */ comment (it's a do {} while (0) statement, because users of this macro need to use a semicolon, because [[fallthrough]] and __attribute__((__fallthrough__)) require a semicolon). Clang before Clang 10 and GCC before GCC 7 have problems with using __attribute__ as a sole statement and warn about a "declaration not declaring anything", so fall back to using the /* fallthrough */ comment if we are using those older compiler versions. Applications using SDL are also free to use this macro (because it is defined in begin_code.h). All existing /* fallthrough */ comments have been replaced with this macro. Some of them were unnecessary because they were the last case in a switch; using SDL_FALLTHROUGH in those cases would result in a compile error on compilers that support __fallthrough__, for having a __attribute__((__fallthrough__)) statement that didn't immediately precede a case label.
Sam Lantinga abc12a83 2021-11-11T15:58:44 Revert "Add and use `SDL_FALLTHROUGH` for fallthroughs" This reverts commit 66a08aa3914a98667f212e79b4f0b9453203d656. This causes problems with older compilers: https://github.com/libsdl-org/SDL/pull/4791#issuecomment-966630997
Ethan Lee 63ae103c 2021-11-11T13:16:34 wayland: QTWAYLAND_CONTENT_ORIENTATION can support multiple values as bitmasks
Sam Lantinga 11ae43ca 2021-11-11T07:49:38 Only lock the pointer for mouse relative mode, there isn't really a concept of grab and confinement on iOS Locking the pointer prevents the on-screen cursor from moving, which isn't what we want with a grab behavior. Fixes https://github.com/libsdl-org/SDL/issues/4941
Misa 66a08aa3 2021-09-27T14:38:12 Add and use `SDL_FALLTHROUGH` for fallthroughs Case fallthrough warnings can be suppressed using the __fallthrough__ compiler attribute. Unfortunately, not all compilers have this attribute, or even have __has_attribute to check if they have the __fallthrough__ attribute. [[fallthrough]] is also available in C++17 and the next C2x, but not everyone uses C++17 or C2x. So define the SDL_FALLTHROUGH macro to deal with those problems - if we are using C++17 or C2x, it expands to [[fallthrough]]; else if the compiler has __has_attribute and has the __fallthrough__ attribute, then it expands to __attribute__((__fallthrough__)); else it expands to an empty statement, with a /* fallthrough */ comment (it's a do {} while (0) statement, because users of this macro need to use a semicolon, because [[fallthrough]] and __attribute__((__fallthrough__)) require a semicolon). Applications using SDL are also free to use this macro (because it is defined in begin_code.h). All existing /* fallthrough */ comments have been replaced with this macro. Some of them were unnecessary because they were the last case in a switch; using SDL_FALLTHROUGH in those cases would result in a compile error on compilers that support __fallthrough__, for having a __attribute__((__fallthrough__)) statement that didn't immediately precede a case label.
Sam Lantinga eda4c407 2021-11-10T12:46:54 Make sure the X event is an Xkb event before checking the Xkb event type
Sam Lantinga 98c98362 2021-11-10T11:04:51 Don't clobber the error in SDL_ShowMessageBox() if one has been set at the platform level Fixes https://github.com/libsdl-org/SDL/issues/4760
Sam Lantinga 6c4b4ee7 2021-11-10T09:41:43 Don't assert on API parameters This causes lots of spam in test automation and it's not clear it's useful to developers. If we need this level of validation, we should add a log category for it.
Sam Lantinga fed85778 2021-11-10T08:47:39 Update the orientation and display modes when the display settings change on Windows Fixes https://github.com/libsdl-org/SDL/issues/1061
Sam Lantinga c0f1109b 2021-11-10T06:03:01 Implemented querying the orientation of displays on Windows
Sam Lantinga 27ce9144 2021-11-09T20:51:42 Send absolute mouse motion when in normal mouse mode and relative mouse motion when in relative mode on iOS This keeps the SDL cursor in sync with the visible cursor when in normal mouse mode.
Sam Lantinga 19c129fa 2021-11-09T20:32:16 Added documentation that the UIApplicationSupportsIndirectInputEvents key must be set to true in your application's Info.plist in order to get real Bluetooth mouse events.
Sam Lantinga d2f75636 2021-11-09T11:53:59 When making the window centered it should use windowed mode size since it doesn't affect fullscreen windows Fixes bug https://github.com/libsdl-org/SDL/issues/4750
Susko3 1fc25bd8 2021-11-08T22:04:34 Properly position the IME window(s) on windows
Ethan Lee ae67c7d2 2021-11-09T01:30:00 Implemented SDL_SetWindowMouseRect() on Wayland
Sam Lantinga 18e69827 2021-11-08T22:29:02 Fixed Linux build
Yufei Huang 881f747d 2021-11-09T13:35:18 Always destroy icon
Yufei Huang 7fea557b 2021-11-09T12:03:09 SDL_windowsmouse.c: Remove LR_COPYDELETEORG flag
Sam Lantinga 67c42cb4 2021-11-08T22:16:01 Fixed Windows build