Adds functions to derive R/G/B/A/Stencil/Depth sizes from GL formats instead of D3D.
TRAC #21906
Signed-off-by: Daniel Koch
Author: Shannon Woods
git-svn-id: https://angleproject.googlecode.com/svn/branches/dx11proto@1366 736b8ea6-26fd-11df-bfd4-992fa37f6226
diff --git a/src/libGLESv2/utilities.cpp b/src/libGLESv2/utilities.cpp
index 850fbdf..4651088 100644
--- a/src/libGLESv2/utilities.cpp
+++ b/src/libGLESv2/utilities.cpp
@@ -610,6 +610,124 @@
}
}
+unsigned int GetAlphaSize(GLenum colorFormat)
+{
+ switch (colorFormat)
+ {
+ case GL_RGBA16F_EXT:
+ return 16;
+ case GL_RGBA32F_EXT:
+ return 32;
+ case GL_RGBA4:
+ return 4;
+ case GL_RGBA8_OES:
+ case GL_BGRA8_EXT:
+ return 8;
+ case GL_RGB5_A1:
+ return 1;
+ case GL_RGB8_OES:
+ case GL_RGB565:
+ case GL_RGB32F_EXT:
+ case GL_RGB16F_EXT:
+ return 0;
+ default:
+ return 0;
+ }
+}
+
+unsigned int GetRedSize(GLenum colorFormat)
+{
+ switch (colorFormat)
+ {
+ case GL_RGBA16F_EXT:
+ case GL_RGB16F_EXT:
+ return 16;
+ case GL_RGBA32F_EXT:
+ case GL_RGB32F_EXT:
+ return 32;
+ case GL_RGBA4:
+ return 4;
+ case GL_RGBA8_OES:
+ case GL_BGRA8_EXT:
+ case GL_RGB8_OES:
+ return 8;
+ case GL_RGB5_A1:
+ case GL_RGB565:
+ return 5;
+ default:
+ return 0;
+ }
+}
+
+unsigned int GetGreenSize(GLenum colorFormat)
+{
+ switch (colorFormat)
+ {
+ case GL_RGBA16F_EXT:
+ case GL_RGB16F_EXT:
+ return 16;
+ case GL_RGBA32F_EXT:
+ case GL_RGB32F_EXT:
+ return 32;
+ case GL_RGBA4:
+ return 4;
+ case GL_RGBA8_OES:
+ case GL_BGRA8_EXT:
+ case GL_RGB8_OES:
+ return 8;
+ case GL_RGB5_A1:
+ return 5;
+ case GL_RGB565:
+ return 6;
+ default:
+ return 0;
+ }
+}
+
+unsigned int GetBlueSize(GLenum colorFormat)
+{
+ switch (colorFormat)
+ {
+ case GL_RGBA16F_EXT:
+ case GL_RGB16F_EXT:
+ return 16;
+ case GL_RGBA32F_EXT:
+ case GL_RGB32F_EXT:
+ return 32;
+ case GL_RGBA4:
+ return 4;
+ case GL_RGBA8_OES:
+ case GL_BGRA8_EXT:
+ case GL_RGB8_OES:
+ return 8;
+ case GL_RGB5_A1:
+ case GL_RGB565:
+ return 5;
+ default:
+ return 0;
+ }
+}
+
+unsigned int GetDepthSize(GLenum depthFormat)
+{
+ switch (depthFormat)
+ {
+ case GL_DEPTH_COMPONENT16: return 16;
+ case GL_DEPTH_COMPONENT32_OES: return 32;
+ case GL_DEPTH24_STENCIL8_OES: return 24;
+ default: return 0;
+ }
+}
+
+unsigned int GetStencilSize(GLenum stencilFormat)
+{
+ switch (stencilFormat)
+ {
+ case GL_DEPTH24_STENCIL8_OES: return 8;
+ default: return 0;
+ }
+}
+
}
namespace es2dx