Remove redundant FBO query methods.

Several query methods simply wrapped a NULL check with a default
return value. Most of these safety checks were unnecessary.

BUG=angle:660

Change-Id: I0ac6897f06be082c8efab8721920d1b51ba999ee
Reviewed-on: https://chromium-review.googlesource.com/205606
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
diff --git a/src/libGLESv2/libGLESv2.cpp b/src/libGLESv2/libGLESv2.cpp
index 012a0d9..f5cf7c3 100644
--- a/src/libGLESv2/libGLESv2.cpp
+++ b/src/libGLESv2/libGLESv2.cpp
@@ -2606,12 +2606,6 @@
             ASSERT(framebufferHandle != GL_INVALID_INDEX);
             gl::Framebuffer *framebuffer = context->getFramebuffer(framebufferHandle);
 
-            GLenum attachmentType;
-            GLuint attachmentHandle;
-            GLuint attachmentLevel;
-            GLuint attachmentLayer;
-            const gl::FramebufferAttachment *attachmentObject;
-
             if (framebufferHandle == 0)
             {
                 if (clientVersion < 3)
@@ -2622,25 +2616,8 @@
                 switch (attachment)
                 {
                   case GL_BACK:
-                    attachmentType = framebuffer->getColorbufferType(0);
-                    attachmentHandle = framebuffer->getColorbufferHandle(0);
-                    attachmentLevel = framebuffer->getColorbufferMipLevel(0);
-                    attachmentLayer = framebuffer->getColorbufferLayer(0);
-                    attachmentObject = framebuffer->getColorbuffer(0);
-                    break;
                   case GL_DEPTH:
-                    attachmentType = framebuffer->getDepthbufferType();
-                    attachmentHandle = framebuffer->getDepthbufferHandle();
-                    attachmentLevel = framebuffer->getDepthbufferMipLevel();
-                    attachmentLayer = framebuffer->getDepthbufferLayer();
-                    attachmentObject = framebuffer->getDepthbuffer();
-                    break;
                   case GL_STENCIL:
-                    attachmentType = framebuffer->getStencilbufferType();
-                    attachmentHandle = framebuffer->getStencilbufferHandle();
-                    attachmentLevel = framebuffer->getStencilbufferMipLevel();
-                    attachmentLayer = framebuffer->getStencilbufferLayer();
-                    attachmentObject = framebuffer->getStencilbuffer();
                     break;
                   default:
                     return gl::error(GL_INVALID_OPERATION);
@@ -2650,41 +2627,20 @@
             {
                 if (attachment >= GL_COLOR_ATTACHMENT0_EXT && attachment <= GL_COLOR_ATTACHMENT15_EXT)
                 {
-                    const unsigned int colorAttachment = (attachment - GL_COLOR_ATTACHMENT0_EXT);
-                    attachmentType = framebuffer->getColorbufferType(colorAttachment);
-                    attachmentHandle = framebuffer->getColorbufferHandle(colorAttachment);
-                    attachmentLevel = framebuffer->getColorbufferMipLevel(colorAttachment);
-                    attachmentLayer = framebuffer->getColorbufferLayer(colorAttachment);
-                    attachmentObject = framebuffer->getColorbuffer(colorAttachment);
+                    // Valid attachment query
                 }
                 else
                 {
                     switch (attachment)
                     {
                       case GL_DEPTH_ATTACHMENT:
-                        attachmentType = framebuffer->getDepthbufferType();
-                        attachmentHandle = framebuffer->getDepthbufferHandle();
-                        attachmentLevel = framebuffer->getDepthbufferMipLevel();
-                        attachmentLayer = framebuffer->getDepthbufferLayer();
-                        attachmentObject = framebuffer->getDepthbuffer();
-                        break;
                       case GL_STENCIL_ATTACHMENT:
-                        attachmentType = framebuffer->getStencilbufferType();
-                        attachmentHandle = framebuffer->getStencilbufferHandle();
-                        attachmentLevel = framebuffer->getStencilbufferMipLevel();
-                        attachmentLayer = framebuffer->getStencilbufferLayer();
-                        attachmentObject = framebuffer->getStencilbuffer();
                         break;
                       case GL_DEPTH_STENCIL_ATTACHMENT:
-                        if (framebuffer->getDepthbufferHandle() != framebuffer->getStencilbufferHandle())
+                        if (framebuffer->hasValidDepthStencil())
                         {
                             return gl::error(GL_INVALID_OPERATION);
                         }
-                        attachmentType = framebuffer->getDepthStencilbufferType();
-                        attachmentHandle = framebuffer->getDepthStencilbufferHandle();
-                        attachmentLevel = framebuffer->getDepthStencilbufferMipLevel();
-                        attachmentLayer = framebuffer->getDepthStencilbufferLayer();
-                        attachmentObject = framebuffer->getDepthStencilBuffer();
                         break;
                       default:
                         return gl::error(GL_INVALID_OPERATION);
@@ -2692,6 +2648,21 @@
                 }
             }
 
+            GLenum attachmentType = GL_NONE;
+            GLuint attachmentHandle = 0;
+            GLuint attachmentLevel = 0;
+            GLuint attachmentLayer = 0;
+
+            const gl::FramebufferAttachment *attachmentObject = framebuffer->getAttachment(attachment);
+
+            if (attachmentObject)
+            {
+                attachmentType = attachmentObject->type();
+                attachmentHandle = attachmentObject->id();
+                attachmentLevel = attachmentObject->mipLevel();
+                attachmentLayer = attachmentObject->layer();
+            }
+
             GLenum attachmentObjectType;   // Type category
             if (framebufferHandle == 0)
             {