Adds BGRA packed sized internal formats
TRAC #21609
Signed-off-by: Daniel Koch
Author: Shannon Woods
git-svn-id: https://angleproject.googlecode.com/svn/trunk@1302 736b8ea6-26fd-11df-bfd4-992fa37f6226
diff --git a/src/libGLESv2/Context.h b/src/libGLESv2/Context.h
index d312918..55de48c 100644
--- a/src/libGLESv2/Context.h
+++ b/src/libGLESv2/Context.h
@@ -78,7 +78,10 @@
MAX_COMBINED_TEXTURE_IMAGE_UNITS_VTF = MAX_TEXTURE_IMAGE_UNITS + MAX_VERTEX_TEXTURE_IMAGE_UNITS_VTF,
MAX_FRAGMENT_UNIFORM_VECTORS_SM2 = 32 - 3, // Reserve space for dx_Coord, dx_Depth, and dx_DepthRange. dx_PointOrLines and dx_FrontCCW use separate bool registers.
MAX_FRAGMENT_UNIFORM_VECTORS_SM3 = 224 - 3,
- MAX_DRAW_BUFFERS = 1
+ MAX_DRAW_BUFFERS = 1,
+
+ GL_BGRA4_REV = 0x6ABC,
+ GL_BGR5_A1_REV = 0x6ABD
};
enum QueryType
diff --git a/src/libGLESv2/utilities.cpp b/src/libGLESv2/utilities.cpp
index 1dae681..761833d 100644
--- a/src/libGLESv2/utilities.cpp
+++ b/src/libGLESv2/utilities.cpp
@@ -312,6 +312,8 @@
case GL_RGBA32F_EXT: return sizeof(float) * 4;
case GL_RGBA16F_EXT: return sizeof(unsigned short) * 4;
case GL_BGRA8_EXT: return sizeof(unsigned char) * 4;
+ case GL_BGRA4_REV: return sizeof(unsigned short);
+ case GL_BGR5_A1_REV: return sizeof(unsigned short);
default: UNREACHABLE();
}
@@ -384,8 +386,9 @@
case GL_BGRA_EXT:
switch (type)
{
- // Are there sized internal formats for the packed BGRA types?
case GL_UNSIGNED_BYTE: return GL_BGRA8_EXT;
+ case GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT: return GL_BGRA4_REV;
+ case GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT: return GL_BGR5_A1_REV;
default: UNIMPLEMENTED();
}
break;