src/video


Log

Author Commit Date CI Message
Sam Lantinga 74ca1654 2017-07-11T08:16:00 Fixed bug 3699 - Shaped windows are distorted unless width is divisible by 8 Bogomancer On X11, windows created using the shaped window API appear distorted unless the width of the shape surface is divisible by 8. Steps to reproduce: 1) Use your favorite image editor to resize one of the images in test/shapes/ to a width that's not a multiple of 8. 2) Compile and run test/testshape.c on the image you edited. 3) The shaped window will appear twisted and distorted. It appears the bug was not caught sooner because all the test images are either 640 or 256 pixels wide. I tracked down the bug to SDL_CalculateShapeBitmap() in SDL_shape.c. The shape surface is reduced to a 1-bit-per-pixel mask, but the original code doesn't take into account that X11 apparently wants each scanline to begin on a new byte.
Sam Lantinga 37722d01 2017-07-10T17:07:19 Fixed bug 3697 - Main thread gets stuck on left mouse down Amruth Raj - My app runs in full screen to play video(I use SDL_WINDOW_FULLSCREEN_DESKTOP) - Cmd-tab to go out of full screen to another app - Cmd-tab again to get back to my app - Press left mouse button at one of the edges of the screen, don't release yet. After this point the main thread is stuck until I release the left mouse button and hence video rendering doesn't happen anymore. On debugging more, I see that thread 0 is stuck as shown below with sendEvent processing left mouse down. It comes out only after it receives a left mouse up. There are some frames below which show NSWindowResizing, but my window flag doesn't have SDL_WINDOW_RESIZABLE set. Thread 0:: CrBrowserMain Dispatch queue: com.apple.main-thread 0 libsystem_kernel.dylib 0x00007fffbe13d34a mach_msg_trap + 10 1 libsystem_kernel.dylib 0x00007fffbe13c797 mach_msg + 55 2 com.apple.CoreFoundation 0x00007fffa889d434 __CFRunLoopServiceMachPort + 212 3 com.apple.CoreFoundation 0x00007fffa889c8c1 __CFRunLoopRun + 1361 4 com.apple.CoreFoundation 0x00007fffa889c114 CFRunLoopRunSpecific + 420 5 com.apple.HIToolbox 0x00007fffa7dfdebc RunCurrentEventLoopInMode + 240 6 com.apple.HIToolbox 0x00007fffa7dfdcf1 ReceiveNextEventCommon + 432 7 com.apple.HIToolbox 0x00007fffa7dfdb26 _BlockUntilNextEventMatchingListInModeWithFilter + 71 8 com.apple.AppKit 0x00007fffa6396a54 _DPSNextEvent + 1120 9 com.apple.AppKit 0x00007fffa6b127ee -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 2796 10 com.apple.AppKit 0x00007fffa66f568d +[NSWindow(NSWindowResizing) _mouseHysteresisCheck:withExpiration:andDistance:finalMouseLocation:] + 525 11 com.apple.AppKit 0x00007fffa65eedb5 -[NSWindow(NSWindowResizing) _hitTestWithHysteresisCheck:forEvent:allowWindowDragging:] + 394 12 com.apple.AppKit 0x00007fffa6c8f0db -[NSWindow(NSEventRouting) _handleMouseDownEvent:isDelayedEvent:] + 1873 13 com.apple.AppKit 0x00007fffa6c8ca6c -[NSWindow(NSEventRouting) _reallySendEvent:isDelayedEvent:] + 1942 14 com.apple.AppKit 0x00007fffa6c8bf0a -[NSWindow(NSEventRouting) sendEvent:] + 541 15 org.libsdl.SDL2 0x000000010d46d74a -[SDLWindow sendEvent:] + 90 16 com.apple.AppKit 0x00007fffa6b10681 -[NSApplication(NSEvent) sendEvent:] + 1145 17 org.libsdl.SDL2 0x000000010d46532b -[SDLApplication sendEvent:] + 139 18 org.libsdl.SDL2 0x000000010d466b2f Cocoa_PumpEvents + 495 19 org.libsdl.SDL2 0x000000010d44c1d5 SDL_PumpEvents_REAL + 53 20 org.libsdl.SDL2 0x000000010d44c2f5 SDL_WaitEventTimeout_REAL + 53 21 org.libsdl.SDL2 0x000000010d44c2b7 SDL_PollEvent_REAL + 23 22 org.libsdl.SDL2 0x000000010d51bb24 SDL_PollEvent + 36 23 libTest.dylib 0x000000010cf3e0e8 SDLEventProcessor::processEvents(int) + 568 24 Test 0x000000010cde6bba BrowserApp::RunAppMessageLoop(BAInstData*, CefStringBase, CefStringBase) + 810 25 Test 0x000000010ce04bbc main + 17980 26 libdyld.dylib 0x00007fffbe016235 start + 1 I further noticed that while entering full screen in SDL_cocoawindow.m NSResizableWindowMask is set. If I clear it inside windowDidEnterFullScreen, then, the issue doesn't repro. This is discussed at https://discourse.libsdl.org/t/main-thread-gets-stuck-on-left-mouse-down/22753/3 and thanks to Eric for the pointers.
Philipp Wiesemann c3bf69ca 2017-07-07T23:00:22 haiku: Fixed compiling without OpenGL support.
Ryan C. Gordon c80c3419 2017-07-04T20:44:07 x11: pass a long to XChangeProperty, not an int. The Xlib documentation demands that 32-bit values here be passed in a long, even when long itself isn't a 32-bit value. Otherwise libx11 might read memory incorrectly. Fixes Bugzilla #3692.
Philipp Wiesemann e6583300 2017-07-02T22:46:23 haiku: Fixed using wrong constant for internal error handling. SDL_CreateWindow() worked because ENOMEM is negative on Haiku.
Ryan C. Gordon 200f782c 2017-07-01T19:52:12 qnx: fixed potential buffer overflow.
Ryan C. Gordon 22241ed0 2017-07-01T17:50:47 Support for QNX 7.0 (thanks, Elad!). Fixes Bugzilla #3686.
Philipp Wiesemann b1fbab50 2017-07-01T23:01:57 haiku: Fixed memory leak if destroying window.
Philipp Wiesemann 944e06e6 2017-06-24T23:45:44 winrt: Fixed SDL include.
Philipp Wiesemann 267dca13 2017-06-18T23:00:42 haiku: Removed unused internal function. Its functionality is already in SDL_GL_GetAttribute().
Philipp Wiesemann 90488d6c 2017-06-17T22:30:28 haiku: Added support for some values set with SDL_GL_SetAttribute().
Philipp Wiesemann 0b750cd9 2017-06-16T23:30:38 pandora: Fixed compile error.
Philipp Wiesemann fa73685d 2017-06-16T23:30:30 directfb: Fixed quitting keyboard twice. SDL_VideoQuit() already calls SDL_KeyboardQuit().
Philipp Wiesemann a4db3dbe 2017-06-16T23:30:13 nacl: Fixed unnecessary large input text array.
Sam Lantinga 9085c7b3 2017-06-16T11:14:08 Get the parent of non-SDL-created windows, for completeness
Sam Lantinga 1b5614b3 2017-06-16T10:50:29 Clean up parent window when destroying a window
Sam Lantinga 0a75192d 2017-06-16T09:10:13 Implemented SDL_WINDOW_SKIP_TASKBAR on Windows
Philipp Wiesemann 60c0f7e2 2017-06-15T23:30:29 Fixed SDL_GetWindowWMInfo() returning success on three unsupported platforms.
Philipp Wiesemann 5b75e903 2017-06-11T22:30:49 directfb: Fixed comment.
Philipp Wiesemann fbd30c36 2017-06-11T22:30:39 Fixed missing error messages for SDL_GetWindowWMInfo().
Philipp Wiesemann c609d856 2017-06-11T22:30:24 directfb: Fixed crash if creating renderer. SDL_GetWindowWMInfo() currently expects SDL to be 2.0.6 but SDL is still 2.0.5.
Ryan C. Gordon 3c955d05 2017-06-11T00:50:26 syswm: prevent buffer overflow if SDL and app have different config headers. This only affects Wayland and DirectFB, as a Unix system generally has X11 support. Other platforms also have different sizes for the C union in question, but are likely the only target for that platform, etc. Apps that might run on Wayland or DirectFB will need to be compiled against new headers from an official 2.0.6 release, or be prepared to force the x11 target, or not use SDL_GetWindowWMInfo(). Fixes Bugzilla #3428.
Alex Szpakowski bb100d3b 2017-06-10T21:29:37 Expose display refresh rate on iOS/tvOS 10.3+.
Ryan C. Gordon 599d9ba1 2017-06-05T21:30:25 emscripten: listen for pointerlockchange events on the #document specifically.
Philipp Wiesemann 4b47fa38 2017-06-04T23:15:47 Removed duplicate includes.
Philipp Wiesemann 248410dd 2017-06-04T23:15:13 Fixed SDL_GL_SetSwapInterval() returning success on two unsupported platforms.
Philipp Wiesemann 2113208d 2017-06-03T23:00:50 haiku: Fixed missing title bar for windows with decorations. B_BORDERED_WINDOW_LOOK has a border but no title bar.
Philipp Wiesemann 63b3e06f 2017-06-03T23:00:15 Corrected names of header file guards.
Philipp Wiesemann 00394996 2017-06-02T22:15:12 Fixed crash if calling SDL_CreateShapedWindow() on unsupported platforms.
Philipp Wiesemann 1b9dc599 2017-05-28T21:50:11 haiku: Fixed SDL_SetClipboardText() putting random data in clipboard.
Ryan C. Gordon de52dc29 2017-05-28T15:36:09 haiku: Correctly set keyboard focus (thanks, Kai!). The message sent upon the window being activated or deactivated, to trigger the call to SDL_SetKeyboardFocus was missing a mandatory parameter. So keyboard focus was never properly set. Fixes Bugzilla #3658.
Ryan C. Gordon b3f94acb 2017-05-28T07:11:52 linux: Simplify D-Bus interface, remove lots of boilerplate.
Philipp Wiesemann 604a4b1b 2017-05-27T23:30:21 haiku: Fixed SDL_SetClipboardText() allocating too much memory and cutting text. It allocated pointers instead of chars and passed a wrong size to SDL_strlcpy().
Ryan C. Gordon 6fbde875 2017-05-27T00:33:26 code style: wrap a single-statement if in braces.
Ryan C. Gordon 3fbd21ce 2017-05-27T00:30:06 windows: msgboxes should specify a parent HWND if possible (thanks, Ismael!). This lets them be properly modal. Fixes Bugzilla #3650.
Philipp Wiesemann 90ed3daa 2017-05-26T22:45:52 Changed messages about not recognized keys to include discourse link.
Philipp Wiesemann 75931972 2017-05-26T22:45:40 emscripten: Fixed compiling on C89 compilers.
Philipp Wiesemann 1e13d93f 2017-05-25T23:01:34 directfb: Changed internal function to be static.
Philipp Wiesemann 6c0aea42 2017-05-25T23:00:58 wayland: Fixed freeing memory of SDL_malloc() with plain free().
Philipp Wiesemann c66f0471 2017-05-25T23:00:43 Removed unused internal window shape functions.
Charlie Birks 126e5a1d 2017-05-24T14:04:39 Emscripten: Prevent default on arrow keys
Patrick Monaghan f839b209 2017-05-24T14:04:25 Emscripten: fixed incorrect conversion of touch motion events to mouse motion events
Philipp Wiesemann bf8ccf08 2017-05-19T23:30:59 Removed redundant mouse clean up on quit for some platforms. SDL_MouseQuit() already frees cursors and sets fields to NULL.
Sam Lantinga 77240762 2017-05-16T17:48:57 Fixed restoring a window that was maximized then minimized, then restored.
Sam Lantinga ccf0566c 2017-05-16T06:30:39 SDL - add SDL_WINDOW_VULKAN and make Android_CreateWindow only create an EGLSurface when SDL_WINDOW_VULKAN is not present. This makes it so the ANativeWindow* can be used with vkCreateAndroidSurfaceKHR, otherwise it will fail because having both an EGLSurface and VkSurfaceKHR attached to a window is not allowed according to the Vulkan spec: "In particular, only one VkSurfaceKHR can exist at a time for a given window. Similarly, a native window cannot be used by both a VkSurfaceKHR and EGLSurface simultaneously" CR: SamL
Philipp Wiesemann df4cf79d 2017-05-13T23:00:53 directfb: Fixed compiler warnings about undefined functions.
Philipp Wiesemann 29222db7 2017-05-13T23:00:35 emscripten: Fixed not removing pointer lock event callback.
Philipp Wiesemann cc5b4f45 2017-05-12T23:01:17 emscripten: Changed internal functions to be static.
Philipp Wiesemann ce01128a 2017-05-12T23:01:04 Fixed warnings about shadowed global variable. Found by buildbot.
Philipp Wiesemann 87e0d812 2017-05-12T23:00:40 directfb: Removed duplicate comment.
Philipp Wiesemann 61c326e1 2017-05-11T23:00:39 directfb: Fixed typo in log message.
Philipp Wiesemann 75c0d1ef 2017-05-11T23:00:21 directfb: Fixed compiler warnings about unused variables.
Sam Lantinga 9ac3bb70 2017-05-09T10:10:42 Added support for mixing Qt and SDL on iOS You should call SDL_SetMainReady(), and then customize the QIOSApplicationDelegate like this, in your application code: /* Additional support for applications mixing Qt and SDL */ @interface QIOSApplicationDelegate : UIResponder <UIApplicationDelegate> @end extern "C" { void SDL_OnApplicationWillResignActive(); void SDL_OnApplicationDidEnterBackground(); void SDL_OnApplicationWillEnterForeground(); void SDL_OnApplicationDidBecomeActive(); } @interface QIOSApplicationDelegate (SDL) - (void)applicationWillResignActive:(UIApplication*)application; - (void)applicationDidEnterBackground:(UIApplication*)application; - (void)applicationWillEnterForeground:(UIApplication*)application; - (void)applicationDidBecomeActive:(UIApplication*)application; @end @implementation QIOSApplicationDelegate (SDL) - (void)applicationWillResignActive:(UIApplication*)application { SDL_OnApplicationWillResignActive(); } - (void)applicationDidEnterBackground:(UIApplication*)application { SDL_OnApplicationDidEnterBackground(); } - (void)applicationWillEnterForeground:(UIApplication*)application { SDL_OnApplicationWillEnterForeground(); } - (void)applicationDidBecomeActive:(UIApplication*)application { SDL_OnApplicationDidBecomeActive(); } @end // QIOSApplicationDelegate
Sam Lantinga 8b7ae353 2017-05-09T03:19:58 Fixed build error on Linux
Philipp Wiesemann b7b91907 2017-05-07T21:02:31 haiku: Changed internal function to be static.
Philipp Wiesemann 3ed2f0ca 2017-05-07T21:02:16 haiku: Fixed unlocking clipboard twice.
Philipp Wiesemann 4466b931 2017-05-06T21:46:11 haiku: Fixed comment.
Philipp Wiesemann 34747107 2017-05-06T21:46:00 mir: Fixed memory leak if system cursor id is unknown.
Philipp Wiesemann 34d9c521 2017-05-06T21:45:43 emscripten: Fixed return type in event callback declaration.
Ryan C. Gordon ce2998b8 2017-05-02T21:46:28 cocoa: Don't crash on messagebox keypress without a successful SDL_Init().
Ryan C. Gordon 619ab7a2 2017-05-01T18:39:05 haiku: Various fixes from haikuports. Based on patch here: https://github.com/haikuports/haikuports/blob/master/media-libs/libsdl2/patches/libsdl2-2.0.5.patchset
Philipp Wiesemann 444c47a1 2017-04-29T22:50:35 windows: Changed six internal functions to be static.
Bastien Bouclet 545fba78 2017-04-22T19:53:52 x11: Don't send duplicate events when reconciling the keyboard state Failing to check if a key was known to be pressed by SDL was causing SDL_SendKeyboardKey to send duplicate key pressed events with the repeat property set to true. Fixes Bugzilla #3637.
Joshua Granick 1286a7d2 2017-04-20T21:31:44 windows: Add SDL_WINDOW_ALWAYS_ON_TOP support.
Ryan C. Gordon 93a6191c 2017-04-20T13:00:54 emscripten: keep track of pointer lock losses and maybe regrab pointer later. If an Emscripten app is in relative mouse mode and the user presses Escape (or whatever is appropriate), then the pointer lock is broken by the browser. This keeps track of those losses, and next time the user presses a mouse button down on the canvas, if the app is still meant to be in relative mouse mode, we will attempt to regrab the pointer. This makes it much more seamless for things like first-person shooters, and the app doesn't need any manual intervention.
Philipp Wiesemann 2bf79c2e 2017-04-09T23:00:54 mir: Fixed typo in error messages.
Drew Bliss a4dbf565 2017-04-06T13:27:51 Fix divide-by-zero when videodata->ime_candpgsize is zero. We're seeing this happen in Dota in the wild.
Drew Bliss 66555f61 2017-04-06T13:27:48 SDL - attempt to fix https://github.com/ValveSoftware/Dota-2/issues/1199 of mouse not locking in Dota. This fix is proposed by Ryan Gordon (increase timeout in X11_SetWindowGrab from 250ms to 5000ms). I'm going to integrate to source2 and ship it to dota customers. If it works, SamL will upsteam it to SDL.
Sam Lantinga 5789da67 2017-04-03T13:32:53 Fixed bug 1859 - No SDL_VIDEORESIZE event generated when the window manager sets the window size. Samuel Hopkins Just confirming that the patch from Andreas (attachment 1715 [details]) works for me under SDL 2.0.3 with xmonad. Stas Sergeev Confirming that the patch in this ticket fixes the full-screen switching for dosemu2 on ubuntu-16.04. Note that I am not using xmonad, so this bug appears to be generic.
Philipp Wiesemann 1517ba72 2017-04-02T21:33:54 PSP: Fixed error messages.
Philipp Wiesemann f96cdca4 2017-04-02T21:33:42 Mir: Changed two internal functions to be static.
Philipp Wiesemann 266816b4 2017-03-26T21:00:19 Removed newlines from error messages.
Brandon Schaefer c35f46d0 2017-03-18T13:57:57 mir: Set the max/min w/h vs just setting the window w/h
Sam Lantinga 22161480 2017-03-14T07:22:08 Compile fix for android. "ISO C90 forbids mixed declarations and code [-Werror=declaration-after-statement]" Moving some variable declarations to the top of Android_SetScreenResolution()
Philipp Wiesemann 72fdf629 2017-03-04T23:05:32 Mir: Fixed crash if creating default cursor failed. Found by Cppcheck.
Ryan C. Gordon 6aa17426 2017-03-03T16:38:45 video: Don't compile isAtLeastGL3() if we don't have OpenGL support _at all_.
Ryan C. Gordon ca0bf151 2017-03-03T16:38:17 Fix some more compiler warnings on armcc.
Ryan C. Gordon d526b8a1 2017-03-02T13:33:04 Some patches to make SDL compile with armcc (ARM's C compiler).
Brandon Schaefer 94a69443 2017-03-01T15:05:54 mistake: Revert the files that I did not mean to commit
Brandon Schaefer 7bbb13ea 2017-03-01T14:50:59 * Some refactoring and bug fixes. Thanks Micha? Kuchta!
Ryan C. Gordon bc877885 2017-02-28T19:48:52 raspberrypi: RPI_Destroy() should free the SDL_VideoDevice and its driverdata.
Brandon Schaefer 5a47ee03 2017-02-27T12:20:16 mir: Get ready for Mir 1.0, clean up deprecations. Thanks Micha? Kuchta!
Philipp Wiesemann e5d9b25d 2017-02-26T21:20:39 Fixed comment style.
Ryan C. Gordon 07519a6b 2017-02-26T00:40:04 Removed a bunch of unnecessary #ifdefs.
Charlie Birks 0d647d35 2017-02-17T10:13:17 Emscripten: implement custom cursors
Charlie Birks 33bddcfd 2017-02-17T10:13:12 Emscripten: refactor cursor handling
Charlie Birks 613955b4 2017-02-17T10:13:07 Emscripten: only update pixel ratio if HiDPI is enabled
Ryan C. Gordon 70c0400b 2017-02-13T17:00:46 windows: Try to unify all the GUID comparison code into a core helper function. There are likely several more I missed.
Sam Lantinga cf31ea14 2017-02-11T11:14:48 Fixed bug 3583 - X11 touch device can be permanently lost Volumetric In X11 the SDL error "Unknown touch device" can occur after which the application stops recognizing touch events. For a kiosk-type application this results in a hang as far as the user is concerned. This is reproducible on HP Z220/Z230/Z240 workstations by swapping USB cables for a while and it also occurs with no physical changes, probably due to USB device power management. A workaround is to make SDL re-enumerate the touch devices like it does at startup. A patch is attached.
Sam Lantinga 9171f71d 2017-02-10T09:41:16 Fixed warning in Android build
Sam Lantinga da30992d 2017-02-02T00:41:58 Fixed bug 3577 - Can't set minimal size (message box appears instead) if maximal size wasn't declared (i.e. unlimited)
Sam Lantinga 52e9c42d 2017-01-28T14:35:35 Fixed Windows build
Sam Lantinga 869b7fe3 2017-01-28T11:17:10 Fixed bug 3550 - No mouse move messages send while over the titlebar and windows edges Matthew Its possible to set SDL_CaptureMouse() so you continue receiving mouse input while the mouse is outside your window. This works however There is then a gap where no messages send, which is when the mouse is hovering the title bar and the window edges.
R?mi Verschelde c3eea703 2017-01-28T10:54:12 Use a stronger X font definition for X11_MessageBox on UTF-8 X11 seemed to be confused by the broad definition, so WEIGHT_NAME, SLANT and SETWIDTH_NAME were defined, thus fixing the font lookup on some systems (tested on Mageia 6 with X11 1.19.1). Fixes bug 3571.
Sam Lantinga 0090a338 2017-01-27T21:16:38 Return an error if trying to set a window minimum size larger than the maximum size, or vice versa
Philipp Wiesemann 4f981df3 2017-01-22T22:15:36 Haiku: Fixed memory leak if creating framebuffer failed.
Philipp Wiesemann 800a9e84 2017-01-21T22:00:56 Fixed compiler warning about returning a value in a void function.
Sam Lantinga 95defd66 2017-01-17T21:18:31 Use icon width * sizeof(Uint32) instead of icon pitch when copying to icon resource data
Sam Lantinga 341d1ff9 2017-01-13T11:37:12 Fixed comment
Sam Lantinga a52d48c5 2017-01-10T08:54:33 Fixed bugs 2570, 3145, improved OpenGL ES context support on Windows and X11 Mark Callow The attached patch does the following for the X11 and Windows platforms, the only ones where SDL attempts to use context_create_es_profile: - Adds SDL_HINT_OPENGL_ES_DRIVER by which the application can say to use the OpenGL ES driver & EGL rather than the Open GL driver. (For bug #2570) - Adds code to {WIN,X11}_GL_InitExtensions to determine the maximum OpenGL ES version supported by the OpenGL driver (for bug #3145) - Modifies the test that determines whether to use the OpenGL driver or the real OpenGL ES driver to take into account the hint, the requested and supported ES version and whether ES 1.X is being requested. (For bug #2570 & bug #3145) - Enables the testgles2 test for __WINDOWS__ and __LINUX__ and adds the test to the VisualC projects. With the fix in place I have run testdraw2, testgl and testgles2 without any issues and have run my own apps that use OpenGL, OpenGL ES 3 and OpenGL ES 1.1.