src/video


Log

Author Commit Date CI Message
Sylvain Becker ffb307e4 2020-10-18T09:52:56 Fixed bug 5304 - add SDL_HasSurfaceRLE() (Thanks Rene Dudfield and Dan Lawrence)
Sylvain Becker 19a65a46 2020-10-17T21:47:05 Fixed bug 5321 - crash in SDL_ConvertSurface with RLE surfaces keep RLE information in flags when converting the surface
Ozkan Sezer c70191d2 2020-10-17T07:37:00 SDL_os2video.c (OS2_CreateDevice): remove duplicated assignment.
Ozkan Sezer 77d0f043 2020-10-16T23:50:00 os2video.c: add missing FOURCC_R666 define, enable FOURCC_R666 case in _getSDLPixelFormatData().
Sam Lantinga 58976bda 2020-10-15T12:00:15 Allow more than one window on iOS as long as they're on different displays
Ozkan Sezer a90f0400 2020-10-15T21:37:30 os2: a _lot_ of coding style cleanup, sot that they match the SDL style. also renamed the 'debug' macro to debug_os2: the former was dangerously a common name. the binary (dll) output is precisely the same as before.
Sam Lantinga bdc5129f 2020-10-15T10:13:46 Use a high priority dispatch queue for GCKeyboard and GCMouse events for the lowest latency possible This appears to reduce latency between 1-4 ms on an iPad Pro.
Sam Lantinga a3a0ef75 2020-10-15T10:13:44 Added support for low latency mouse and keyboard handling in iOS 14 The mouse support in iOS 14.0 has a bug with accumulating duplicate mouse deltas that won't be fixed until iOS 14.1, so we don't enable it until then.
Manuel Alfayate Corchete cca16c9c 2020-10-15T17:56:19 kmsdrm: merge GetDisplayDPI implementation by bms20 <brett@mynah-software.com>
Ozkan Sezer d2723875 2020-10-14T23:01:06 os2: integrate the port into main tree.
Ozkan Sezer 5807cb3d 2020-10-14T23:01:06 os2: remove dependency to gradd.h from IBM's ddk which is non-free: Add a minimal my_gradd.h containing structures and constants only used by SDL_os2vman.c -- based on public knowledge from around the internet including pages from http://www.osfree.org and http://www.edm2.com .
Ozkan Sezer 1d9cf23e 2020-10-14T23:01:05 os2: updated copyright dates for 2020. header guard fixes.
Ozkan Sezer fe2cc8d8 2020-10-14T23:01:04 OS2_VideoQuit(): avoid double free()ing of displays. Our caller SDL_VideoQuit() already frees display_modes, driverdata, etc. Noticed in bitwiseworks' version at https://github.com/bitwiseworks/SDL2-os2
Ozkan Sezer fba32ee2 2020-10-14T23:01:04 OS2_VideoInit: zero the stSDLDisplay and stSDLDisplayMode variables Fixes testdisplayinfo.exe crashing in SDL2-2.0.13. (How it did work before?..)
Ozkan Sezer 54ced668 2020-10-14T23:01:04 port from 2.0.12 to 2.0.13 / current SDL-hg repository. - video: VideoBootStrap->available() is gone. - thread: all important SDL_CreateThread internal data now put into struct SDL_Thread: changes to SDL_SYS_CreateThread().
Ozkan Sezer 5da796fe 2020-10-14T23:01:03 os/2: port from SDL2-2.0.5 to SDL2-2.0.12 - events / video: SDL_SetDoubleClickTime() removed -- functionality moved to SDL_mouse.c:SDL_MouseDoubleClickTimeChanged(). - video: struct SDL_VideoDevice-> CreateWindow and CreateWindowFrom members renamed to CreateSDLWindow and CreateSDLWindowFrom
Ozkan Sezer 222f0268 2020-10-14T23:01:03 os/2: port from SDL2-2.0.4 to SDL2-2.0.5: changes to SDL_os2audio.c, SDL_os2video.c, os2/SDL_systhread.c in order to accomodate SDL2-2.0.5 changes. - audio: WaitDone() is gone, CloseDevice() interface changes. - events / video: DropFile() changes: SDL_DROPBEGIN and SDL_DROPCOMPLETE events, window IDs for drops. - thread: struct SDL_Thread->stacksize
Ozkan Sezer 1b99d805 2020-10-14T23:01:02 os2: updates from Andrey Vasilkin's 2020-09-07 sources.
Ozkan Sezer aa790837 2020-10-14T23:01:02 os2: several warning fixes. mostly those "W007: '&array' may not produce intended result" warnings from Watcom, visible only in C++ mode. one or two others here & there.
Ozkan Sezer 110a0f7b 2020-10-14T23:01:01 os2: update include paths. add missing libc includes to geniconv.
Ozkan Sezer 74cfb81d 2020-10-14T23:01:00 os2: add port files for SDL2-2.0.4 from Andrey Vasilkin only geniconv/iconv.h (was from LGPL libiconv) is replaced with a generic minimal iconv.h based on public knowledge.
Ozkan Sezer 93e14497 2020-10-14T15:50:04 SDL_waylanddatamanager.c (mime_data_list_add): constify the buffer param Fixes -Wdiscarded-qualifiers warnings from Wayland_data_source_add_data()
Sam Lantinga b9cbea35 2020-10-13T21:08:20 video: Refresh Windows display list on WM_DISPLAYCHANGE - Displays may have been added, removed or changed and all cached monitor handles are invalidated as a result. - Display events are handled in three steps: 1. Mark all currently know displays as invalid 2. Enumerate all displays, adding new ones and marking known displays as valid 3. Remove all displays still invalid after enumeration - Display connect/disconnect events are sent when displays are added or removed after initial setup
Sam Lantinga b546db2f 2020-10-09T12:58:28 Only watch for display connect/disconnect events while the video subsystem is initialized
Ryan C. Gordon b79832ba 2020-10-08T21:11:09 cocoa: Cut and paste from HTML strikes again!
Ozkan Sezer 19aaa294 2020-10-09T04:00:00 Fix https://bugzilla.libsdl.org/show_bug.cgi?id=5306 (Also see: https://bugzilla.libsdl.org/show_bug.cgi?id=4822) Building the current tree against 10.8 SDK, clang emits the following warning: src/video/cocoa/SDL_cocoawindow.m:1846:27: warning: instance method '-isOperatingSystemAtLeastVersion:' not found (return type defaults to 'id') [-Wobjc-method-access] ![processInfo isOperatingSystemAtLeastVersion:version]) { ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /opt/MacOSX10.8.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSProcessInfo.h:20:12: note: receiver is instance of class declared here @interface NSProcessInfo : NSObject { ^ 1 warning generated. isOperatingSystemAtLeastVersion is an 10.10 thing.
Ozkan Sezer 69fbd60d 2020-10-09T04:00:00 Fix https://bugzilla.libsdl.org/show_bug.cgi?id=4877#c2 loadNibNamed:owner:topLevelObjects is available on 10.8 and newer. There is an issue report here about an app failing to function on 10.7 and earlier: https://discourse.libsdl.org/t/28179
Sam Lantinga bd14f267 2020-10-08T16:58:34 Removed unused variable
Ozkan Sezer d86a7465 2020-10-09T02:55:00 SDL_video.c: fix whitespace
Sam Lantinga 76980e30 2020-10-08T16:42:20 Added events for dynamically connecting and disconnecting displays, with an iOS implementation
Sam Lantinga cd703b56 2020-10-08T16:41:48 Fixed whitespace
Ryan C. Gordon 77c9d73b 2020-10-05T11:30:33 Removed SDL_AndroidOpenURL, added SDL_OpenURL. Still needs to be wired into Xcode and Visual Studio projects.
Sylvain Becker cd6670bf 2020-10-02T10:48:27 SDL_Surface refcount: fix memory leak when blitting between stack'ed surfaces (see bug 5226)
Manuel Alfayate Corchete 78c274cb 2020-09-26T19:18:09 kmsdrm: merge patches from Ozkan Sezer for removing c-99'isms and raising libgbm version reqeriments.
Sylvain Becker 955f3184 2020-09-25T10:14:42 Fixed bug 5239 - Play audio on Android while backgrounded (Thanks Superfury) Add hint SDL_HINT_ANDROID_BLOCK_ON_PAUSE_PAUSEAUDIO not to pause audio when the app goes to background. (It requires SDL_ANDROID_BLOCK_ON_PAUSE as "Non blocking")
Manuel Alfayate Corchete 9c342e76 2020-09-13T21:41:10 kmsdrm: merge heap buffer overflow and cursor creation patches from meyraud705.
Manuel Alfayate Corchete 0cb9bfa5 2020-09-12T15:58:47 kmsdrm: less excessive error checkhing
Manuel Alfayate Corchete 5bed30dd 2020-09-12T04:56:55 kmsdrm: also do pending modeseting in SwapWindowDoubleBuffered().
Manuel Alfayate Corchete 9e9227ad 2020-09-12T04:52:56 kmsdrm: reimplement modesetting for fullscreen window scaling and AR-correction.
Manuel Alfayate Corchete 4575c694 2020-09-12T02:36:02 kmsdrm: delete ununsed variable.
Manuel Alfayate Corchete 01b0cf1c 2020-09-12T00:47:00 Backed out changeset 4a45d1a30d25 kmsdrm: Fake KMSDRM_SetDisplayMode() is needed for some programs after all.
Manuel Alfayate Corchete 7b676548 2020-09-12T00:16:08 kmsdrm: don't fool SDL into thinking that changing the physical videomode is done.
Manuel Alfayate Corchete a6d182d3 2020-09-11T23:47:26 kmsdrm: no need to reconnect/reactivate things in SwapWindowDoubleBuffered().
Manuel Alfayate Corchete 47e2d030 2020-09-10T23:26:02 kmsdrm: greatly improve comments in SwapBuffersFenced() for future reference.
Ryan C. Gordon 3c6004fe 2020-09-10T15:07:23 kmsdrm: Choose how to swap buffers based on EGL extension availability.
Ryan C. Gordon c7e761f8 2020-09-10T15:05:55 kmsdrm: Patched to compile if EGL headers lack EGL_ANDROID_native_fence_sync.
Ryan C. Gordon 224aa45b 2020-09-10T15:04:35 kmsdrm: Implement GL_DefaultProfileConfig for Raspberry Pi compatibility. If we think this might be a Raspberry Pi device, default to ES2. Otherwise, accept SDL's higher-level defaults.
Ryan C. Gordon 092162ed 2020-09-10T15:02:51 video: Set up default before calling GL_DefaultProfileConfig(). This way, the implementation can opt to do nothing to accept SDL's defaults.
Ryan C. Gordon e758dd53 2020-09-10T15:02:00 egl: Make SDL_EGL_HasExtension() available outside of SDL_egl.c.
Manuel Alfayate Corchete 055cad49 2020-09-10T02:15:53 kmsdrm: no need to re-connect/reactivate things in SwapWindow() anymore because we use a dumb buffer on KMS buffers destruction now.
Manuel Alfayate Corchete 351219bf 2020-09-09T03:18:26 kmsdrm: On VideoQuit(), only destroy dumb buffer if it exists.
Sam Lantinga 8709f67e 2020-09-08T08:42:30 Fixed bug 5215 - Fixing filenames passed to dlopen for OpenBSD Brad Smith Attached is a patch to use the proper filenames when trying to dlopen the respective shared libraries on OpenBSD.
Manuel Alfayate Corchete 244d0ad8 2020-09-08T15:30:45 kmsdrm: Tell SDL that mouse has entered the window via artificial event. Fixes sticky mouse in Scummvm.
Cameron Gutman 9a769da0 2020-09-07T20:10:50 X11: Remove our X11 error callback in X11_DeleteDevice() If we don't remove it, we will infinitely recurse if X11_CreateDevice() is called again and orig_x11_errhandler becomes X11_SafetyNetErrHandler().
Manuel Alfayate Corchete 550e1533 2020-09-08T02:42:32 kmsdrm: No need to test for display driverdata when freeing a plane.
Manuel Alfayate Corchete 6e03fab9 2020-09-07T23:15:33 kmsdrm: add temporary RPI4_COMPAT define to try RPI4+current Rasbian compatibility.
Manuel Alfayate Corchete 0f807fd6 2020-09-07T22:54:15 kmsdrm: use a black dumb buffer for keeping the PRIMARY PLANE occupied when we destroy the KMS buffers, instead of using the TTY buffer, to avoid flickering.
Sylvain Becker ebc12a2f 2020-09-07T18:50:30 SDL_Surface refcount: destination surface keep track of surfaces that are mapped to it and automatically invalidate them when it is freed - refcount is kept so that an external application can still create a reference to SDL_Surface. - lock_data was un-used and is now renamed and used as a list keep track of the blitmap
Manuel Alfayate Corchete cce6c605 2020-09-07T01:33:04 kmsdrm: fix errors when trying to free up videomode driverdata pointers on quit.
Manuel Alfayate Corchete 9501b1c6 2020-09-07T00:18:13 kmsdrm: fix scaling for SDL_WINDOW_FULLSCREEN windows.
Manuel Alfayate Corchete daa752b1 2020-09-06T23:19:54 kmsdrm: fix first frame display: no need to wait for SwapWindow() for EGL surface creation.
Manuel Alfayate Corchete 68ac9349 2020-09-06T12:48:39 kmsdrm: more coherent returns for SwapWindow.
Manuel Alfayate Corchete d3d9d432 2020-09-06T12:17:27 kmsdrm: Remove debug printfs in SwapWindow.
Manuel Alfayate Corchete d7aebbd5 2020-09-06T12:08:22 kmsdrm: Don't create surfaces until EGL context is available.
Cameron Gutman 1b6de9a9 2020-09-05T15:01:45 Fix SDL_HINT_MOUSE_FOCUS_CLICKTHROUGH=1 on Metal windows SDL_cocoametalview was consuming the first click rather than passing it through to the SDLView underneath which overrides [NSView acceptsFirstMouse] based on the user's SDL_HINT_MOUSE_FOCUS_CLICKTHROUGH preference.
Manuel Alfayate Corchete f4e02a5c 2020-08-31T19:17:17 kmsdrm: Do NOT modify window size manually from the backend: doing so caused renderer scaling params miscalculation.
Manuel Alfayate Corchete c09d1cee 2020-08-28T23:04:00 kmsdrm: Apply window reconfiguration in SetWindowSize(), too.
Manuel Alfayate Corchete 31b17945 2020-08-28T22:38:26 kmsdrm: use PLANE and CRTC to do hardware-driven window scaling and AR-correction.
Manuel Alfayate Corchete fe3f9796 2020-08-26T01:37:30 kmsdrm: unload EGL and GL lib only if using them.
Manuel Alfayate Corchete 9b43464d 2020-08-25T16:30:23 kmsdrm: Add programmer credits to the Atomic KMSDRM driver.
Manuel Alfayate Corchete 9316a8d9 2020-08-25T16:18:49 kmsdrm: move FENCE FD props setting to SwapWindow(), where it belongs.
Manuel Alfayate Corchete 3f38009b 2020-08-25T15:40:36 kmsdrm: comment out atomic commit fast-debugging printf.
Manuel Alfayate Corchete 0d16761c 2020-08-25T05:53:13 kmsdrm: fix segfault on quit beacuse of freed _this->egl_data.
Manuel Alfayate Corchete d43e666e 2020-08-25T04:05:36 kmsdrm: Buffer management refactoring. Fixes for compatibility with more video drivers.
Manuel Alfayate Corchete eade05ca 2020-08-24T12:51:20 kmsdrm: Finetune integer type usage. Add some comments.
Manuel Alfayate Corchete a76f1763 2020-08-24T01:10:11 kmsdrm: Move cursor plane setup and freeing to MouseInit() and MouseQuit(), for better consistency.
Manuel Alfayate Corchete 0d593d7e 2020-08-23T23:44:07 kmsdrm: Add error control to plane prop setting function. Do most plane prop setting with a single function.
Manuel Alfayate Corchete e06e9c35 2020-08-23T11:26:55 kmsdrm: move cursor-related atomic helper functions and related struct typedefs to the SDL_kmsdrmmouse unit.
Manuel Alfayate Corchete 0b7b7721 2020-08-23T03:13:50 kmsdrm: remove redundant function, use drm_atomic_setbuffers() for disconnecting planes instead.
Manuel Alfayate Corchete 16c04f26 2020-08-23T02:58:57 kmsdrm: Init cursor surface on SetCursor() ONLY. Removal of dynamic modeset because it causes A LOT of problems with some kernel video drivers. Some refactoring and cleanups.
Manuel Alfayate Corchete 0d0ba111 2020-08-19T01:34:56 kmsdrm: correct parameter name.
Manuel Alfayate Corchete 5d32eda9 2020-08-19T01:31:22 kmsdrm: implement smarter surface recreation function to be used in videomode changes. Other minor arrangements.
Manuel Alfayate Corchete f79da817 2020-08-18T01:52:15 kmsdrm: free all connector, crtc and plane memory on KMSDRM_VideoQuit().
Manuel Alfayate Corchete 92cb9192 2020-08-17T18:35:04 kmsdrm: move hardware cursor functionality to the ATOMIC interface. Disconnect the display plane from the GBM surface buffers before destroying the GBM surface.
Manuel Alfayate Corchete c437729b 2020-08-08T14:27:55 kmsdrm: separate requests in different functions so we only need one atomic commit for everything, as expected by atomic design.
Manuel Alfayate Corchete 3b9f1073 2020-08-07T11:53:04 kmsdrm: wait for possible pending atomic commits before destroying surfaces, and before restoring video on quit. Move messages to the SDL_Log* functions.
Manuel Alfayate Corchete 96c99693 2020-08-06T01:36:56 kmsdrm: wait for pending atomic commits before restoring videomode and crtc->buffer on VideoQuit, and simplify double-buffer SwapWindow() implementation.
Manuel Alfayate Corchete 09692b61 2020-08-05T18:55:22 kmsdrm: move videomode restoration on VideoQuit() to using the atomic interface instead of the legacy drmModeSetCrtc() function. Refactoring of get_plane_id().
Manuel Alfayate Corchete fc722b2d 2020-08-05T15:28:51 kmsdrm: free memory for plane, crtc and connector property tables on VideoQuit.
Manuel Alfayate Corchete 2d69ce08 2020-08-05T02:06:59 kmsdrm: double and triple buffered versions of SwapWindow() are now both reimplemented in atomic pageflipping versions, and can be selected via SDL_VIDEO_DOUBLE_BUFFER env variable.
Manuel Alfayate Corchete 8996ee17 2020-08-03T22:24:49 kmsdrm: update SwapWindow fn, moving it to triple-buffer.
Ryan C. Gordon ea171c05 2020-08-01T18:58:42 winrt: Another attempt at getting this to compile. IntPtr isn't a POD type like I thought, so hopefully we can just construct one that works out? C++/CX is so weird.
Manuel Alfayate Corchete b131661c 2020-08-01T18:23:34 kmsdrm: rewrite the new SwapWindow() fn to avoid tearing. Double-buffer only for now.
Ryan C. Gordon 282e4c65 2020-07-31T19:42:23 winrt: Patched to compile...? Microsoft's C++/CX is weird, no idea if this will actually fix it. :/
Manuel Alfayate Corchete 1a5503ce 2020-07-28T21:11:25 kmsdrm: Moved to the ATOMIC KMS/DRM interface for buffer swapping, leaving DRM-legacy behind.
Tudor Brindus c0943328 2020-07-21T13:14:24 wayland: defer pointer confine creation until pointer unlock It is a protocol error to attempt to create a pointer confine (i.e. `SDL_SetWindowGrab`) while a locked pointer is active, and vice-versa. Instead of aborting due to a protocol error, this commit makes SDL gracefully downgrade locked pointers to confines when appropriate.
RALOVICH, Kristof c7eb557d 2020-07-20T10:09:07 kmsdrm: do not leak drmModeConnector Previously conn was leaked on the success path (when available was set to SDL_TRUE).
Manuel Alfayate Corchete 412b21b0 2020-07-20T11:42:23 Rename the gbm device struct from gbm to gbm_dev for better readabilty.
RALOVICH, Kristof 155fdc7a 2020-07-19T21:48:17 kmsdrm: settle with first card that has a connected connector Previously the first card with non-empty connectors, encoders and crtcs would be selected, however KMSDRM_VideoInit could still reject it if the connector was not connected. This allow finding the first card (in a multi GPU setup) that is actually connected to a display.
RALOVICH, Kristof b78b88f7 2020-07-19T21:46:41 kmsdrm: fix typo