Only allow renderable d3dformats to be flagged as rendertarget texstorage

Trac #19356
Issue=273
Signed-off-by: Nicolas Capens

git-svn-id: http://angleproject.googlecode.com/svn/trunk@928 736b8ea6-26fd-11df-bfd4-992fa37f6226
diff --git a/src/common/version.h b/src/common/version.h
index 69f6c07..399cdc6 100644
--- a/src/common/version.h
+++ b/src/common/version.h
@@ -1,7 +1,7 @@
 #define MAJOR_VERSION 1
 #define MINOR_VERSION 0
 #define BUILD_VERSION 0
-#define BUILD_REVISION 927
+#define BUILD_REVISION 928
 
 #define STRINGIFY(x) #x
 #define MACRO_STRINGIFY(x) STRINGIFY(x)
diff --git a/src/libGLESv2/Texture.cpp b/src/libGLESv2/Texture.cpp
index 7404b2a..1d4aa2a 100644
--- a/src/libGLESv2/Texture.cpp
+++ b/src/libGLESv2/Texture.cpp
@@ -1996,10 +1996,10 @@
     GLenum format = gl::ExtractFormat(internalformat);
     GLenum type = gl::ExtractType(internalformat);
     D3DFORMAT d3dfmt = ConvertTextureFormatType(format, type);
-    const bool renderable = (mUsage == GL_FRAMEBUFFER_ATTACHMENT_ANGLE);
+    const bool renderTarget = IsTextureFormatRenderable(d3dfmt) && (mUsage == GL_FRAMEBUFFER_ATTACHMENT_ANGLE);
 
     delete mTexStorage;
-    mTexStorage = new TextureStorage2D(levels, d3dfmt, width, height, renderable);
+    mTexStorage = new TextureStorage2D(levels, d3dfmt, width, height, renderTarget);
     mImmutable = true;
 
     for (int level = 0; level < levels; level++)
@@ -2154,10 +2154,10 @@
     GLsizei height = mImageArray[0].getHeight();
     GLint levels = creationLevels(width, height);
     D3DFORMAT format = mImageArray[0].getD3DFormat();
-    const bool renderable = (mUsage == GL_FRAMEBUFFER_ATTACHMENT_ANGLE);
+    const bool renderTarget = IsTextureFormatRenderable(format) && (mUsage == GL_FRAMEBUFFER_ATTACHMENT_ANGLE);
 
     delete mTexStorage;
-    mTexStorage = new TextureStorage2D(levels, format, width, height, renderable);
+    mTexStorage = new TextureStorage2D(levels, format, width, height, renderTarget);
     
     if (mTexStorage->isManaged())
     {
@@ -2631,10 +2631,10 @@
     GLsizei size = mImageArray[0][0].getWidth();
     GLint levels = creationLevels(size, 0);
     D3DFORMAT format = mImageArray[0][0].getD3DFormat();
-    const bool renderable = (mUsage == GL_FRAMEBUFFER_ATTACHMENT_ANGLE);
+    const bool renderTarget = IsTextureFormatRenderable(format) && (mUsage == GL_FRAMEBUFFER_ATTACHMENT_ANGLE);
 
     delete mTexStorage;
-    mTexStorage = new TextureStorageCubeMap(levels, format, size, renderable);
+    mTexStorage = new TextureStorageCubeMap(levels, format, size, renderTarget);
 
     if (mTexStorage->isManaged())
     {
@@ -2868,10 +2868,10 @@
     GLenum format = gl::ExtractFormat(internalformat);
     GLenum type = gl::ExtractType(internalformat);
     D3DFORMAT d3dfmt = ConvertTextureFormatType(format, type);
-    const bool renderable = (mUsage == GL_FRAMEBUFFER_ATTACHMENT_ANGLE);
+    const bool renderTarget = IsTextureFormatRenderable(d3dfmt) && (mUsage == GL_FRAMEBUFFER_ATTACHMENT_ANGLE);
 
     delete mTexStorage;
-    mTexStorage = new TextureStorageCubeMap(levels, d3dfmt, size, renderable);
+    mTexStorage = new TextureStorageCubeMap(levels, d3dfmt, size, renderTarget);
     mImmutable = true;
 
     for (int level = 0; level < levels; level++)