Implements support for renderable floating point textures.
TRAC #12909
Signed-off-by: Daniel Koch
Author: Shannon Woods
git-svn-id: https://angleproject.googlecode.com/svn/trunk@409 736b8ea6-26fd-11df-bfd4-992fa37f6226
diff --git a/src/libGLESv2/utilities.cpp b/src/libGLESv2/utilities.cpp
index 991361c..43126b6 100644
--- a/src/libGLESv2/utilities.cpp
+++ b/src/libGLESv2/utilities.cpp
@@ -226,6 +226,18 @@
}
}
+bool IsFloatingPoint(GLenum type)
+{
+ if (type == GL_FLOAT || type == GL_HALF_FLOAT_OES)
+ {
+ return true;
+ }
+ else
+ {
+ return false;
+ }
+}
+
// Returns the size, in bytes, of a single texel in an Image
int ComputePixelSize(GLenum format, GLenum type)
{
@@ -545,6 +557,10 @@
{
switch (colorFormat)
{
+ case D3DFMT_A16B16G16R16F:
+ return 16;
+ case D3DFMT_A32B32G32R32F:
+ return 32;
case D3DFMT_A2R10G10B10:
return 2;
case D3DFMT_A8R8G8B8:
@@ -564,6 +580,10 @@
{
switch (colorFormat)
{
+ case D3DFMT_A16B16G16R16F:
+ return 16;
+ case D3DFMT_A32B32G32R32F:
+ return 32;
case D3DFMT_A2R10G10B10:
return 10;
case D3DFMT_A8R8G8B8:
@@ -582,6 +602,10 @@
{
switch (colorFormat)
{
+ case D3DFMT_A16B16G16R16F:
+ return 16;
+ case D3DFMT_A32B32G32R32F:
+ return 32;
case D3DFMT_A2R10G10B10:
return 10;
case D3DFMT_A8R8G8B8:
@@ -601,6 +625,10 @@
{
switch (colorFormat)
{
+ case D3DFMT_A16B16G16R16F:
+ return 16;
+ case D3DFMT_A32B32G32R32F:
+ return 32;
case D3DFMT_A2R10G10B10:
return 10;
case D3DFMT_A8R8G8B8: