Reduce the number of TextureFormatCaps members.

Since GL has no notion of texture formats that can be used for different
types of textures, merge the TextureFormatCaps texture support members.

Also merge the various renderability members since the texture type is
enough to determine what type of renderable a format is.

BUG=angle:658

Change-Id: I7cba50b147fcca8f3880d65c06c57df9c65ed19c
Reviewed-on: https://chromium-review.googlesource.com/206830
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
diff --git a/src/libGLESv2/Context.cpp b/src/libGLESv2/Context.cpp
index 564e00a..10bd6f8 100644
--- a/src/libGLESv2/Context.cpp
+++ b/src/libGLESv2/Context.cpp
@@ -753,30 +753,25 @@
 
 void Context::setRenderbufferStorage(GLsizei width, GLsizei height, GLenum internalformat, GLsizei samples)
 {
-    const TextureCaps &formatCaps = getTextureCaps().get(internalformat);
+    ASSERT(getTextureCaps().get(internalformat).renderable);
 
     RenderbufferStorage *renderbuffer = NULL;
 
-    if (formatCaps.colorRendering)
-    {
-        renderbuffer = new gl::Colorbuffer(mRenderer,width, height, internalformat, samples);
-    }
-    else if (formatCaps.depthRendering && formatCaps.stencilRendering)
+    if (GetDepthBits(internalformat) > 0 && GetStencilBits(internalformat) > 0)
     {
         renderbuffer = new gl::DepthStencilbuffer(mRenderer, width, height, samples);
     }
-    else if (formatCaps.depthRendering)
+    else if (GetDepthBits(internalformat) > 0)
     {
         renderbuffer = new gl::Depthbuffer(mRenderer, width, height, samples);
     }
-    else if (formatCaps.stencilRendering)
+    else if (GetStencilBits(internalformat) > 0)
     {
         renderbuffer = new gl::Stencilbuffer(mRenderer, width, height, samples);
     }
     else
     {
-        UNREACHABLE();
-        return;
+        renderbuffer = new gl::Colorbuffer(mRenderer, width, height, internalformat, samples);
     }
 
     mState.getCurrentRenderbuffer()->setStorage(renderbuffer);