src/video/SDL_blit_N.c


Log

Author Commit Date CI Message
Pierre Wendling 501a4991 2022-05-05T18:44:32 Add clang-format on/off comments where necessary. Comments were added in places where INDENT-ON/OFF comments are. Places like stdlib's asm don't need it as clang-format doesn't try to indent it.
Ozkan Sezer ee6bfcdd 2022-03-13T20:56:42 SDL_blit_N.c: removed duplicated const (fixes bug #5401)
Sam Lantinga 120c76c8 2022-01-03T09:40:00 Updated copyright for 2022
Sam Lantinga c2dd50a9 2021-11-12T08:28:02 Fixed whitespace
Sylvain 51345623 2021-03-11T20:06:09 Fixed bug 3727 - Blit from RGB555 to ARGB1555
Sam Lantinga 9130f7c3 2021-01-02T10:25:38 Updated copyright for 2021
Sam Lantinga cb361896 2020-12-09T07:16:22 Fixed bug 5235 - All internal sources should include SDL_assert.h Ryan C. Gordon We should really stick this in SDL_internal.h or something so it's always available.
James Legg e2dbed9c 2020-05-29T13:05:37 SDL_blit: Fix undefined bitshift operations Arithmatic operations promote Uint8 to signed int. If the top bit of a Uint8 is set, and it is left shifted 24 places, then the result is not representable in a signed 32 bit int. This would be undefined behaviour on systems where int is 32 bits.
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
Sam Lantinga a8780c6a 2020-01-16T20:49:25 Updated copyright date for 2020
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 7289e5e2 2019-10-27T15:22:28 Android: remove warning in blit_features "integer constant not in range of enumerated type 'enum blit_features'"
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 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
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>
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.
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
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)
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
Sylvain Becker 5ed30f84 2019-02-07T22:45:50 Some simplification of previous commit
Sylvain Becker 5fd22892 2019-02-07T22:03:30 Faster blit with CopyAlpha, no ColorKey Applied to following formats: ABGR8888 -> BGRA8888 : faster x3 (2727179 -> 704761) ABGR8888 -> RGBA8888 : faster x3 (2707808 -> 705309) ARGB8888 -> BGRA8888 : faster x3 (2745371 -> 712437) ARGB8888 -> RGBA8888 : faster x3 (2746230 -> 705236) BGRA8888 -> ABGR8888 : faster x3 (2745026 -> 707045) BGRA8888 -> ARGB8888 : faster x3 (2752760 -> 727373) BGRA8888 -> RGBA8888 : faster x3 (2769544 -> 704607) RGBA8888 -> ABGR8888 : faster x3 (2725058 -> 706669) RGBA8888 -> ARGB8888 : faster x3 (2704866 -> 707132) RGBA8888 -> BGRA8888 : faster x3 (2710351 -> 704615)
Sylvain Becker 704e62bb 2019-02-07T21:49:24 Code factorization of the pixel format permutation
Sylvain Becker 0a007a9b 2019-02-07T18:52:49 Fix wrong comment
Sylvain Becker e5192384 2019-02-07T18:51:14 Faster blit with no ColorKey Applied to following formats: ABGR8888 -> BGRX8888 : faster x5 (3177493 -> 630439) ABGR8888 -> RGBX8888 : faster x5 (3178104 -> 628925) ARGB8888 -> BGRX8888 : faster x4 (3141089 -> 629448) ARGB8888 -> RGBX8888 : faster x5 (3216413 -> 630465) BGR888 -> BGRA8888 : faster x4 (3145403 -> 637701) BGR888 -> BGRX8888 : faster x4 (3142106 -> 630144) BGR888 -> RGBA8888 : faster x4 (3202685 -> 649384) BGR888 -> RGBX8888 : faster x4 (3170617 -> 658670) BGRA8888 -> BGR888 : faster x4 (3203308 -> 657697) BGRA8888 -> RGB888 : faster x5 (3201475 -> 631747) BGRA8888 -> RGBX8888 : faster x5 (3274544 -> 630409) BGRX8888 -> ABGR8888 : faster x4 (3149753 -> 638682) BGRX8888 -> ARGB8888 : faster x5 (3164101 -> 631273) BGRX8888 -> BGR888 : faster x4 (3144454 -> 630712) BGRX8888 -> RGB888 : faster x4 (3160490 -> 638047) BGRX8888 -> RGBA8888 : faster x5 (3308988 -> 631232) BGRX8888 -> RGBX8888 : faster x5 (3216775 -> 638065) RGB888 -> BGRA8888 : faster x4 (3143135 -> 655146) RGB888 -> BGRX8888 : faster x4 (3141790 -> 653771) RGB888 -> RGBA8888 : faster x5 (3214402 -> 637001) RGB888 -> RGBX8888 : faster x4 (3143082 -> 630009) RGBA8888 -> BGR888 : faster x3 (3157048 -> 920375) RGBA8888 -> BGRX8888 : faster x5 (3196692 -> 632996) RGBA8888 -> RGB888 : faster x4 (3141570 -> 652151) RGBX8888 -> ABGR8888 : faster x5 (3175401 -> 631218) RGBX8888 -> ARGB8888 : faster x4 (3144690 -> 639440) RGBX8888 -> BGR888 : faster x4 (3144250 -> 630171) RGBX8888 -> BGRA8888 : faster x5 (3220321 -> 630731) RGBX8888 -> BGRX8888 : faster x4 (3178453 -> 637445) RGBX8888 -> RGB888 : faster x5 (3203623 -> 632596)
Sylvain Becker 7372295e 2019-02-07T17:52:28 Faster blit when using No Alpha or Set Alpha, + ColorKey Applied to following formats: ABGR8888 -> BGRX8888 : faster x4 (2794295 -> 610587) ABGR8888 -> RGB888 : faster x4 (2835693 -> 615561) ABGR8888 -> RGBX8888 : faster x4 (2880475 -> 610479) ARGB8888 -> BGR888 : faster x4 (2802718 -> 610702) ARGB8888 -> BGRX8888 : faster x4 (2792481 -> 606311) ARGB8888 -> RGBX8888 : faster x4 (2821621 -> 624745) BGR888 -> ARGB8888 : faster x4 (2791705 -> 637889) BGR888 -> BGRA8888 : faster x4 (2793195 -> 652299) BGR888 -> BGRX8888 : faster x4 (2800713 -> 609326) BGR888 -> RGB888 : faster x4 (2812260 -> 610471) BGR888 -> RGBA8888 : faster x4 (2792327 -> 629288) BGR888 -> RGBX8888 : faster x4 (2799224 -> 607073) BGRA8888 -> BGR888 : faster x4 (2800520 -> 606897) BGRA8888 -> RGB888 : faster x4 (2825274 -> 616156) BGRA8888 -> RGBX8888 : faster x4 (2812530 -> 610340) BGRX8888 -> ABGR8888 : faster x4 (2793940 -> 628596) BGRX8888 -> ARGB8888 : faster x4 (2822686 -> 638899) BGRX8888 -> BGR888 : faster x4 (2818141 -> 613659) BGRX8888 -> RGB888 : faster x4 (2929017 -> 611794) BGRX8888 -> RGBA8888 : faster x4 (2799709 -> 629750) BGRX8888 -> RGBX8888 : faster x4 (2911010 -> 605640) RGB888 -> ABGR8888 : faster x4 (2800671 -> 631542) RGB888 -> BGR888 : faster x4 (2802644 -> 604461) RGB888 -> BGRA8888 : faster x4 (2801919 -> 628729) RGB888 -> BGRX8888 : faster x4 (2938244 -> 604135) RGB888 -> RGBA8888 : faster x4 (2912447 -> 642185) RGB888 -> RGBX8888 : faster x4 (2831676 -> 634293) RGBA8888 -> BGR888 : faster x4 (2928896 -> 614960) RGBA8888 -> BGRX8888 : faster x4 (2821422 -> 608146) RGBA8888 -> RGB888 : faster x4 (2825927 -> 617184) RGBX8888 -> ABGR8888 : faster x4 (2803852 -> 654129) RGBX8888 -> ARGB8888 : faster x4 (2923615 -> 642644) RGBX8888 -> BGR888 : faster x4 (2806523 -> 610447) RGBX8888 -> BGRA8888 : faster x4 (2813388 -> 630305) RGBX8888 -> BGRX8888 : faster x4 (2800052 -> 607881) RGBX8888 -> RGB888 : faster x4 (2807722 -> 610263)
Sylvain Becker bb9a9080 2019-02-07T16:13:25 Fix pointer warnings
Sylvain Becker 3543a44a 2019-02-07T15:12:17 Faster blit when using CopyAlpha + ColorKey Applied to following formats: ABGR8888 -> ARGB8888 : faster x7 (3959672 -> 537227) ABGR8888 -> BGRA8888 : faster x7 (4008716 -> 532064) ABGR8888 -> RGBA8888 : faster x7 (3998576 -> 530964) ARGB8888 -> ABGR8888 : faster x7 (3942420 -> 532503) ARGB8888 -> BGRA8888 : faster x7 (3995382 -> 527722) ARGB8888 -> RGBA8888 : faster x7 (4259330 -> 543033) BGRA8888 -> ABGR8888 : faster x7 (4110411 -> 529402) BGRA8888 -> ARGB8888 : faster x7 (4071906 -> 538393) BGRA8888 -> RGBA8888 : faster x6 (4038320 -> 585141) RGBA8888 -> ABGR8888 : faster x7 (3937018 -> 534127) RGBA8888 -> ARGB8888 : faster x7 (3979577 -> 537810) RGBA8888 -> BGRA8888 : faster x7 (3975656 -> 528355)
Sylvain Becker 7b8bac59 2019-01-30T22:50:20 Add fast paths in BlitNtoNKey All following conversions are faster (with colorkey, but no blending). (ratio isn't very accurate) ABGR8888 -> BGR888 : faster x9 (2699035 -> 297425) ARGB8888 -> RGB888 : faster x8 (2659266 -> 296137) BGR24 -> BGR24 : faster x5 (2232482 -> 445897) BGR24 -> RGB24 : faster x4 (2150023 -> 448576) BGR888 -> ABGR8888 : faster x8 (2649957 -> 307595) BGRA8888 -> BGRX8888 : faster x9 (2696041 -> 297596) BGRX8888 -> BGRA8888 : faster x8 (2662011 -> 299463) BGRX8888 -> BGRX8888 : faster x9 (2733346 -> 295045) RGB24 -> BGR24 : faster x4 (2154551 -> 485262) RGB24 -> RGB24 : faster x4 (2149878 -> 484870) RGB888 -> ARGB8888 : faster x8 (2762877 -> 324946) RGBA8888 -> RGBX8888 : faster x8 (2657855 -> 297753) RGBX8888 -> RGBA8888 : faster x8 (2661360 -> 296655) RGBX8888 -> RGBX8888 : faster x8 (2649287 -> 308268)
Sylvain Becker a052d81b 2019-01-30T15:31:07 Add explicit unsigned int and char types in (for bug 4290)
Sylvain Becker 1128d573 2019-01-30T15:23:33 Fixed bug 4290 - add fastpaths for format conversion in BlitNtoN All following conversion are faster (no colorkey, no blending). (ratio isn't very accurate) ABGR8888 -> ARGB8888 : faster x6 (2655837 -> 416607) ABGR8888 -> BGR24 : faster x7 (2470117 -> 325693) ABGR8888 -> RGB24 : faster x7 (2478107 -> 335445) ABGR8888 -> RGB888 : faster x9 (3178524 -> 333859) ARGB8888 -> ABGR8888 : faster x6 (2648366 -> 406977) ARGB8888 -> BGR24 : faster x7 (2474978 -> 327819) ARGB8888 -> BGR888 : faster x9 (3189072 -> 326710) ARGB8888 -> RGB24 : faster x7 (2473689 -> 324729) BGR24 -> ABGR8888 : faster x6 (2268763 -> 359946) BGR24 -> ARGB8888 : faster x6 (2306393 -> 359213) BGR24 -> BGR888 : faster x6 (2231141 -> 324195) BGR24 -> RGB24 : faster x4 (1557835 -> 322033) BGR24 -> RGB888 : faster x6 (2229854 -> 323849) BGR888 -> ARGB8888 : faster x8 (3215202 -> 363137) BGR888 -> BGR24 : faster x7 (2474775 -> 347916) BGR888 -> RGB24 : faster x7 (2532783 -> 327354) BGR888 -> RGB888 : faster x9 (3134634 -> 344987) RGB24 -> ABGR8888 : faster x6 (2229486 -> 358919) RGB24 -> ARGB8888 : faster x6 (2271587 -> 358521) RGB24 -> BGR24 : faster x4 (1530913 -> 321149) RGB24 -> BGR888 : faster x6 (2227284 -> 327453) RGB24 -> RGB888 : faster x6 (2227125 -> 329061) RGB888 -> ABGR8888 : faster x8 (3163292 -> 362445) RGB888 -> BGR24 : faster x7 (2469489 -> 327127) RGB888 -> BGR888 : faster x9 (3190526 -> 326022) RGB888 -> RGB24 : faster x7 (2479084 -> 324982)
Sam Lantinga 5e13087b 2019-01-04T22:01:14 Updated copyright for 2019
Sam Lantinga 6e35e421 2018-10-01T14:43:03 Working on bug 3921 - Add some Fastpath to BlitNtoNKey and BlitNtoNKeyCopyAlpha Sylvain I did various benches. with clang 6.0.0 on linux, and ndk-r16b on android (NDK_TOOLCHAIN_VERSION=clang). - still see a x10 speed factor. - with duff_loops, it does not use vectorisation (but doesn't seem to be a problem). on linux my patch is already at full speed on -O2, whereas the duff_loops need -O3 (200 ms at -03, and 300ms at -02). I realized that on Android, I had a slight variation which fits best. both on linux with -O2 and -O3, and on android with 02/03 and armeabi-v7a/arm64. Here's the patch.
Ozkan Sezer 922623e1 2018-10-01T21:29:11 SDL_blit_N.c (BlitNtoNKeyCopyAlpha): fix -Wshadow warnings by adding _ suffix to the temp Pixel local in the DUFFS_LOOP. SDL_blit.h (ASSEMBLE_RGB): add _ prefix to temp Pixel locals to avoid any possible shadowings. The warnings were like the following: In file included from src/video/SDL_blit_N.c:26:0: src/video/SDL_blit_N.c: In function 'BlitNtoNKeyCopyAlpha': src/video/SDL_blit_N.c:2421:24: warning: declaration of 'Pixel' shadows a previous local [-Wshadow] Uint32 Pixel = ((*src32 & rgbmask) == ckey) ? *dst32 : *src32; ^ src/video/SDL_blit.h:475:21: note: in definition of macro 'DUFFS_LOOP8' case 0: do { pixel_copy_increment; /* fallthrough */ \ ^ src/video/SDL_blit_N.c:2419:13: note: in expansion of macro 'DUFFS_LOOP' DUFFS_LOOP( ^ src/video/SDL_blit_N.c:2399:12: warning: shadowed declaration is here [-Wshadow] Uint32 Pixel; ^
Sam Lantinga 7df0f4fd 2018-09-27T14:56:29 Fixed bug 4277 - warnings patch Sylvain Patch a few warnings when using: -Wmissing-prototypes -Wdocumentation -Wdocumentation-unknown-command They are automatically enabled with -Wall
Sam Lantinga e3cc5b2c 2018-01-03T10:03:25 Updated copyright for 2018
Philipp Wiesemann e5d9b25d 2017-02-26T21:20:39 Fixed comment style.
Sam Lantinga 45b774e3 2017-01-01T18:33:28 Updated copyright for 2017
Sam Lantinga 818d1d3e 2016-11-15T01:30:08 Fixed bug 1646 - Warnings from clang with -Weverything
Sam Lantinga 39ba2ab8 2016-10-22T17:53:03 Fixed NULL pointer dereference, thanks Ozkan Sezer
Sam Lantinga 5b14a943 2016-10-22T11:01:55 Fixed bug 3466 - Can't build 2.0.5 on ppc64 /home/fedora/SDL2-2.0.5/src/video/SDL_blit_N.c: In function 'calc_swizzle32': /home/fedora/SDL2-2.0.5/src/video/SDL_blit_N.c:127:5: error: ISO C90 forbids mixed declarations and code [-Werror=declaration-after-statement] const vector unsigned char plus = VECUINT8_LITERAL(0x00, 0x00, 0x00, 0x00, ^
Sam Lantinga 42065e78 2016-01-02T10:10:34 Updated copyright to 2016
Philipp Wiesemann 0e45984f 2015-06-21T17:33:46 Fixed crash if initialization of EGL failed but was tried again later. The internal function SDL_EGL_LoadLibrary() did not delete and remove a mostly uninitialized data structure if loading the library first failed. A later try to use EGL then skipped initialization and assumed it was previously successful because the data structure now already existed. This led to at least one crash in the internal function SDL_EGL_ChooseConfig() because a NULL pointer was dereferenced to make a call to eglBindAPI().
Sam Lantinga 2c4a6ea0 2015-05-26T06:27:46 Updated the copyright year to 2015
Sam Lantinga 74d83ead 2015-05-04T21:47:40 Fixed bug 2976 - Fix RGBA<->RGBA blit that was broken with the optimization from Bug 11 id.zeta The optimization from Bug 11 added a code branch on cases where the source RGB masks match the destination RGB masks and a optimized blit function Blit4to4MaskAlpha that always overrides the source alpha info would be chosen. Unfortunately, the branch also errorneously took over the RGBA<->RGBA blitting cases where the source alpha info should be copied, while they would instead get overriden in Blit4to4MaskAlpha. The attached patch fixes that by handling the RGBA<->RGBA cases correctly in that branch with the original BlitNtoNCopyAlpha as well as uses an optimized Blit4to4CopyAlpha along the same vein.
Ryan C. Gordon b72938c8 2015-04-20T12:22:44 Windows: Always set the system timer resolution to 1ms by default. An existing hint lets apps that don't need the timer resolution changed avoid this, to save battery, etc, but this fixes several problems in timing, audio callbacks not firing fast enough, etc. Fixes Bugzilla #2944.
Alex Szpakowski fe6c797c 2015-04-10T23:30:31 Fixed an iOS view orientation issue when SDL_GL_CreateContext or SDL_CreateRenderer is called.
Edward Rudd b88ca1b4 2015-02-10T16:28:56 the last parameter of XChangeProperty is the number of elements.. and when the element format is 32.. the element is "long" so we have 5 long elements here. Yes this seems confusing as on mac+linux Long is either 32 or 64bits depending on the architecture, but this is how the X11 protocol is defined. Thus 5 is the correct value for the nelts here. Not 5 or 10 depending on the architecture. More info on the confusion https://bugs.freedesktop.org/show_bug.cgi?id=16802
Philipp Wiesemann b48e54aa 2015-01-26T22:00:29 Fixed bug 2802 - [patch] Fix android build compiling in wrong filesystem implementation Jonas Kulla The configure script didn't differentiate between Linux and Android, unconditionally compiling in the unix implementation of SDL_sysfilesystem.c. I'm probably one of the very few people building SDL for android using classic configure + standalone toolchain, so this has gone undetected all along.
David Ludwig 70438be2 2014-12-03T10:55:23 WinRT: fixed bug whereby SDL would override an app's default orientation WinRT apps can set a default, preferred orientation via a .appxmanifest file. SDL was overriding this on app startup, and making the app use all possible orientations (landscape and portrait). Thanks to Eric Wing for the heads up on this!
Philipp Wiesemann 9c398852 2014-11-22T22:20:40 Corrected header file documentation comment.
Pierre-Loup A. Griffais 24c86b55 2014-09-11T19:24:42 [X11] Reconcile logical keyboard state with physical state on FocusIn since the window system doesn't do it for us like other platforms. This prevents sticky keys and missed keys when going in and out of focus, for example Alt would appear to stick if switching away from an SDL app with Alt-Tab and had to be pressed again. CR: Sam
David Ludwig 3dcb451f 2014-04-09T21:29:19 Added a README file regarding WinRT support To note, this file is currently formatted with CRLF line endings, rather than LF, to allow the file to be viewed with Notepad.
Sam Lantinga 58edac3e 2014-02-02T00:53:27 Fixed bug 2374 - Update copyright for 2014... Is it that time already??
Gabriel Jacobo f848adff 2013-11-29T10:06:08 Improve Android pause/resume behavior.
Ryan C. Gordon 7e1289af 2013-11-24T23:56:17 Make internal SDL sources include SDL_internal.h instead of SDL_config.h The new header will include SDL_config.h, but allows for other global stuff.
Gabriel Jacobo dad42067 2013-08-12T11:13:50 Fixes #2022, do not resume on Android when surfaceChanged If the app is in landscape mode and the user presses the power button, a pause is followed immediately by a surfaceChanged event because the lock screen is shown in portrait mode. This triggers a "false" resume. So, we just pause and resume following the onWindowFocusChanged events. Also, wait for SDL_APP_WILLENTERBACKGROUND and SDL_APP_DIDENTERBACKGROUND before blocking the event pump.
Sam Lantinga 1ad936eb 2013-08-11T19:56:43 Fixed bug 2027 - Full-screen appears to be broken - hang in SDL_DestroyWindow() Rainer Deyke I'm running Linux Mint 15 with the Cinnamon window manager. SDL_DestroyWindow consistently locks up for me when the window if fullscreen.