Log

Author Commit Date CI Message
Sam Lantinga cb18117c 2019-04-22T16:34:42 Added a helper function to tell whether or not a window can be minimized
Sam Lantinga f1b57f37 2019-04-22T16:25:49 Only leave fullscreen mode if we're actually going to minimize
Sam Lantinga 9950271b 2019-04-22T16:19:52 Fixed bug 4580 - Android 8: immersive fullscreen notification causes flickering between fullscreen and non-fullscreen and app is unresponsive Sylvain 2019-04-18 21:22:59 UTC Changes: - SDL_WINDOWEVENT_FOCUS_GAINED and SDL_WINDOWEVENT_FOCUS_LOST are sent when the java method onWindowFocusChanged() is called. - If we have support for MultiWindow (eg API >= 24), SDL event loop is blocked/un-blocked (or simply egl-backed-up or not), when java onStart()/onStop() are called. - If not, this behaves like now, SDL event loop is blocked/un-blocked when onPause()/onResume() are called. So if we have two app on screen and switch from one to the other, only FOCUS events are sent (and onPause()/onResume() are called but empty. onStart()/onStop() are not called). The SDL app, un-focused, would still continue to run and display frames (currently the App would be displayed, but paused). Like a video player app or a chronometer that would still be refreshed, even if the window hasn't the focus. It should work also on ChromeBooks (not tested), with two apps opened at the same time. I am not sure this fix Dan's issue. Because focus lost event triggers Minimize function (which BTW is not provided on android). https://hg.libsdl.org/SDL/file/bb41b3635c34/src/video/SDL_video.c#l2653 https://hg.libsdl.org/SDL/file/bb41b3635c34/src/video/SDL_video.c#l2634 So, in addition, it would need to add by default SDL_HINT_VIDEO_MINIMIZE_ON_FOCUS_LOSS to 0. So that the lost focus event doesn't try to minimize the window. And this should fix also the issue.
Ryan C. Gordon 2f6c988e 2019-04-21T21:34:14 configure: Cleaned up audio/video summaries when building for Windows.
Alex Szpakowski 90b08881 2019-04-17T20:41:05 iOS: Remove code trying to support compilation on the iOS 7 SDK, the deployment target has been set to iOS 8 for years and there's other unconditionally compiled code that depends on newer SDKs so that code is useless.
Alex Szpakowski 9d7b2615 2019-04-17T20:14:40 macOS: Fix compilation when using the 10.9 SDK or older.
Sam Lantinga cf87d576 2019-04-16T20:00:14 Explicitly load hidapi as a dependency of the SDL library This fixes loading on Android 4.2
Sylvain Becker bd344c22 2019-04-12T23:15:26 Android: when event loop is not blocking in pause, backup EGL context (Bug 4578) Backup the EGL context when SDL_APP_DIDENTERBACKGROUND has been removed from the event queue.
Alex Szpakowski 00c824a8 2019-04-10T22:30:58 Fix disabling OpenGL vsync on macOS 10.14.4+ (bug #4575).
Sylvain Becker aae49015 2019-04-10T10:59:53 Fixed bug 4581 - generate synthetic mouse events at window boundaries when real touch events are actually outside the window.
Sylvain Becker cfefe543 2019-04-08T21:27:24 Fixed bug 4581 - mouse events with SDL_TOUCH_MOUSEID make window lost focus Virtual mouse events should never leave the window or change focus for single window applications.
Sylvain Becker d68e501d 2019-04-08T13:43:48 Fixed bug 4582 - Maximize/Resize not working on Windows 10 When viewport is set, projectionAndView changes, but ID3D11DeviceContext_UpdateSubresource was not called.
Sylvain Becker eb7affee 2019-04-06T21:52:51 SDL_HINT_MOUSE_TOUCH_EVENTS: move tracking appart in case of 'window' is null
Sylvain Becker a1a9fd50 2019-04-06T21:43:16 Bug 4581: move tracking appart so it doesn't require the window to have focus
Sam Lantinga a46af76b 2019-04-05T08:15:01 Fixed bug 4579 - SDL_android.c s_active not being atomic Isaias Brunet This bug cause a false assert due to multiple threads modifying the same variable without any atomic operation.
Sam Lantinga 9eac91dd 2019-04-05T08:10:12 Set SDL_HINT_MOUSE_TOUCH_EVENTS for iPhone and iPad as well
Sam Lantinga b6f33a68 2019-04-05T07:51:11 https://bugzilla.libsdl.org/show_bug.cgi?id=4577 SDL_GetWindowDisplayMode was returning an incorrect result on iPhone Plus devices (tested on iOS 12.1/12.2). The problem was that the value returned by UIScreenMode was assumed to be the physical pixels on the display, rather than the scaled retina pixels. The fix is to use the scale returned by UIScreen.scale rather than the nativeScale.
Sylvain Becker 05333a6e 2019-04-05T09:16:30 Android: add hint SDL_HINT_ANDROID_BLOCK_ON_PAUSE to set whether the event loop will block itself when the app is paused.
Sylvain Becker b470cd9b 2019-04-05T08:36:31 Android: default SDL_HINT_MOUSE_TOUCH_EVENTS to 1 as previous behaviour
Sylvain Becker 6f732d4e 2019-04-04T20:24:22 Update WhatsNew.txt
Sylvain Becker 458c60e6 2019-04-04T20:10:55 Update WhatsNew.txt
Sylvain Becker bfdd0b22 2019-04-04T17:01:02 Android: remove SDL_HINT_ANDROID_SEPARATE_MOUSE_AND_TOUCH java layer runs as if separate mouse and touch was 1, Use SDL_HINT_MOUSE_TOUCH_EVENTS and SDL_HINT_TOUCH_MOUSE_EVENTS for generating synthetic touch/mouse events
Sylvain Becker e4157618 2019-04-04T16:51:50 Add hint SDL_HINT_MOUSE_TOUCH_EVENTS for mouse events to generate touch events controlling whether mouse events should generate synthetic touch events By default SDL will *not* generate touch events for mouse events
Sylvain Becker ab03892d 2019-04-04T15:19:00 Bug 4576: track both FingerId and TrackId
Sylvain Becker e39c0a1f 2019-04-03T10:14:42 Bug 4576: fix wrong scaling
Sylvain Becker 236b8606 2019-04-02T18:07:27 Bug 4576: one more warning
Sylvain Becker b45abbb2 2019-04-02T17:57:27 Bug 4576: fix warning and compile
Sylvain Becker 9b3c2258 2019-04-02T17:23:55 Bug 4576: remove touch/mouse duplication for Android
Sylvain Becker 9d28156f 2019-04-02T17:18:47 Bug 4576: remove touch/mouse duplication for IOS
Sylvain Becker 42de5f97 2019-04-02T17:13:22 Bug 4576: remove touch/mouse duplication for WinRT
Sylvain Becker b086edc9 2019-04-02T17:10:29 Bug 4576: remove touch/mouse duplication for Emscripten
Sylvain Becker b8e5c561 2019-04-02T17:07:54 Bug 4576: remove touch/mouse duplication for Wayland
Sylvain Becker 6bc2d9de 2019-04-02T17:03:58 Bug 4576: remove touch/mouse duplication for linux/EVDEV
Sylvain Becker 1a4c3b57 2019-04-02T16:58:11 Bug 4576: remove touch/mouse duplication for Windows
Sylvain Becker a3f2c446 2019-04-02T16:46:17 Bug 4576: handle mapping of TouchEvents to MouseEvents at higher level
Sam Lantinga 1febfedf 2019-04-02T05:31:08 configure.in: Rename configure.ac to fix an 'aclocal' warning
Sam Lantinga 9a8d5215 2019-03-27T08:17:05 Handle potentially calling SDL_JoystickUpdate() and SDL_JoystickQuit() at the same time.
Hugh McMaster 14b385f2 2019-03-27T20:58:33 docs: Replace references to configure.in with configure.ac
Ryan C. Gordon 2fbfe8b9 2019-03-25T12:59:30 coreaudio: Set audio callback thread priority. Fixes Bugzilla #4155.
Ryan C. Gordon 6a3356ab 2019-03-25T12:24:38 Backed out changeset cec31de4e126 This was meant to migrate CoreAudio onto the same SDL_RunAudio() path that most other audio drivers are on, but it introduced a bug because it doesn't deal with dropped audio buffers...and fixing that properly just introduces latency. I might revisit this later, perhaps by reworking SDL_RunAudio to allow for this sort of API better, or redesigning the whole subsystem or something, I don't know. I'm not super-thrilled that this has to exist outside of the usual codepaths, though. Fixes Bugzilla #4481.
Hugh McMaster af4bbb30 2019-03-25T23:01:32 configure.in: Rename to configure.ac to fix an 'aclocal' warning Also rename references in related files.
Ryan C. Gordon 8ab698af 2019-03-21T10:39:49 opengles2: Fix static analysis warning. Not clear if this could ever dereference NULL in real life, but better safe than sorry!
Sam Lantinga 01c924fa 2019-03-19T17:20:54 Hopefully fixed the mingw32 build
Sam Lantinga deb7d08c 2019-03-19T17:05:22 Fixed Visual Studio build
Sam Lantinga ac23d78f 2019-03-19T16:53:55 Didn't need to add SDL_windows.h include, that was already included
Sam Lantinga b2e76d86 2019-03-19T16:52:09 Fixed Windows RT build
Sam Lantinga a7148922 2019-03-19T11:02:43 Fixed archiving the SDL dynamic library on iOS and tvOS
Sam Lantinga a0ac5ffc 2019-03-19T10:59:41 Fixed building with C++
Sam Lantinga 03fc5eeb 2019-03-19T10:56:46 Fixed building with C++
Sam Lantinga 8177388e 2019-03-19T08:29:34 Fixed declaration of SDL_main_func for C++
Sam Lantinga 4d8ac6b8 2019-03-19T07:53:39 Added support for building SDL as a dynamic library on tvOS
Sam Lantinga de82759c 2019-03-19T07:53:33 Added support for building SDL as a dynamic library on iOS
Ryan C. Gordon edebdeb4 2019-03-17T12:45:19 testgesture: Make the background gray. This is so you can see it on systems that have a minimal window manager and a black background.
Ethan Lee f07c992b 2019-03-17T12:36:40 hidapi: Add GCN L/R buttons, just in case someone wants them...
Sam Lantinga 82ebe63f 2019-03-16T19:46:37 Fixed Visual Studio build
Sam Lantinga d49f1fae 2019-03-16T19:46:27 Fixed iOS build
Sam Lantinga cf7c05c2 2019-03-16T19:44:04 Fixed Mac OS X build
Sam Lantinga fd946a48 2019-03-16T19:32:59 Fixed configure error if pkg modules aren't available
Sebastian Krzyszkowiak 6311c7cf 2019-03-16T19:08:59 emscripten: force resize event when pixel ratio changes Without this, applications can't react to changed canvas size on window zoom.
Sam Lantinga b8bd0aa0 2019-03-16T19:07:34 Fixed bug 4450 - SDL_mouse.c fails to compile with CMake generated Visual Studio files if SDL_VIDEO_VULKAN 0/undefined Max Waine SDL_mouse.c, if compiled for Windows, requires GetDoubleClickTime to compile (available from winuser.h). Without Vulkan present this fails to compile as the include chain for winuser.h is the following. SDL_mouse.c -> SDL_sysvideo.h -> SDL_vulkan_internal.h -> SDL_windows.h -> windows.h -> winuser.h. Problem is that SDL_vulkan_internal.h doesn't include SDL_windows.h if Vulkan isn't present, so under MinGW/GCC it will give a -Wimplicit-function-declaration warning for GetDoubleClickTime, and under MSVC fails to compile completely. The solution to this would be to simplify the include chain: including SDL_windows.h under the same condition as GetDoubleClickTime (#ifdef __WIN32__) in SDL_mouse.c (or another file that isn't quite so indirectly included).
Sam Lantinga faf97978 2019-03-16T19:03:13 Fixed bug 4511 - SDL_gamecontrollerdb Mapping for Sony Playstation USB controller Renaud Lepage Simply submitting a new mapping.
Sam Lantinga 35255342 2019-03-16T18:48:21 Fixed bug 4525 - Fix crash in ALSA_HotplugThread caused by bad return value check Anthony Pesch Fix snd_device_name_hint return value check According to the ALSA documentation, snd_device_name_hint returns 0 on success, otherwise a negative error code. The code previously only considered -1 to be an error, which let other error codes through resulting in a segfault when hints (which was NULL) was dereferenced
Sam Lantinga 55f18d36 2019-03-16T18:45:10 Fixed bug 4544 - SDL2.m4 SDL2.framework patch made it impossible to fail detection Stian Skjelstad check if $sdl_framework is set, before checking if directory exists Patch that was merged here https://hg.libsdl.org/SDL/rev/ad4968de54ec made it impossible for the SDL2 detection to fail, since one of the if statements fails to check if a variable is set or not. if test -d $sdl_framework; then can evaluate to true in some shells. I guess it falls into undefined behaviour when looking at the POSIX standard.
Sam Lantinga 8bc59f87 2019-03-16T18:34:33 Fixed CVE-2019-7635 and bug 4498 - Heap-Buffer Overflow in Blit1to4 pertaining to SDL_blit_1.c Petr Pisar The root cause is that the POC BMP file declares 3 colors used and 4 bpp palette, but pixel at line 28 and column 1 (counted from 0) has color number 3. Then when the image loaded into a surface is passed to SDL_DisplayFormat(), in order to convert it to a video format, a used bliting function looks up a color number 3 in a 3-element long color bliting map. (The map obviously has the same number entries as the surface format has colors.) Proper fix should refuse broken BMP images that have a pixel with a color index higher than declared number of "used" colors. Possibly more advanced fix could try to relocate the out-of-range color index into a vacant index (if such exists).
Jimb Esser 0f148eb6 2019-03-16T18:12:26 Fix polling left trigger reporting right trigger's values.
Jimb Esser 58ca76be 2019-03-16T18:11:09 Fix DirectInput error codes being lost
Sam Lantinga 938a5508 2019-03-16T17:47:59 Fixed bug 4452 - Please replace AC_HELP_STRING with AS_HELP_STRING Hugh McMaster AC_HELP_STRING is deprecated and is considered an obsolete macro in autoconf 2.69. Please replace AC_HELP_STRING with AS_HELP_STRING.
Sam Lantinga 40e3c015 2019-03-16T17:39:15 Added missing PKG_CONFIG macros
Ryan C. Gordon 12c5cda6 2019-03-16T00:08:19 Fix compiler warnings.
Ryan C. Gordon 08dc8cc2 2019-03-15T23:54:42 testgesture: Add dependency to SDLtest to Visual Studio project.
Ryan C. Gordon 6727408d 2019-03-15T22:39:31 testgesture: cleaned up code formatting, etc.
Ryan C. Gordon 7cc0a606 2019-03-15T22:17:21 testgesture: minor cleanups.
Ryan C. Gordon 5897ed85 2019-03-15T22:16:02 test: Moved testgesture.c over to the common SDLtest framework.
Ryan C. Gordon f95ca7bb 2019-03-15T16:13:19 events: Disable all the signal-handling code on platforms without support. So on Windows, for example, this mostly becomes a few empty functions.
Ryan C. Gordon 8a5a05c1 2019-03-15T15:51:05 events: Let arbitrary signals to simulate iOS/Android backgrounding events. This lets you build a custom embedded device that roughly offers the "this process is going to the background NOW" semantics of SDL on a mobile device.
Ryan C. Gordon 911bf624 2019-03-15T14:08:30 events: Make debug logging of the event queue a hint instead of an #ifdef. This makes it easy to toggle it on when debugging a new platform (or just getting more visibility into an app) without having to rebuild SDL.
Sylvain Becker cbe80d47 2019-03-13T14:54:51 KMSDRM: valid file descriptors could positive or 0. -1 is invalid. (Bug 4530)
Sylvain Becker 3bc1a8b6 2019-03-13T14:08:21 Android: minor comment update
Sylvain Becker 063c0c2a 2019-03-13T09:39:30 Android: check SDL is initialized before sending the event Avoid error message: SDLActivity thread ends (error=Video subsystem has not been initialized)
Ethan Lee c5286156 2019-03-12T20:27:54 hidapi: Add support for Wii U/Switch USB GameCube controller adapter. Note that a single USB device is responsible for all 4 joysticks, so a large rewrite of the DeviceDriver functions was necessary to allow a single device to produce multiple joysticks.
Sam Lantinga 82758efc 2019-03-12T14:45:04 [iOS DAC] Fix touch events getting from SDL2 to source2.
Sam Lantinga d05eec72 2019-03-12T14:44:25 Fixed initial display orientation at Android app start
Sam Lantinga 1a8e3a02 2019-03-12T14:44:12 HIDAPI: fix bug that caused non-HID class parts of composite devices to have windows HID functions called on them.
Sylvain Becker cddb285c 2019-03-12T20:04:08 Fixed bug 4513 - Wayland, fix crash when remove event is sent (from Sebastian Krzyszkowiak)
Sylvain Becker 052b4f29 2019-03-12T14:20:37 SDL_EVDEV_kbd_init: uninitialized data for ioctl (Bug 4530) Only two chars are used but the full prototype is: int tioclinux(struct tty_struct *tty, unsigned long arg) ==5010== Syscall param ioctl(TIOCLINUX) points to uninitialised byte(s) ==5010== at 0x53E73C7: ioctl (syscall-template.S:78) ==5010== by 0x4A887DA: SDL_EVDEV_Init (SDL_evdev.c:163) ==5010== by 0x4A7D157: KMSDRM_VideoInit (SDL_kmsdrmvideo.c:509) ==5010== by 0x497D959: SDL_VideoInit_REAL (SDL_video.c:529) ==5010== by 0x487ACBC: SDL_InitSubSystem_REAL (SDL.c:171) ==5010== by 0x487B052: SDL_Init_REAL (SDL.c:256) ==5010== by 0x488F7D6: SDL_Init (SDL_dynapi_procs.h:85)
Sylvain Becker b28e956b 2019-03-12T07:59:53 Fixed bug 4542 - Image flipped vertically when rendering on texture Have to recompute viewport because projection/glOrtho is different wether rendering is on target texture or not
Sylvain Becker 28f54ee4 2019-03-11T15:31:46 SDL_MouseQuit(): clear mouse->cur_cursor (Bug 4530)
Sylvain Becker 7b275942 2019-03-11T15:27:42 KMSDRM: missing return value in VideoInit() (Bug 4530)
Sylvain Becker 3b49ee52 2019-03-11T15:22:40 KMSDRM: change calls free() to SDL_free() (Bug 4529)
Sylvain Becker 2fd4aee1 2019-02-23T09:36:56 Un-activate some routine on mips because they are slowers (Bug 4503)
Sylvain Becker 47fb781b 2019-02-22T09:30:45 BlitNtoN BlitNtoNKey: remove non-aligned word read/store (bpp 3<->4) (Bug 4503) Mips and (old) ARM doesn't allow word read/write when adress isn't 4bytes aligned. So just remove that.
Ryan C. Gordon 6fbe9e23 2019-02-19T23:46:54 raspberry: expose second display. This lets apps see and choose between both an HDMI and DSI-connected display, such as a television and the Pi Foundation's official touchscreen. It only exposes the second display if the hardware reports that it is connected.
Sylvain Becker 90a075d7 2019-02-18T22:48:14 Fix windows build
Sylvain Becker e9a7b697 2019-02-18T22:06:53 Fix bug 4053: Blit issues on Big Endian CPU
Sam Lantinga ea4c4cfc 2019-02-18T07:50:33 Fixed bug 4500 - Heap-Buffer Overflow in Map1toN pertaining to SDL_pixels.c Petr Pisar The reproducer has these data in BITMAPINFOHEADER: biSize = 40 biBitCount = 8 biClrUsed = 131075 SDL_LoadBMP_RW() function passes biBitCount as a color depth to SDL_CreateRGBSurface(), thus 256-color pallete is allocated. But then biClrUsed colors are read from a file and stored into the palette. SDL_LoadBMP_RW should report an error if biClrUsed is greater than 2^biBitCount.
Sylvain Becker afd1b3da 2019-02-17T16:20:23 Fix invalid memory access and optimise Blit_3or4_to_3or4__* Fix invalid write at last pixel of the surface: when surface has no padding (pitch == w * bpp) and bpp is 3 with Blit, no colorkey, and NO_ALPHA same or inverse rgb triplet Optimise by using int32 access: BGR24 -> ARGB8888 : faster x1.897875 (362405 -> 190953) RGB24 -> ABGR8888 : faster x1.660416 (363304 -> 218803) ABGR8888 -> RGB24 : faster x1.686319 (334962 -> 198635) ARGB8888 -> BGR24 : faster x1.691868 (324524 -> 191814) BGR24 -> RGB888 : faster x1.678459 (326811 -> 194709) BGR888 -> RGB24 : faster x1.731772 (327724 -> 189242) RGB24 -> BGR888 : faster x1.690989 (328916 -> 194511) RGB888 -> BGR24 : faster x1.698333 (326175 -> 192056)
Silent b6a45f1a 2019-02-14T20:46:58 Fixed DualShock 3 mapping
Sylvain Becker 1aa2ad2f 2019-02-09T17:40:32 Better naming for the blit permutation variables
Sylvain Becker f6a2ae60 2019-02-09T17:20:53 Faster blit colorkey or not, applied to bpp: 3->4 and 4->3 ===== BlitNtoNKey ======== ABGR8888 -> BGR24 : faster x3 (2168709 -> 562738) ABGR8888 -> RGB24 : faster x3 (2165055 -> 567458) ARGB8888 -> BGR24 : faster x3 (2169109 -> 564338) ARGB8888 -> RGB24 : faster x3 (2165266 -> 567081) BGR24 -> ABGR8888 : faster x3 (2997675 -> 891636) BGR24 -> ARGB8888 : faster x3 (2985449 -> 892028) BGR24 -> BGR888 : faster x3 (2961611 -> 891913) BGR24 -> BGRA8888 : faster x3 (3116305 -> 891534) BGR24 -> BGRX8888 : faster x3 (3179654 -> 896978) BGR24 -> RGB888 : faster x3 (2968191 -> 895112) BGR24 -> RGBA8888 : faster x3 (2998428 -> 893147) BGR24 -> RGBX8888 : faster x3 (2976529 -> 914853) BGR888 -> BGR24 : faster x3 (2161906 -> 563921) BGR888 -> RGB24 : faster x3 (2168228 -> 566634) BGRA8888 -> BGR24 : faster x4 (2270501 -> 561873) BGRA8888 -> RGB24 : faster x3 (2163179 -> 567330) BGRX8888 -> BGR24 : faster x3 (2162911 -> 562322) BGRX8888 -> RGB24 : faster x3 (2169617 -> 570927) RGB24 -> ABGR8888 : faster x3 (2977061 -> 925975) RGB24 -> ARGB8888 : faster x3 (2978148 -> 923680) RGB24 -> BGR888 : faster x3 (3001413 -> 935074) RGB24 -> BGRA8888 : faster x3 (2959003 -> 924096) RGB24 -> BGRX8888 : faster x3 (2965240 -> 927100) RGB24 -> RGB888 : faster x3 (2983921 -> 926063) RGB24 -> RGBA8888 : faster x3 (2963908 -> 925457) RGB24 -> RGBX8888 : faster x3 (2967957 -> 931700) RGB888 -> BGR24 : faster x3 (2173299 -> 563226) RGB888 -> RGB24 : faster x3 (2218374 -> 566164) RGBA8888 -> BGR24 : faster x3 (2166355 -> 561381) RGBA8888 -> RGB24 : faster x3 (2170322 -> 566729) RGBX8888 -> BGR24 : faster x3 (2168524 -> 564072) RGBX8888 -> RGB24 : faster x3 (2163680 -> 566956) ===== BlitNtoN ======== BGR24 -> BGRA8888 : faster x3 (2458958 -> 797557) BGR24 -> BGRX8888 : faster x3 (2486085 -> 797745) BGR24 -> RGBA8888 : faster x3 (2422116 -> 797637) BGR24 -> RGBX8888 : faster x3 (2454426 -> 799085) BGRA8888 -> BGR24 : faster x4 (2468206 -> 524486) BGRA8888 -> RGB24 : faster x4 (2463581 -> 525561) BGRX8888 -> BGR24 : faster x4 (2583355 -> 524468) BGRX8888 -> RGB24 : faster x4 (2477242 -> 524284) RGB24 -> BGRA8888 : faster x2 (2453414 -> 818415) RGB24 -> BGRX8888 : faster x3 (2414915 -> 800863) RGB24 -> RGBA8888 : faster x3 (2461114 -> 798148) RGB24 -> RGBX8888 : faster x3 (2400922 -> 799203) RGBA8888 -> BGR24 : faster x4 (2494472 -> 526428) RGBA8888 -> RGB24 : faster x4 (2462260 -> 526791) RGBX8888 -> BGR24 : faster x4 (2541115 -> 524390) RGBX8888 -> RGB24 : faster x4 (2469059 -> 525416)
Sylvain Becker 604b44f2 2019-02-08T17:15:30 Fix wrong access and simplify