diff -r 63cc8dcc2ef9 include/SDL_pixels.h --- a/include/SDL_pixels.h Fri Oct 07 17:30:21 2016 -0700 +++ b/include/SDL_pixels.h Sat Oct 08 03:02:47 2016 +0200 @@ -259,6 +259,18 @@ SDL_PIXELFORMAT_ARGB2101010 = SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_ARGB, SDL_PACKEDLAYOUT_2101010, 32, 4), + SDL_PIXELFORMAT_RGBA32 = + SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_ARRAYU8, SDL_ARRAYORDER_RGBA, 0, + 32, 4), + SDL_PIXELFORMAT_ARGB32 = + SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_ARRAYU8, SDL_ARRAYORDER_ARGB, 0, + 32, 4), + SDL_PIXELFORMAT_BGRA32 = + SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_ARRAYU8, SDL_ARRAYORDER_BGRA, 0, + 32, 4), + SDL_PIXELFORMAT_ABGR32 = + SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_ARRAYU8, SDL_ARRAYORDER_ABGR, 0, + 32, 4), SDL_PIXELFORMAT_YV12 = /**< Planar mode: Y + V + U (3 planes) */ SDL_DEFINE_PIXELFOURCC('Y', 'V', '1', '2'), diff -r 63cc8dcc2ef9 src/video/SDL_pixels.c --- a/src/video/SDL_pixels.c Fri Oct 07 17:30:21 2016 -0700 +++ b/src/video/SDL_pixels.c Sat Oct 08 03:02:47 2016 +0200 @@ -117,6 +117,10 @@ CASE(SDL_PIXELFORMAT_ABGR8888) CASE(SDL_PIXELFORMAT_BGRA8888) CASE(SDL_PIXELFORMAT_ARGB2101010) + CASE(SDL_PIXELFORMAT_RGBA32) + CASE(SDL_PIXELFORMAT_ARGB32) + CASE(SDL_PIXELFORMAT_BGRA32) + CASE(SDL_PIXELFORMAT_ABGR32) CASE(SDL_PIXELFORMAT_YV12) CASE(SDL_PIXELFORMAT_IYUV) CASE(SDL_PIXELFORMAT_YUY2) @@ -176,6 +180,66 @@ return SDL_TRUE; } + if(format == SDL_PIXELFORMAT_RGBA32) { +#if SDL_BYTEORDER == SDL_BIG_ENDIAN + *Rmask = 0xff000000; + *Gmask = 0x00ff0000; + *Bmask = 0x0000ff00; + *Amask = 0x000000ff; +#else + *Rmask = 0x000000ff; + *Gmask = 0x0000ff00; + *Bmask = 0x00ff0000; + *Amask = 0xff000000; +#endif + return SDL_TRUE; + } + + if(format == SDL_PIXELFORMAT_ARGB32) { +#if SDL_BYTEORDER == SDL_BIG_ENDIAN + *Rmask = 0x00ff0000; + *Gmask = 0x0000ff00; + *Bmask = 0x000000ff; + *Amask = 0xff000000; +#else + *Rmask = 0x0000ff00; + *Gmask = 0x00ff0000; + *Bmask = 0xff000000; + *Amask = 0x000000ff; +#endif + return SDL_TRUE; + } + + if(format == SDL_PIXELFORMAT_BGRA32) { +#if SDL_BYTEORDER == SDL_BIG_ENDIAN + *Rmask = 0x0000ff00; + *Gmask = 0x00ff0000; + *Bmask = 0xff000000; + *Amask = 0x000000ff; +#else + *Rmask = 0x00ff0000; + *Gmask = 0x0000ff00; + *Bmask = 0x000000ff; + *Amask = 0xff000000; +#endif + return SDL_TRUE; + } + + if(format == SDL_PIXELFORMAT_ABGR32) { +#if SDL_BYTEORDER == SDL_BIG_ENDIAN + *Rmask = 0x000000ff; + *Gmask = 0x0000ff00; + *Bmask = 0x00ff0000; + *Amask = 0xff000000; +#else + *Rmask = 0xff000000; + *Gmask = 0x00ff0000; + *Bmask = 0x0000ff00; + *Amask = 0x000000ff; +#endif + return SDL_TRUE; + } + if (SDL_PIXELTYPE(format) != SDL_PIXELTYPE_PACKED8 && SDL_PIXELTYPE(format) != SDL_PIXELTYPE_PACKED16 && SDL_PIXELTYPE(format) != SDL_PIXELTYPE_PACKED32) {