Support for BGR565 pixel format has been added, mainly for OpenGL ES renderer. OpenGL ES renderer now have new texture formats.
--HG-- extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/trunk%403619
This commit is contained in:
parent
e526b61873
commit
f2f1af2732
3 changed files with 43 additions and 20 deletions
|
@ -158,6 +158,9 @@ enum
|
|||
SDL_PIXELFORMAT_ARGB4444 =
|
||||
SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_ARGB,
|
||||
SDL_PACKEDLAYOUT_4444, 16, 2),
|
||||
SDL_PIXELFORMAT_ABGR4444 =
|
||||
SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_ABGR,
|
||||
SDL_PACKEDLAYOUT_4444, 16, 2),
|
||||
SDL_PIXELFORMAT_ARGB1555 =
|
||||
SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_ARGB,
|
||||
SDL_PACKEDLAYOUT_1555, 16, 2),
|
||||
|
@ -167,6 +170,9 @@ enum
|
|||
SDL_PIXELFORMAT_RGB565 =
|
||||
SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_XRGB,
|
||||
SDL_PACKEDLAYOUT_565, 16, 2),
|
||||
SDL_PIXELFORMAT_BGR565 =
|
||||
SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_XBGR,
|
||||
SDL_PACKEDLAYOUT_565, 16, 2),
|
||||
SDL_PIXELFORMAT_RGB24 =
|
||||
SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_ARRAYU8, SDL_ARRAYORDER_RGB, 0,
|
||||
24, 3),
|
||||
|
|
|
@ -72,6 +72,12 @@ SDL_PixelFormatEnumToMasks(Uint32 format, int *bpp, Uint32 * Rmask,
|
|||
masks[2] = 0x000003E0;
|
||||
masks[3] = 0x0000001F;
|
||||
break;
|
||||
case SDL_PACKEDLAYOUT_5551:
|
||||
masks[0] = 0x0000F800;
|
||||
masks[1] = 0x000007C0;
|
||||
masks[2] = 0x0000003E;
|
||||
masks[3] = 0x00000001;
|
||||
break;
|
||||
case SDL_PACKEDLAYOUT_565:
|
||||
masks[0] = 0x00000000;
|
||||
masks[1] = 0x0000F800;
|
||||
|
@ -90,6 +96,12 @@ SDL_PixelFormatEnumToMasks(Uint32 format, int *bpp, Uint32 * Rmask,
|
|||
masks[2] = 0x000FFC00;
|
||||
masks[3] = 0x000003FF;
|
||||
break;
|
||||
case SDL_PACKEDLAYOUT_1010102:
|
||||
masks[0] = 0xFFC00000;
|
||||
masks[1] = 0x003FF000;
|
||||
masks[2] = 0x00000FFC;
|
||||
masks[3] = 0x00000003;
|
||||
break;
|
||||
default:
|
||||
/* Unknown layout */
|
||||
return SDL_FALSE;
|
||||
|
@ -176,7 +188,12 @@ SDL_MasksToPixelFormatEnum(int bpp, Uint32 Rmask, Uint32 Gmask, Uint32 Bmask,
|
|||
break;
|
||||
case 16:
|
||||
switch (Rmask) {
|
||||
case 0x000F:
|
||||
return SDL_PIXELFORMAT_ABGR4444;
|
||||
case 0x001F:
|
||||
if (Gmask == 0x07E0) {
|
||||
return SDL_PIXELFORMAT_BGR565;
|
||||
}
|
||||
return SDL_PIXELFORMAT_ABGR1555;
|
||||
case 0x0F00:
|
||||
return SDL_PIXELFORMAT_ARGB4444;
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
#include "SDL_rect_c.h"
|
||||
#include "SDL_yuv_sw_c.h"
|
||||
|
||||
#ifdef __QNXNTO__
|
||||
#if defined(SDL_VIDEO_DRIVER_QNXGF) || defined(SDL_VIDEO_DRIVER_PHOTON)
|
||||
|
||||
/* Empty function stub to get OpenGL ES 1.0 support without */
|
||||
/* OpenGL ES extension GL_OES_draw_texture_supported */
|
||||
|
@ -110,9 +110,12 @@ SDL_RenderDriver GL_ES_RenderDriver = {
|
|||
(SDL_BLENDMODE_NONE | SDL_BLENDMODE_MASK |
|
||||
SDL_BLENDMODE_BLEND | SDL_BLENDMODE_ADD | SDL_BLENDMODE_MOD),
|
||||
(SDL_TEXTURESCALEMODE_NONE | SDL_TEXTURESCALEMODE_FAST |
|
||||
SDL_TEXTURESCALEMODE_SLOW), 2,
|
||||
SDL_TEXTURESCALEMODE_SLOW), 5,
|
||||
{
|
||||
/* OpenGL ES 1.x supported formats list */
|
||||
SDL_PIXELFORMAT_ABGR4444,
|
||||
SDL_PIXELFORMAT_ABGR1555,
|
||||
SDL_PIXELFORMAT_BGR565,
|
||||
SDL_PIXELFORMAT_BGR24,
|
||||
SDL_PIXELFORMAT_ABGR8888},
|
||||
0,
|
||||
|
@ -384,24 +387,21 @@ GLES_CreateTexture(SDL_Renderer * renderer, SDL_Texture * texture)
|
|||
format = GL_RGBA;
|
||||
type = GL_UNSIGNED_BYTE;
|
||||
break;
|
||||
/*
|
||||
These formats would be supported if SDL had the necessary pixel formats
|
||||
case SDL_PIXELFORMAT_BGR565:
|
||||
internalFormat = GL_RGB;
|
||||
format = GL_RGB;
|
||||
type = GL_UNSIGNED_SHORT_5_6_5;
|
||||
break;
|
||||
case SDL_PIXELFORMAT_ABGR5551:
|
||||
internalFormat = GL_RGBA;
|
||||
format = GL_RGBA;
|
||||
type = GL_UNSIGNED_SHORT_5_5_5_1;
|
||||
break;
|
||||
case SDL_PIXELFORMAT_ABGR4444:
|
||||
internalFormat = GL_RGBA;
|
||||
format = GL_RGBA;
|
||||
type = GL_UNSIGNED_SHORT_4_4_4_4;
|
||||
break;
|
||||
*/
|
||||
case SDL_PIXELFORMAT_BGR565:
|
||||
internalFormat = GL_RGB;
|
||||
format = GL_RGB;
|
||||
type = GL_UNSIGNED_SHORT_5_6_5;
|
||||
break;
|
||||
case SDL_PIXELFORMAT_ABGR1555:
|
||||
internalFormat = GL_RGBA;
|
||||
format = GL_RGBA;
|
||||
type = GL_UNSIGNED_SHORT_5_5_5_1;
|
||||
break;
|
||||
case SDL_PIXELFORMAT_ABGR4444:
|
||||
internalFormat = GL_RGBA;
|
||||
format = GL_RGBA;
|
||||
type = GL_UNSIGNED_SHORT_4_4_4_4;
|
||||
break;
|
||||
default:
|
||||
SDL_SetError("Unsupported texture format");
|
||||
return -1;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue