src/video


Log

Author Commit Date CI Message
Sam Lantinga 4b585e75 2020-02-03T08:06:52 Fixed bug 4833 - Use EGL for X11? Martin Fiedler To be precise, this is about *desktop OpenGL* on X11. For OpenGL ES, EGL is already used (as it's the only way to get an OpenGL ES context), as Sylvain noted above. To shine some light on why this is needed: In 99% of all cases, using GLX on X11 is fine, even though it's effectively deprecated in favor of EGL [1]. However, there's at least one use case that *requires* the OpenGL context being created with EGL instead of GLX, and that's DRM_PRIME interoperability: The function glEGLImageTargetTexture2DOES simply doesn't work with GLX. (Currently, Mesa actually crashes when trying that.) Some example code: https://gist.github.com/kajott/d1b29c613be30893c855621edd1f212e Runs on Intel and open-source AMD drivers just fine (others unconfirmed), but with #define USE_EGL 0 (i.e. forcing it to GLX), it crashes. The same happens when using SDL for window and context creation. The good news is that most of the pieces for EGL support on X11 are already in place: SDL_egl.c is pretty complete (and used for desktop OpenGL on Wayland, for example), and SDL_x11opengl.c has the aforementioned OpenGL-ES-on-EGL support. However, when it comes to desktop OpenGL, it's hardcoded to fall back to GLX. I'm not advocating to make EGL the default for desktop OpenGL on X11; don't fix what ain't broken. But something like an SDL_HINT_VIDEO_X11_FORCE_EGL would be very appreciated to make use cases like the above work with SDL. [1] source: Eric Anholt, major Linux graphics stack developer, 7 years ago already - see last paragraph of https://www.phoronix.com/scan.php?page=news_item&px=MTE3MTI
Sam Lantinga 67f44788 2020-02-03T00:57:12 Fixed bug 4917 - Wayland: handle discrete pointer axis events Luis Caceres The current handling of Wayland mouse pointer events only handles wl_pointer.axis events, which, according to the Wayland documentation, deal with mouse wheel scroll events on a continuous scale. While this is reasonable for some input sources (e.g. touchpad two-finger scrolling), it is not for mouse wheel clicks which generate wl_pointer.axis events with large deltas. This patch adds handling for wl_pointer.axis_discrete and wl_pointer.frame events and prefers to report SDL_MouseWheelEvent in discrete units if they are available. This means that for mouse wheel scrolling we count in clicks, but for touchpad two-finger scrolling we still use whatever units Wayland uses. This behaviour is closer to that of the X11 backend. Since these events are only available since version 5 of the wl_seat interface, this patch also checks for this and falls back to the previous behaviour if its not available. I also had to add definitions for some of the pointer and keyboard events specified in versions 2-5 but these are just stubs and do nothing.
Sam Lantinga 62a3d6c0 2020-01-30T14:58:41 Fixed build
Sam Lantinga 37278066 2020-01-30T14:51:33 Export SDL functions for iOS application delegates
Sam Lantinga c9c89783 2020-01-29T20:09:08 Miscellaneous pending fixes
Ryan C. Gordon 39563b7b 2020-01-28T13:51:24 x11: Use XSync when changing window position instead of XFlush. Attempt to fix regression in Bugzilla #4646.
Ryan C. Gordon c7e1b289 2020-01-27T17:15:12 cocoa: Fix command line apps' menu bar not working on macOS Catalina. Fixes Bugzilla #4937.
Ryan C. Gordon b4c2e29e 2020-01-27T10:58:30 video: Added a hint to override the display's usable bounds.
Sam Lantinga b5e3d264 2020-01-23T01:00:52 Added a single SDL_LEAN_AND_MEAN define to turn on minimal SDL builds Protected more code with #ifdefs to reduce the size of minimal shared library builds
Sylvain Becker 55afc281 2020-01-21T22:06:09 Add #define SDL_HAVE_BLIT_N_RGB565 to compile out RGB565 LUT
Sylvain Becker 7df22cf2 2020-01-21T21:33:40 A few #defines to reduce SDL2 footprint. Only applied when library is statically linked
Sylvain Becker 005e2dff 2020-01-17T12:41:54 Android: prevents rare crashes when app goes to background or ends. Make sure the thread is actually paused, and context backep-up, before SurfaceView is destroyed (eg surfaceDestroyed() actually returns). Add a timeout when surfaceDestroyed() is called, and check 'backup_done' variable. It prevents crashes like: #00 pc 000000000000c0d0 /system/lib64/libutils.so (android::RefBase::incStrong(void const*) const+8) #01 pc 000000000000c7f4 /vendor/lib64/egl/eglSubDriverAndroid.so (EglAndroidWindowSurface::UpdateBufferList(ANativeWindowBuffer*)+284) #02 pc 000000000000c390 /vendor/lib64/egl/eglSubDriverAndroid.so (EglAndroidWindowSurface::DequeueBuffer()+240) #03 pc 000000000000bb10 /vendor/lib64/egl/eglSubDriverAndroid.so (EglAndroidWindowSurface::GetBuffer(EglSubResource*, EglMemoryDesc*)+64) #04 pc 000000000032732c /vendor/lib64/egl/libGLESv2_adreno.so (EglWindowSurface::UpdateResource(EsxContext*)+116) #05 pc 0000000000326dd0 /vendor/lib64/egl/libGLESv2_adreno.so (EglWindowSurface::GetResource(EsxContext*, EsxResource**, EsxResource**, int)+56) #06 pc 00000000002ae484 /vendor/lib64/egl/libGLESv2_adreno.so (EsxContext::AcquireBackBuffer(int)+364) #07 pc 0000000000249680 /vendor/lib64/egl/libGLESv2_adreno.so (EsxContext::Clear(unsigned int, unsigned int, unsigned int, EsxClearValues*)+1800) #08 pc 00000000002cb52c /vendor/lib64/egl/libGLESv2_adreno.so (EsxGlApiParamValidate::GlClear(EsxDispatch*, unsigned int)+132)
Sylvain Becker d52ba78b 2020-01-17T12:04:18 Fixed bug 4246 - Android: orientation between portrait<->landscape doesn't work Improve handling of landscape/portrait orientation. Promote to SCREEN_ORIENTATION_SENSOR_* when needed. Android window can be somehow resizable. If SDL_WINDOW_RESIZABLE is set, window size change is allowed, for instance when orientation changes (provided the hint allows it).
Sam Lantinga a8780c6a 2020-01-16T20:49:25 Updated copyright date for 2020
Sam Lantinga 572f4a85 2020-01-16T15:54:20 Fixed bug 4929 - Software renderer produces bugs when optimizations are turned on with Visual C++ 2019 Konrad I took the liberty of rewriting this function a bit as it seemed to be unnecessary extended with ifs regarding flags (we can check everything in one pass which seem to be the thing which confuses Visual C++ 2019 as well). Also, I have made CPU features an int instead of uint because if we check it against flags which are all ints it might as well just be int (no signed/unsigned bitwise comparison).
Sam Lantinga 981e0d36 2020-01-16T08:52:59 Fixed bug 4903 - Lack of color multiply with alpha (SDL_BLENDMODE_MOD + SDL_BLENDMODE_BLEND) blending mode for all renderers Konrad This kind of blending is rather quite useful and in my opinion should be available for all renderers. I do need it myself, but since I didn't want to use a custom blending mode which is supported only by certain renderers (e.g. not in software which is quite important for me) I did write implementation of SDL_BLENDMODE_MUL for all renderers altogether. SDL_BLENDMODE_MUL implements following equation: dstRGB = (srcRGB * dstRGB) + (dstRGB * (1-srcA)) dstA = (srcA * dstA) + (dstA * (1-srcA)) Background: https://i.imgur.com/UsYhydP.png Blended texture: https://i.imgur.com/0juXQcV.png Result for SDL_BLENDMODE_MOD: https://i.imgur.com/wgNSgUl.png Result for SDL_BLENDMODE_MUL: https://i.imgur.com/Veokzim.png I think I did cover all possibilities within included patch, but I didn't write any tests for SDL_BLENDMODE_MUL, so it would be lovely if someone could do it.
Dmitry V. Levin 2b1edf41 2020-01-04T11:05:06 X11_InitKeyboard: do not call XAutoRepeatOn unnecessarily Use XGetKeyboardControl to initialize the current XKeyboardState, and skip XAutoRepeatOn invocation if global_auto_repeat is AutoRepeatModeOn. This fixes SDL2 when the X11 client is untrusted.
Dmitry V. Levin ed514cd0 2020-01-04T11:03:04 have_mitshm: use XShmQueryExtension to check for MIT-SHM extension Do not try to guess MIT_SHM extension availability from the string returned by XDisplayName, use the appropriate API instead. This fixes SDL2 inside hasher.
Michael Forney cdbeae52 2019-12-29T23:10:39 wayland: support wl_data_device_manager version < 3
Ozkan Sezer 9340cfa9 2019-12-27T23:01:10 SDL_x11events.c (X11_DispatchEvent): remove FIXME and use SDL_strtokr().
Sam Lantinga 5e19e66c 2019-12-22T13:39:44 Fixed bug 4914 - Expose SDL_ScaleMode and add SDL_SetTextureScaleMode/SDL_GetTextureScaleMode Konrad This was something rather trivial to add, but asked at least several times before (I did google about it as well). It should be possible to dynamically change scaling mode of the texture. It is actually trivial task, but until now it was only possible with a hint before creating a texture. I needed it for my game as well, so I took the liberty of writing it myself. This patch adds following functions: SDL_SetTextureScaleMode(SDL_Texture * texture, SDL_ScaleMode scaleMode); SDL_GetTextureScaleMode(SDL_Texture * texture, SDL_ScaleMode *scaleMode); That way you can change texture scaling on the fly.
Sylvain Becker d004cc70 2019-12-21T22:40:33 Android: same way as in nativePause(), resume events are sent from SDL thread
Sylvain Becker 45a9b5fa 2019-12-21T21:18:02 Android: fix call of glFinish without context. Message in the log, when going to background: "call to OpenGL ES API with no current context (logged once per thread)" Because of SDL_WINDOWEVENT_MINIMIZED is sent from the Java Activity thread. It calls SDL_RendererEventWatch(), _WindowEvent() and glFinish() without context. Solution is to move sending of SDL_WINDOWEVENT_MINIMIZED to the SDL thread.
Paul Cercueil 95d40e8a 2019-12-19T21:47:43 kmsdrm: Fix busy-loop within libc's dlopen() For some obscure reason, the order in which the libdrm/libgbm libraries are loaded matters. Without this fix, the first call to check_modesetting() will work and load then unload all symbols properly, but the second call to this function will lock up as soon as dlopen() is called on libdrm. Swapping the order in which the libdrm and libgbm libraries are loaded is enough to fix (or work around?) this issue. Fixes #4891: https://bugzilla.libsdl.org/show_bug.cgi?id=4891 Signed-off-by: Paul Cercueil <paul@crapouillou.net>
Sam Lantinga 20daf54f 2019-12-19T15:18:50 Added new HIDAPI driver files to the Xcode projects
Sam Lantinga bc430d40 2019-12-16T10:26:36 Update for bug 4883 - Add approximation for display DPI on iOS Aaron Barany I realized I made a minor mistake in my patch: I changed the constructor prototype for SDL_DisplayData, but didn't update the declaration in the .h file. The compiler and linker don't complain, but it would probably be best to fix in case a later change runs into a problem from the mismatch. I have attached a patch to fix this.
Sam Lantinga 140918bb 2019-12-08T11:36:40 Fixed bug 4883 - Add approximation for display DPI on iOS Aaron Barany There appears to be no way to directly access the display DPI on iOS, so as an approximation the DPI for the iPhone 1 is used as a base value and is multiplied by the screen's scale. This should at least give a ballpark number for the various screen scales. (based on https://stackoverflow.com/questions/25756087/detecting-iphone-6-6-screen-sizes-in-point-values it appears that both 2x and 3x are used) I have updated the patch to use a table of current devices and use a computation as a fallback. I have also updated the fallback computation to be more accurate.
Sam Lantinga 54748a39 2019-12-08T11:33:06 Fixed bug 4890 - Add hint for SDL that the graphics context is externally managed Aaron Barany Add SDL_HINT_VIDEO_EXTERNAL_CONTEXT hint to notify SDL that the graphics context is external. This disables the automatic context save/restore behavior on Android and avoids using OpenGL by default when SDL_WINDOW_VUKLAN isn't set. When the application wishes to manage the OpenGL contexts on Android, this avoids cases where SDL unbinds the context and creates new contexts, which can interfere with the application's operation. When using Vulkan and Metal renderer implementations, this avoids SDL forcing OpenGL to be enabled on certain platforms. While using the SDL_WINDOW_VULKAN flag can be used to achieve the same thing, it also causes Vulkan to be loaded. If the application uses Vulkan directly, this is not necessary, and fails window creation when using Metal due to Vulkan not being present. (assuming MoltenVK isn't installed)
Ryan C. Gordon 597f11e5 2019-12-05T17:27:06 cocoa: Patched to compile on older compilers.
Ryan C. Gordon ca2c8609 2019-12-04T12:20:24 cocoa: SDL_GetDisplayDPI() should account for Retina displays. Fixes Bugzilla #4856.
Sam Lantinga b7576025 2019-12-03T22:07:58 Fixed bug 4882 - Fix build for iOS when disabling OpenGL Aaron Barany Since OpenGL is deprecated on iOS, it is advantageous to be able to remove all OpenGL related code when building SDL for iOS. This patch adds the necessary #if checks to compile in this case.
Sam Lantinga 7a3ae590 2019-12-03T07:12:55 Fixed bug 4877 - Add support for loading menus from a nib/xib instead of building a hardcoded minimum set Eric Shepherd Currently, SDL on Cocoa macOS creates a rudimentary menu bar programmatically if none is already present when the app is registered during setup. SDL could be much more easily and flexibly used on macOS if upon finding that no menus are currently in place, it first looked for the application's main menu nib or xib file and, if found, loaded that instead of programmatically building the menus. This would then let developers simply drop in a nib file with a menu bar defined in it and it would be installed and used automatically. Attached is a patch that does just this. It changes the SDL_cocoaevents.m file to: * In Cocoa_RegisterApp(), before calling CreateApplicationMenus(), it calls a new function, LoadMainMenuNibIfAvailable(), which attempts to load and install the main menu nib file, using the nib name fetched from the Info.plist file. If that succeeds, LoadMainMenuNibIfAvailable() returns true; otherwise false. * If LMMNIA() returns false, CreateApplicationMenus() is called to programmatically build the menus as before. * Otherwise, we're done, and using the menus from the nib/xib file! I made these changes to support a project I'm working on, and felt they were useful enough to be worth offering them for uplift. They should have zero impact on existing projects' behavior, but make Cocoa SDL development miles easier.
Gerasim Troeglazov c8a2ef86 2019-12-03T02:49:01 haiku: Disable pointer history (note from PulkoMandy on Bugzilla #4442 about why this is a desirable patch: "The event mask: note that the window and GL view run in their own thread which I don't expect to be too much CPU bound, and will quickly pop these messages and forward them to the main thread in our SDL code. Therefore the B_NO_POINTER_HISTORY should be no problem, and is the default on Haiku anyway (it was not in BeOS, but we changed that and added a B_FULL_POINTER_HISTORY flag to request the old behavior explicitly). So, this seems fine.") Partially fixes Bugzilla #4442.
Alex Smith e5af951e 2019-12-02T15:41:25 Fix sending SDL_WINDOWEVENT_RESTORED after unminimizing windows on X11 SDL_SendWindowEvent will only send a RESTORED event if the window has the minimized or maximized flag set. However, for a SHOWN event, it will clear the minimized flag. Since the SHOWN event was being sent first for a MapNotify event, the RESTORED event would never be sent. Swapping the SendWindowEvent calls around fixes this. https://bugzilla.libsdl.org/show_bug.cgi?id=4821
Sam Lantinga b1539c4c 2019-11-16T22:35:48 Fixed bug 4819 - Attempting to create an OpenGL ES context with unachievable MSAA parameters under X11 dooms the program Solra Bizna I have written a program that, in the event that the user requests more MSAA samples than their hardware supports, attempts to gracefully fall back to the best MSAA available. This code works with my conventional OpenGL renderer, but if I change nothing about the code except to make it request an OpenGL ES profile instead, Xlib kills the program with an error that looks like: X Error of failed request: BadWindow (invalid Window parameter) Major opcode of failed request: 4 (X_DestroyWindow) Resource id in failed request: 0x5c00008 Serial number of failed request: 188 Current serial number in output stream: 193 To trigger the bug, attempt to create a window with the SDL_WINDOW_OPENGL flag, with SDL_GL_CONTEXT_PROFILE_MASK set to SDL_GL_CONTEXT_PROFILE_ES, and with SDL_GL_MULTISAMPLESAMPLES set to any unsupported value. SDL_CreateWindow properly returns NULL, but at this point the program is already doomed. Xlib will shortly terminate the program with an error. Calling SDL_CreateWindow again will immediately trigger this termination. I have attached a skeletal program that reproduces this bug for me. Replacing SDL_GL_CONTEXT_PROFILE_ES with SDL_GL_CONTEXT_PROFILE_COMPATIBILITY avoids the bug (but, obviously, doesn't create an OpenGL ES context). As I suspected, the problem was with XDestroyWindow being called twice on the same window. The X11_CreateWindow function in src/video/x11/SDL_x11window.c calls SetupWindowData. If initialization fails after that point, XDestroyWindow gets called on the window by a subsequent call to X11_DestroyWindow. But, later in the same function, iff a GLES context is requested and initializing it fails, X11_XDestroyWindow (which wraps XDestroyWindow) is manually called. Shortly after, the intended call to X11_DestroyWindow occurs, which attempts to destroy the same window again. Boom. (The above confusing summary involves three separate, similarly-named functions: XDestroyWindow, X11_DestroyWindow, X11_XDestroyWindow) I have attached a simple patch that removes the redundant X11_XDestroyWindow calls. I've tested that XDestroyWindow still gets called for the windows in question, and that it only gets called once.
EXL b44fe0f8 2019-11-12T17:24:37 haiku: Rename BE_* entities to HAIKU_* In favor Bugzilla #2349. Update copyright years to 2019. Partially fixes Bugzilla #4442.
Peter Kosyh 79510b75 2019-11-11T22:22:40 haiku: mouse->ShowMouse method added Partially fixes Bugzilla #4442.
Gerasim Troeglazov 95a402d7 2019-11-11T22:21:17 haiku: Add support for relative mouse mode. Partially fixes Bugzilla #4442.
Adrien Destugues 3b516e63 2019-11-11T22:14:00 haiku: Fix crash when opening window. - _num_clips was not set in constructor, so a NULL _clips could be mistakenly dereferenced. - As _clips is accessible outside the class, it is not a good idea to free/reallocate it. Try to limit this by reallocating only when it needs to grow. Partially fixes Bugzilla #4442.
Jerome Duval 50806eee 2019-11-11T22:04:10 haiku: use addr_t instead of size_t for OpenGL dynamic loading. Partially fixes Bugzilla #4442.
EXL b22fb9e2 2019-11-11T16:44:40 haiku: Implement message box for Haiku Add implementation for functions: SDL_ShowSimpleMessageBox() SDL_ShowMessageBox() Add simple customization support also. Fix build for x86_gcc2. Partially fixes Bugzilla #4442.
Cameron Cawley 20ddf45e 2019-11-02T22:58:52 Added SDL_PIXELFORMAT_BGR444
Sylvain Becker 303646a6 2019-10-31T15:53:10 Android: some readability: redundant casts, deads stores, redundant control flow
Sylvain Becker 88ba6798 2019-10-30T21:12:36 Wayland: touch events, use of memory after it is freed
Sylvain Becker 86ae245b 2019-10-30T17:59:20 Use correct enum: typo in org_kde_kwin_server_decoration_mode instead of org_kde_kwin_server_decoration_manager_mode
Sylvain Becker ce308a78 2019-10-30T16:33:32 revert this const parameter for X11 function
Sylvain Becker f16e5106 2019-10-30T16:17:59 Fix const warning in RLE getpix functions
Sylvain Becker d4a67e25 2019-10-30T16:06:51 Readability: change some pointer parameter to be pointer to const
Sylvain Becker 60d3965e 2019-10-30T15:36:17 Readability: remove redundant return, continue, enum declaration
Sylvain Becker b458d7a2 2019-10-30T15:13:55 Readability: remove redundant cast to the same type
Sylvain Becker 56cbe120 2019-10-30T14:37:06 BlitAuto: remove redundant cast to the same type
Sylvain Becker 735691ec 2019-10-30T14:29:41 Remove nested redundant #ifndef
Sylvain Becker 42153342 2019-10-29T16:13:41 Use fill_function for FillRect SIMD/NEON (bug 4365)
Alex Szpakowski bda618a2 2019-10-27T11:41:48 iOS: remove some unused code, minor code style cleanup.
Alex Szpakowski df49e2a5 2019-10-27T11:41:11 iOS: replace a deprecated function call with a non-deprecated equivalent.
Sylvain Becker 7289e5e2 2019-10-27T15:22:28 Android: remove warning in blit_features "integer constant not in range of enumerated type 'enum blit_features'"
Ryan C. Gordon c0255be4 2019-10-26T23:58:55 x11: check if the X server honored our XMoveWindow() call (thanks, R.E. Rust!). This can happen if a window is still grabbed when we try to move it, or if the X11 ecosystem is just in a bad mood, I guess. This makes sure that SDL will report the correct position for a window; otherwise, SDL_GetWindowPosition will just report whatever the last SDL_SetWindowPosition call requested, even if the window didn't actually move. Fixes Bugzilla #4646.
Alex Szpakowski a963e36e 2019-10-26T15:27:51 macOS: more robust detection and switching of exclusive-fullscreen display modes (bug #4822).
Ben Avison 72f8044a 2019-10-24T21:17:52 ARM: NEON assembly optimization for SDL_FillRect
Ben Avison 1187b013 2019-10-24T21:17:38 ARM: NEON assembly optimization for function BlitARGBto565PixelAlpha
Ben Avison 2dfe0605 2019-10-24T21:17:19 ARM: NEON assembly optimization for function BlitRGBtoRGBPixelAlpha
Ben Avison 74846657 2019-10-24T21:15:50 ARM: SIMD optimization for 4:4:4:4 to 8:8:8:8 normal blits
Ben Avison becc649a 2019-10-24T21:15:35 ARM: assembly optimization for SDL_FillRect
Ben Avison 7ac733f0 2019-10-24T21:15:21 ARM: SIMD assembly optimization for BGR-to-RGB 32bpp normal blits
Ben Avison 8425d9d5 2019-10-24T21:15:09 SDL_blit: use a named enum for required hardware bits in dispatch tables
Ben Avison 0eaa52ce 2019-10-24T21:13:56 ARM: SIMD assembly optimization for function BlitARGBto565PixelAlpha
Ben Avison 57723b83 2019-10-24T21:13:05 ARM: SIMD assembly optimization for function BlitRGBtoRGBPixelAlpha Much of the heavy lifting of this optimization is lifted from the Pixman project, which is distributed under an MIT-style license. As far as possible, these elements have been relicensed to the zlib license.
Alex Szpakowski 59beaccd 2019-10-24T20:15:54 macOS: Expose high dpi-capable display modes on macOS 10.13+. Fixes an issue in macOS 10.15 where the displayed content would move up after entering, exiting and re-entering exclusive fullscreen when certain display modes were used (bug #4822). Bug #3949 is also related to this change.
Sylvain Becker 8081f117 2019-10-24T18:07:30 Fixed bug 2014 - Hardcoded srcA value in SDL_Blit_auto.c functions
Sylvain Becker 3a8b8994 2019-10-23T11:07:11 Android: remove eglGetProcAdded busted comment (bug #4040)
Sylvain Becker c9d0e2ae 2019-10-23T09:26:27 Fixed bug 4840 - Read of uninitialized memory in DXGI_LoadDLL (Thanks!)
Sylvain Becker d5d34de4 2019-10-23T09:17:53 Fixed bug 4839 - Read of uninitialized memory in Win32_ResizeWindowShape (Thanks!)
Sylvain Becker 758badff 2019-10-23T08:58:52 Fixed bug 4841 - Misplaced parenthesis WIN_WindowProc / WM_ACTIVATE / ClipCursor (Thanks!)
Sylvain Becker 24bee6e5 2019-10-18T21:47:30 Add internal function SDL_EGL_GetVersion()
Sam Lantinga b060b2ea 2019-10-18T08:56:54 Fixed whitespace
Sylvain Becker e5bd2003 2019-10-18T14:08:07 Android: enable eglGetProcAddress (bug #4040, bug #4794)
Sylvain Becker 03f27a3a 2019-10-18T13:27:58 Add robustness getting the EGL version (see bug #4040)
Ryan C. Gordon 3ecce847 2019-10-18T00:07:32 egl: adjust how we load symbols in SDL_EGL_GetProcAddress. Use eglGetProcAddress for everything on EGL >= 1.5. Try SDL_LoadFunction first for EGL <= 1.4 in case it's a core symbol, and as a fallback if eglGetProcAddress fails. Finally, for EGL <= 1.4, fallback to eglGetProcAddress to catch extensions not exported from the shared library. (Maybe) Fixes Bugzilla #4794.
Sam Lantinga bf9092cf 2019-10-17T17:47:11 Removed unused variable
Sam Lantinga 1b4de45d 2019-10-16T08:45:54 Fixed bug 4785 - SDL_CreateRGBSurface creates 1-bit surfaces with zero pitch Sylvain Seems to be a regression in this commit: https://hg.libsdl.org/SDL/rev/7fdbffd47c0e SDL_CalculatePitch() was using format->BytesPerPixel, now it uses SDL_BYTESPERPIXEL(). The underlying issue is that "surface->format->BytesPerPixel" is *not* always the same as SDL_BYTESPERPIXEL(format); BytesPerPixel defined as format->BytesPerPixel = (bpp + 7) / 8; vs #define SDL_BYTESPERPIXEL(format) ... (format & 0xff) Because of SDL_pixels.h format definitions, one is giving a BytesPP 1, the other 0.
Ryan C. Gordon ed7483f8 2019-10-15T22:36:08 x11: On macOS, look for X11 install in /opt/X11 instead of /usr/X11R6. This is where Apple installs XQuartz now (and apparently, the compatibility symlink at /usr/X11R6 can be missing). Fixes Bugzilla #4706.
Ryan C. Gordon 02a2ec98 2019-10-15T14:55:09 video: Make sure SDL_FillRects()'s fill_function isn't used unitialized.
Ryan C. Gordon 9f636be8 2019-10-15T14:04:43 video: Removed unused variables.
Ryan C. Gordon e23067ea 2019-10-15T14:03:01 video: speed up SDL_FillRect[s] slightly (thanks, Jakub!). "This patch does the following: * Instead of SDL_FillRects calling SDL_FillRect in a loop the opposite happens -- SDL_FillRect (a specific case) calls SDL_FillRects (a general case) with a count of 1 * The switch/case block is moved out of the loop -- it modifies the color once and stores the fill routine in a pointer which is then used throughout the loop" Fixes Bugzilla #4674.
Ryan C. Gordon d5e378d1 2019-10-15T00:59:10 cocoa: Implement SDL_WINDOW_ALWAYS_ON_TOP support (thanks, Gabriel!). Fixes Bugzilla #4809.
Alex Szpakowski 074f6a51 2019-10-14T00:51:53 macOS: Fix the initial window background not being black since macOS 10.14.2 or so, when OpenGL is used (bug #4810). Also fixes "CGContext: invalid context 0x0" errors when an OpenGL window is created (bug #4470).
Alex Szpakowski 009226c6 2019-10-13T21:39:20 macOS: Fix non-highdpi OpenGL contexts not scaling properly in macOS 10.15 (bug 4810 and 4822).
Alex Szpakowski f8bdefe1 2019-10-13T15:18:28 macOS: Fix asserts in SDL_Render's metal scissor code when the window is resized.
Alex Szpakowski 1773da89 2019-10-13T12:16:40 macOS: Fix a new issue in 10.15 where the window decorations don't always get restored after SDL_SetWindowFullscreen(window, 0).
Sylvain Becker 3b0dcaf4 2019-10-12T18:47:56 Fixed bug 4797 - SDL fails to compile with Mesa Master (thanks Michael Olbrich!) fix building with Mesa 19.2 With Mesa 19.2 building fails with: /include/GLES/gl.h:63:25: error: conflicting types for 'GLsizeiptr' The same type is defined in include/SDL_opengl.h for OpenGL and the two headers should not be included at the same time. This was just never noticed because the same header guard '__gl_h_' was used. This was changed in Mesa. The result is this error. Fix this the same way GLES2 already handles this: Don't include the GLES header when the OpenGL header was already included. (https://hg.libsdl.org/SDL/rev/6a3670d6108d)
David Ludwig c61ca915 2019-10-02T14:55:02 WinRT: fix a link-time error when building UWP + x64
Brandon Schaefer ee6d504a 2019-09-24T17:49:53 offscreen: Define missing define on a older EGL for an EXT function which it wont have
Brandon Schaefer 8a41948e 2019-09-24T17:27:51 offscreen: Avoid using EGLDeviceEXT as it causes issues with older platforms, which is just a void*
Brandon Schaefer 68985371 2019-09-24T16:36:48 offscreen: Add new video driver backend Offscreen The Offscreen video driver is intended to be used for headless rendering as well as allows for multiple GPUs to be used for headless rendering Currently only supports EGL (OpenGL / ES) or Framebuffers Adds a hint to specifiy which EGL device to use: SDL_HINT_EGL_DEVICE Adds testoffscreen.c which can be used to test the backend out Disabled by default for now
Sylvain Becker 79e388bf 2019-09-10T17:12:34 Fixed bug 4798 - PNG w/transparency breaks in SDL 2.0.10 but works in SDL 2.0.9
Sam Lantinga 715e070d 2019-09-06T08:50:19 SDL_blit_N.c: Correct vec_perm() application on little-endian 64-bit PowerPC The LE transformation for vec_perm has an implicit assumption that the permutation is being used to reorder vector elements (in this case 4-byte integer word elements), not to reorder bytes within those elements. Although this is legal behavior, it is not anticipated by the transformation performed by the compilers. This causes pygame-1.9.1 test failure on PPC64LE because blitted pixmaps are corrupted there due to how SDL uses vec_perm(). From RedHat / Fedora: https://bugzilla.redhat.com/show_bug.cgi?id=1392465 Original patch was provided by: Menanteau Guy <menantea@linux.vnet.ibm.com>
Conn O'Griofa 2d37d291 2019-09-06T08:44:46 KMSDRM_GLES_SwapWindow: fix non-vsync case If KMSDRM_drmModeSetCrtc is called when the swap interval is set to 0, the driver behaves as though vertical sync is engaged by limiting framerate to the refresh rate, but performance is much worse than with vertical sync enabled. Resolve this issue by ensuring that the Crtc is only set up once, and KMSDRM_drmModePageFlip is called, albeit without any followup queueing or waiting for flips.
Ozkan Sezer 8a394209 2019-09-05T20:47:20 SDL_windowsevents.c: remove isVistaOrNewer (not used since 8cb1dc50bb28)
Sylvain Becker bf2f4703 2019-09-05T10:49:53 SDL_windowsmessagebox.c: remove unused variable
Sylvain Becker 1b5e3c19 2019-09-05T10:08:47 SDL_bmp.c: remove unused variable warnings