Remove the old single-color-attachment calls from gl::Framebuffer, preferring the new multiple-attachment versions.

TRAC #22656

Signed-off-by: Nicolas Capens
Signed-off-by: Shannon Woods
Author: Jamie Madill

git-svn-id: https://angleproject.googlecode.com/svn/branches/es3proto@2066 736b8ea6-26fd-11df-bfd4-992fa37f6226
diff --git a/src/libGLESv2/Context.cpp b/src/libGLESv2/Context.cpp
index c0756e1..c274091 100644
--- a/src/libGLESv2/Context.cpp
+++ b/src/libGLESv2/Context.cpp
@@ -1421,7 +1421,7 @@
       case GL_ALPHA_BITS:
         {
             gl::Framebuffer *framebuffer = getDrawFramebuffer();
-            gl::Renderbuffer *colorbuffer = framebuffer->getColorbuffer();
+            gl::Renderbuffer *colorbuffer = framebuffer->getFirstColorBuffer();
 
             if (colorbuffer)
             {
@@ -1867,7 +1867,8 @@
     {
         mask &= ~GL_COLOR_BUFFER_BIT;
 
-        if (framebufferObject->getColorbufferType() != GL_NONE)
+        // TODO: MRT clear
+        if (framebufferObject->getColorbufferType(0) != GL_NONE)
         {
             finalMask |= GL_COLOR_BUFFER_BIT;
         }
@@ -2142,6 +2143,11 @@
     return mRenderer->getMaxSupportedSamples();
 }
 
+unsigned int Context::getMaximumRenderTargets() const
+{
+    return mRenderer->getMaxRenderTargets();
+}
+
 bool Context::supportsEventQueries() const
 {
     return mSupportsEventQueries;
@@ -2270,7 +2276,7 @@
         return gl::error(GL_INVALID_OPERATION, false);
     }
 
-    Renderbuffer *renderbuffer = framebuffer->getColorbuffer();
+    Renderbuffer *renderbuffer = framebuffer->getReadColorbuffer();
     if (!renderbuffer)
     {
         return gl::error(GL_INVALID_OPERATION, false);
@@ -2618,6 +2624,7 @@
                               GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1,
                               GLbitfield mask)
 {
+    // TODO: mrt support for blit
     Framebuffer *readFramebuffer = getReadFramebuffer();
     Framebuffer *drawFramebuffer = getDrawFramebuffer();
 
@@ -2632,10 +2639,10 @@
         return gl::error(GL_INVALID_OPERATION);
     }
 
-    int readBufferWidth = readFramebuffer->getColorbuffer()->getWidth();
-    int readBufferHeight = readFramebuffer->getColorbuffer()->getHeight();
-    int drawBufferWidth = drawFramebuffer->getColorbuffer()->getWidth();
-    int drawBufferHeight = drawFramebuffer->getColorbuffer()->getHeight();
+    int readBufferWidth = readFramebuffer->getColorbuffer(0)->getWidth();
+    int readBufferHeight = readFramebuffer->getColorbuffer(0)->getHeight();
+    int drawBufferWidth = drawFramebuffer->getColorbuffer(0)->getWidth();
+    int drawBufferHeight = drawFramebuffer->getColorbuffer(0)->getHeight();
 
     Rectangle sourceRect;
     Rectangle destRect;
@@ -2794,12 +2801,12 @@
 
     if (mask & GL_COLOR_BUFFER_BIT)
     {
-        const bool validReadType = readFramebuffer->getColorbufferType() == GL_TEXTURE_2D ||
-            readFramebuffer->getColorbufferType() == GL_RENDERBUFFER;
-        const bool validDrawType = drawFramebuffer->getColorbufferType() == GL_TEXTURE_2D ||
-            drawFramebuffer->getColorbufferType() == GL_RENDERBUFFER;
+        const bool validReadType = readFramebuffer->getColorbufferType(0) == GL_TEXTURE_2D ||
+            readFramebuffer->getColorbufferType(0) == GL_RENDERBUFFER;
+        const bool validDrawType = drawFramebuffer->getColorbufferType(0) == GL_TEXTURE_2D ||
+            drawFramebuffer->getColorbufferType(0) == GL_RENDERBUFFER;
         if (!validReadType || !validDrawType ||
-            readFramebuffer->getColorbuffer()->getActualFormat() != drawFramebuffer->getColorbuffer()->getActualFormat())
+            readFramebuffer->getColorbuffer(0)->getActualFormat() != drawFramebuffer->getColorbuffer(0)->getActualFormat())
         {
             ERR("Color buffer format conversion in BlitFramebufferANGLE not supported by this implementation");
             return gl::error(GL_INVALID_OPERATION);