Revert "Add sizeInBytes to GrResource, make GrRenderTarget aware of its pixel config (r1951)"

Temporarily revert this change in order to roll other changes into Chrome.

TBR=bsalomon@google.com

Review URL: http://codereview.appspot.com/4807051

git-svn-id: http://skia.googlecode.com/svn/trunk@1958 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/gpu/src/GrBufferAllocPool.cpp b/gpu/src/GrBufferAllocPool.cpp
index 4255632..5e9dbea 100644
--- a/gpu/src/GrBufferAllocPool.cpp
+++ b/gpu/src/GrBufferAllocPool.cpp
@@ -111,7 +111,7 @@
         if (block.fBuffer->isLocked()) {
             block.fBuffer->unlock();
         } else {
-            size_t flushSize = block.fBuffer->sizeInBytes() - block.fBytesFree;
+            size_t flushSize = block.fBuffer->size() - block.fBytesFree;
             flushCpuData(fBlocks.back().fBuffer, flushSize);
         }
         fBufferPtr = NULL;
@@ -137,7 +137,7 @@
         GrAssert(!fBlocks[i].fBuffer->isLocked());
     }
     for (int i = 0; i < fBlocks.count(); ++i) {
-        size_t bytes = fBlocks[i].fBuffer->sizeInBytes() - fBlocks[i].fBytesFree; 
+        size_t bytes = fBlocks[i].fBuffer->size() - fBlocks[i].fBytesFree; 
         bytesInUse += bytes;
         GrAssert(bytes || unusedBlockAllowed);
     }
@@ -163,7 +163,7 @@
 
     if (NULL != fBufferPtr) {
         BufferBlock& back = fBlocks.back();
-        size_t usedBytes = back.fBuffer->sizeInBytes() - back.fBytesFree;
+        size_t usedBytes = back.fBuffer->size() - back.fBytesFree;
         size_t pad = GrSizeAlignUpPad(usedBytes,
                                       alignment);
         if ((size + pad) <= back.fBytesFree) {
@@ -199,7 +199,7 @@
     VALIDATE();
     if (NULL != fBufferPtr) {
         const BufferBlock& back = fBlocks.back();
-        size_t usedBytes = back.fBuffer->sizeInBytes() - back.fBytesFree;
+        size_t usedBytes = back.fBuffer->size() - back.fBytesFree;
         size_t pad = GrSizeAlignUpPad(usedBytes, itemSize);
         return (back.fBytesFree - pad) / itemSize;
     } else if (fPreallocBuffersInUse < fPreallocBuffers.count()) {
@@ -223,7 +223,7 @@
         // caller shouldnt try to put back more than they've taken
         GrAssert(!fBlocks.empty());
         BufferBlock& block = fBlocks.back();
-        size_t bytesUsed = block.fBuffer->sizeInBytes() - block.fBytesFree;
+        size_t bytesUsed = block.fBuffer->size() - block.fBytesFree;
         if (bytes >= bytesUsed) {
             bytes -= bytesUsed;
             fBytesInUse -= bytesUsed;
@@ -271,7 +271,7 @@
             prev.fBuffer->unlock();
         } else {
             flushCpuData(prev.fBuffer,
-                         prev.fBuffer->sizeInBytes() - prev.fBytesFree);
+                         prev.fBuffer->size() - prev.fBytesFree);
         }
         fBufferPtr = NULL;
     }
@@ -317,7 +317,7 @@
     GrAssert(NULL != buffer);
     GrAssert(!buffer->isLocked());
     GrAssert(fCpuData.get() == fBufferPtr);
-    GrAssert(flushSize <= buffer->sizeInBytes());
+    GrAssert(flushSize <= buffer->size());
 
     bool updated = false;
     if (fGpu->supportsBufferLocking() &&
diff --git a/gpu/src/GrDrawTarget.cpp b/gpu/src/GrDrawTarget.cpp
index e4f0769..1e8761f 100644
--- a/gpu/src/GrDrawTarget.cpp
+++ b/gpu/src/GrDrawTarget.cpp
@@ -641,7 +641,7 @@
             maxValidVertex = geoSrc.fVertexCount;
             break;
         case kBuffer_GeometrySrcType:
-            maxValidVertex = geoSrc.fVertexBuffer->sizeInBytes() /
+            maxValidVertex = geoSrc.fVertexBuffer->size() / 
                              VertexSize(geoSrc.fVertexLayout);
             break;
     }
@@ -658,7 +658,7 @@
             maxValidIndex = geoSrc.fIndexCount;
             break;
         case kBuffer_GeometrySrcType:
-            maxValidIndex = geoSrc.fIndexBuffer->sizeInBytes() / sizeof(uint16_t);
+            maxValidIndex = geoSrc.fIndexBuffer->size() / sizeof(uint16_t);
             break;
     }
     if (maxIndex > maxValidIndex) {
@@ -685,7 +685,7 @@
             maxValidVertex = geoSrc.fVertexCount;
             break;
         case kBuffer_GeometrySrcType:
-            maxValidVertex = geoSrc.fVertexBuffer->sizeInBytes() /
+            maxValidVertex = geoSrc.fVertexBuffer->size() / 
             VertexSize(geoSrc.fVertexLayout);
             break;
     }
diff --git a/gpu/src/GrGLIndexBuffer.cpp b/gpu/src/GrGLIndexBuffer.cpp
index 579311a..1d3f893 100644
--- a/gpu/src/GrGLIndexBuffer.cpp
+++ b/gpu/src/GrGLIndexBuffer.cpp
@@ -59,8 +59,8 @@
     if (GPUGL->supportsBufferLocking()) {
         this->bind();
         // Let driver know it can discard the old data
-        GR_GL(BufferData(GR_GL_ELEMENT_ARRAY_BUFFER, this->sizeInBytes(), NULL,
-                         this->dynamic() ? GR_GL_DYNAMIC_DRAW : GR_GL_STATIC_DRAW));
+        GR_GL(BufferData(GR_GL_ELEMENT_ARRAY_BUFFER, size(), NULL,
+                         dynamic() ? GR_GL_DYNAMIC_DRAW : GR_GL_STATIC_DRAW));
         fLockPtr = GR_GL(MapBuffer(GR_GL_ELEMENT_ARRAY_BUFFER, GR_GL_WRITE_ONLY));
 
         return fLockPtr;
@@ -98,16 +98,16 @@
 bool GrGLIndexBuffer::updateData(const void* src, size_t srcSizeInBytes) {
     GrAssert(fBufferID);
     GrAssert(!isLocked());
-    if (srcSizeInBytes > this->sizeInBytes()) {
+    if (srcSizeInBytes > size()) {
         return false;
     }
     this->bind();
     GrGLenum usage = dynamic() ? GR_GL_DYNAMIC_DRAW : GR_GL_STATIC_DRAW;
-    if (this->sizeInBytes() == srcSizeInBytes) {
+    if (size() == srcSizeInBytes) {
         GR_GL(BufferData(GR_GL_ELEMENT_ARRAY_BUFFER, srcSizeInBytes, src, usage));
     } else {
 #if GR_GL_USE_BUFFER_DATA_NULL_HINT
-        GR_GL(BufferData(GR_GL_ELEMENT_ARRAY_BUFFER, this->sizeInBytes(), NULL, usage));
+        GR_GL(BufferData(GR_GL_ELEMENT_ARRAY_BUFFER, size(), NULL, usage));
 #endif
         GR_GL(BufferSubData(GR_GL_ELEMENT_ARRAY_BUFFER, 0, srcSizeInBytes, src));
     }
@@ -119,7 +119,7 @@
                                     size_t offset) {
     GrAssert(fBufferID);
     GrAssert(!isLocked());
-    if (srcSizeInBytes + offset > this->sizeInBytes()) {
+    if (srcSizeInBytes + offset > size()) {
         return false;
     }
     this->bind();
diff --git a/gpu/src/GrGLInterface.cpp b/gpu/src/GrGLInterface.cpp
index 68d058d..2237474 100644
--- a/gpu/src/GrGLInterface.cpp
+++ b/gpu/src/GrGLInterface.cpp
@@ -236,8 +236,6 @@
         NULL == fDeleteRenderbuffers ||
         NULL == fFramebufferRenderbuffer ||
         NULL == fFramebufferTexture2D ||
-        NULL == fGetFramebufferAttachmentParameteriv ||
-        NULL == fGetRenderbufferParameteriv ||
         NULL == fGenFramebuffers ||
         NULL == fGenRenderbuffers ||
         NULL == fRenderbufferStorage) {
@@ -312,11 +310,9 @@
 
     // part of desktop GL
     if (kDesktop_GrGLBinding == fBindingsExported &&
-        (NULL == fLineWidth ||
-         NULL == fGetTexLevelParameteriv)) {
+        NULL == fLineWidth) {
         return false;
     }
-
     // FBO MSAA
     if (kDesktop_GrGLBinding == fBindingsExported) {
         // GL 3.0 and the ARB extension have multisample + blit
diff --git a/gpu/src/GrGLTexture.cpp b/gpu/src/GrGLTexture.cpp
index c5375c9..bbca5ed 100644
--- a/gpu/src/GrGLTexture.cpp
+++ b/gpu/src/GrGLTexture.cpp
@@ -23,14 +23,12 @@
 GrGLRenderTarget::GrGLRenderTarget(GrGpuGL* gpu,
                                    const GLRenderTargetIDs& ids,
                                    GrGLTexID* texID,
-                                   GrPixelConfig config,
                                    GrGLuint stencilBits,
                                    bool isMultisampled,
                                    const GrGLIRect& viewport,
                                    GrGLTexture* texture)
     : INHERITED(gpu, texture, viewport.fWidth, 
-                viewport.fHeight, config, 
-                stencilBits, isMultisampled) {
+                viewport.fHeight, stencilBits, isMultisampled) {
     fRTFBOID                = ids.fRTFBOID;
     fTexFBOID               = ids.fTexFBOID;
     fStencilRenderbufferID  = ids.fStencilRenderbufferID;
@@ -133,7 +131,6 @@
         vp.fBottom = textureDesc.fAllocHeight - textureDesc.fContentHeight;
 
         fRenderTarget = new GrGLRenderTarget(gpu, rtIDs, fTexIDObj,
-                                             textureDesc.fFormat,
                                              textureDesc.fStencilBits,
                                              rtIDs.fRTFBOID != rtIDs.fTexFBOID,
                                              vp, this);
@@ -229,7 +226,7 @@
     }
 }
 
-intptr_t GrGLTexture::getTextureHandle() const {
+intptr_t GrGLTexture::getTextureHandle() {
     return fTexIDObj->id();
 }
 
diff --git a/gpu/src/GrGLVertexBuffer.cpp b/gpu/src/GrGLVertexBuffer.cpp
index bb51b4e..5d274aa 100644
--- a/gpu/src/GrGLVertexBuffer.cpp
+++ b/gpu/src/GrGLVertexBuffer.cpp
@@ -58,8 +58,8 @@
     if (GPUGL->supportsBufferLocking()) {
         this->bind();
         // Let driver know it can discard the old data
-        GR_GL(BufferData(GR_GL_ARRAY_BUFFER, this->sizeInBytes(), NULL,
-                         this->dynamic() ? GR_GL_DYNAMIC_DRAW : GR_GL_STATIC_DRAW));
+        GR_GL(BufferData(GR_GL_ARRAY_BUFFER, size(), NULL,
+                         dynamic() ? GR_GL_DYNAMIC_DRAW : GR_GL_STATIC_DRAW));
         fLockPtr = GR_GL(MapBuffer(GR_GL_ARRAY_BUFFER, GR_GL_WRITE_ONLY));
         return fLockPtr;
     }
@@ -97,16 +97,16 @@
 bool GrGLVertexBuffer::updateData(const void* src, size_t srcSizeInBytes) {
     GrAssert(fBufferID);
     GrAssert(!isLocked());
-    if (srcSizeInBytes > this->sizeInBytes()) {
+    if (srcSizeInBytes > size()) {
         return false;
     }
     this->bind();
     GrGLenum usage = dynamic() ? GR_GL_DYNAMIC_DRAW : GR_GL_STATIC_DRAW;
-    if (this->sizeInBytes() == srcSizeInBytes) {
+    if (size() == srcSizeInBytes) {
         GR_GL(BufferData(GR_GL_ARRAY_BUFFER, srcSizeInBytes, src, usage));
     } else {
 #if GR_GL_USE_BUFFER_DATA_NULL_HINT
-        GR_GL(BufferData(GR_GL_ARRAY_BUFFER, this->sizeInBytes(), NULL, usage));
+        GR_GL(BufferData(GR_GL_ARRAY_BUFFER, size(), NULL, usage));
 #endif
         GR_GL(BufferSubData(GR_GL_ARRAY_BUFFER, 0, srcSizeInBytes, src));
     }
@@ -118,7 +118,7 @@
                                      size_t offset) {
     GrAssert(fBufferID);
     GrAssert(!isLocked());
-    if (srcSizeInBytes + offset > this->sizeInBytes()) {
+    if (srcSizeInBytes + offset > size()) {
         return false;
     }
     this->bind();
diff --git a/gpu/src/GrGpuGL.cpp b/gpu/src/GrGpuGL.cpp
index eae2019..09b337c 100644
--- a/gpu/src/GrGpuGL.cpp
+++ b/gpu/src/GrGpuGL.cpp
@@ -658,152 +658,12 @@
         viewport.fWidth  = desc.fWidth;
         viewport.fHeight = desc.fHeight;
 
-        bool isMSAA = kIsMultisampled_GrPlatformRenderTargetFlagBit &
-                     desc.fRenderTargetFlags;
-
-        return new GrGLRenderTarget(this, rtIDs, NULL, desc.fConfig,
-                                    desc.fStencilBits, isMSAA, viewport, NULL);
+        return new GrGLRenderTarget(this, rtIDs, NULL, desc.fStencilBits,
+                                    kIsMultisampled_GrPlatformRenderTargetFlagBit & desc.fRenderTargetFlags,
+                                    viewport, NULL);
     }
 }
 
-namespace {
-
-static const GrGLenum kUnknownGLFormat = ~0;
-
-GrGLenum get_fbo_color_format() {
-    GrGLint cbType;
-    GR_GL_GetFramebufferAttachmentParameteriv(GR_GL_FRAMEBUFFER,
-                                    GR_GL_COLOR_ATTACHMENT0,
-                                    GR_GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE,
-                                    &cbType);
-    GrGLint cbID;
-    GrGLint cbFormat;
-    switch (cbType) {
-        case GR_GL_RENDERBUFFER:
-            GR_GL_GetFramebufferAttachmentParameteriv(GR_GL_FRAMEBUFFER,
-                                    GR_GL_COLOR_ATTACHMENT0,
-                                    GR_GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME,
-                                    &cbID);
-            GR_GL(BindRenderbuffer(GR_GL_RENDERBUFFER, cbID));
-            GR_GL_GetRenderbufferParameteriv(GR_GL_RENDERBUFFER,
-                                             GR_GL_RENDERBUFFER_INTERNAL_FORMAT,
-                                             &cbFormat);
-            return cbFormat;
-            break;
-        case GR_GL_TEXTURE:
-            // ES doesn't have glGetTexLevelParameter
-            if (GR_GL_SUPPORT_DESKTOP) {
-                GrGLint cbLevel;
-                GrGLint cbFace;
-                GR_GL_GetFramebufferAttachmentParameteriv(GR_GL_FRAMEBUFFER,
-                                    GR_GL_COLOR_ATTACHMENT0,
-                                    GR_GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME,
-                                    &cbID);
-                GR_GL_GetFramebufferAttachmentParameteriv(GR_GL_FRAMEBUFFER,
-                                    GR_GL_COLOR_ATTACHMENT0,
-                                    GR_GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL,
-                                    &cbLevel);
-                GR_GL_GetFramebufferAttachmentParameteriv(GR_GL_FRAMEBUFFER,
-                            GR_GL_COLOR_ATTACHMENT0,
-                            GR_GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE,
-                            &cbFace);
-                GrGLenum bind;
-                GrGLenum target;
-                if (cbFace) {
-                    bind = GR_GL_TEXTURE_CUBE_MAP;
-                    target = cbFace;
-                } else {
-                    bind = GR_GL_TEXTURE_2D;
-                    target = GR_GL_TEXTURE_2D;
-                }
-                GR_GL(BindTexture(bind, cbID));
-                GR_GL_GetTexLevelParameteriv(target, cbLevel, 
-                                    GR_GL_TEXTURE_INTERNAL_FORMAT, &cbFormat);
-                return cbFormat;
-            } else {
-                return kUnknownGLFormat;
-            }
-            break;
-        default:
-            // we can get here with FBO 0, not a render buffer or a texture
-            return kUnknownGLFormat;
-    }
-}
-
-GrPixelConfig internal_color_format_to_config(GrGLenum iFormat) {
-    switch (iFormat) {
-        case GR_GL_RGB565:
-            return kRGB_565_GrPixelConfig;
-        case GR_GL_RGBA4:
-            return kRGBA_4444_GrPixelConfig;
-        case GR_GL_RGBA8:
-        case GR_GL_SRGB8_ALPHA8:
-        case GR_GL_SRGB_ALPHA:
-        case GR_GL_RGBA:
-        case GR_GL_BGRA:
-            return kRGBA_8888_GrPixelConfig;
-        case GR_GL_RGB8:
-        case GR_GL_SRGB8:
-        case GR_GL_SRGB:
-            return kRGBX_8888_GrPixelConfig;
-        default:
-            // there are many GL formats we don't have enums
-            // for. We should still render to them if the client
-            // asks us.
-            return kUnknown_GrPixelConfig;
-    }
-}
-
-GrPixelConfig get_implied_color_config(bool arbFBOExtension) {
-    GrGLint rSize, bSize, gSize, aSize;
-    if (arbFBOExtension) {
-        GR_GL_GetFramebufferAttachmentParameteriv(GR_GL_FRAMEBUFFER, 
-                GR_GL_COLOR_ATTACHMENT0,
-                GR_GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE, &rSize);
-        GR_GL_GetFramebufferAttachmentParameteriv(GR_GL_FRAMEBUFFER,
-                GR_GL_COLOR_ATTACHMENT0,
-                GR_GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE, &gSize);
-        GR_GL_GetFramebufferAttachmentParameteriv(GR_GL_FRAMEBUFFER, 
-                GR_GL_COLOR_ATTACHMENT0,
-                GR_GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE, &bSize);
-        GR_GL_GetFramebufferAttachmentParameteriv(GR_GL_FRAMEBUFFER,
-                GR_GL_COLOR_ATTACHMENT0, 
-                GR_GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE, &aSize);
-    } else {
-        GR_GL_GetIntegerv(GR_GL_RED_BITS, &rSize);
-        GR_GL_GetIntegerv(GR_GL_GREEN_BITS, &gSize);
-        GR_GL_GetIntegerv(GR_GL_BLUE_BITS, &bSize);
-        GR_GL_GetIntegerv(GR_GL_ALPHA_BITS, &aSize);
-    }
-
-    if(8 == rSize && 8 == gSize && 8 == bSize) {
-       if (0 == aSize) {
-           return kRGBX_8888_GrPixelConfig;
-       } else if (8 == aSize) {
-           return kRGBA_8888_GrPixelConfig;
-       }
-    } else if (4 == rSize && 4 == gSize && 4 == bSize && 4 == aSize) {
-        return kRGBA_4444_GrPixelConfig;
-    } else if (5 == rSize && 6 == gSize && 5 == bSize && 0 == aSize) {
-        return kRGB_565_GrPixelConfig;
-    }
-    return kUnknown_GrPixelConfig;
-}
-
-int get_fbo_stencil_bits(bool arbFBOExtension) {
-    GrGLint stencilBits;
-    if (arbFBOExtension) {
-        GR_GL_GetFramebufferAttachmentParameteriv(GR_GL_FRAMEBUFFER,
-                                    GR_GL_STENCIL_ATTACHMENT,
-                                    GR_GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE,
-                                    &stencilBits);
-    } else {
-        GR_GL_GetIntegerv(GR_GL_STENCIL_BITS, &stencilBits);
-    }
-    return stencilBits;
-}
-}
-
 GrRenderTarget* GrGpuGL::onCreateRenderTargetFrom3DApiState() {
 
     GrGLRenderTarget::GLRenderTargetIDs rtIDs;
@@ -813,29 +673,17 @@
     rtIDs.fMSColorRenderbufferID = 0;
     rtIDs.fStencilRenderbufferID = 0;
 
-    bool arbFBO = (GR_GL_SUPPORT_DESKTOP && (fGLVersion > 3.0 ||
-                   this->hasExtension("GL_ARB_framebuffer_object")));
-
     GrGLIRect viewport;
     viewport.setFromGLViewport();
-    int stencilBits = get_fbo_stencil_bits(arbFBO);
+    GrGLuint stencilBits;
+    GR_GL_GetIntegerv(GR_GL_STENCIL_BITS, (GrGLint*)&stencilBits);
 
-    GrPixelConfig config;
     GrGLint samples;
     GR_GL_GetIntegerv(GR_GL_SAMPLES, &samples);
-    GrGLenum fmat = get_fbo_color_format();
-    if (kUnknownGLFormat == fmat) {
-        config = get_implied_color_config(arbFBO);
-    } else {
-        config = internal_color_format_to_config(fmat);
-    }
-
-    // may have to bind a texture to gets its format
-    this->setSpareTextureUnit();
 
     rtIDs.fOwnIDs = false;
 
-    return new GrGLRenderTarget(this, rtIDs, NULL, config, stencilBits,
+    return new GrGLRenderTarget(this, rtIDs, NULL, stencilBits, 
                                 (samples > 0), viewport, NULL);
 }
 
diff --git a/gpu/src/GrTextContext.cpp b/gpu/src/GrTextContext.cpp
index 9d69a97..5d0f9f7 100644
--- a/gpu/src/GrTextContext.cpp
+++ b/gpu/src/GrTextContext.cpp
@@ -277,7 +277,7 @@
                                        NULL);
         }
 
-        int maxQuadVertices = 4 * fContext->getQuadIndexBuffer()->maxQuads();
+        int maxQuadVertices = 4 * fContext->getQuadIndexBuffer()->size() / (6 * sizeof(uint16_t));
         if (fMaxVertices < kMinRequestedVerts) {
             fMaxVertices = kDefaultRequestedVerts;
         } else if (fMaxVertices > maxQuadVertices) {
diff --git a/gpu/src/GrTexture.cpp b/gpu/src/GrTexture.cpp
index 360bcf6..8df9c9e 100644
--- a/gpu/src/GrTexture.cpp
+++ b/gpu/src/GrTexture.cpp
@@ -29,16 +29,6 @@
                                            config, buffer);
 }
 
-size_t GrRenderTarget::sizeInBytes() const {
-    int colorBits;
-    if (kUnknown_GrPixelConfig == fConfig) {
-        colorBits = 32; // don't know, make a guess
-    } else {
-        colorBits = GrBytesPerPixel(fConfig);
-    }
-    return fWidth * fHeight * (fStencilBits + colorBits);
-}
-
 void GrRenderTarget::flagAsNeedingResolve(const GrIRect* rect) {
     if (kCanResolve_ResolveType == getResolveType()) {
         if (NULL != rect) {
@@ -73,4 +63,3 @@
                                         width, height,
                                         config, buffer);
 }
-
diff --git a/gpu/src/android/GrGLDefaultInterface_android.cpp b/gpu/src/android/GrGLDefaultInterface_android.cpp
index dfb9041..4c06f17 100644
--- a/gpu/src/android/GrGLDefaultInterface_android.cpp
+++ b/gpu/src/android/GrGLDefaultInterface_android.cpp
@@ -67,7 +67,6 @@
     glGetShaderInfoLog,
     glGetShaderiv,
     glGetString,
-    NULL, // glGetTexLevelParameteriv
     glGetUniformLocation,
     glLineWidth,
     glLinkProgram,
@@ -123,15 +122,13 @@
     glFramebufferTexture2D,
     glGenFramebuffers,
     glGenRenderbuffers,
-    glGetFramebufferAttachmentParameteriv,
-    glGetRenderbufferParameteriv,
     glRenderbufferStorage,
     NULL,  // glRenderbufferStorageMultisampleEXT,
     NULL,  // glBlitFramebufferEXT,
     NULL,  // glResolveMultisampleFramebuffer
     glMapBufferOES,
     glUnmapBufferOES,
-    NULL, // glBindFragDataLocationIndexed
+    NULL,
     GrGLInterface::kStaticInitEndGuard
   };
   static bool host_StubGL_initialized = false;
diff --git a/gpu/src/ios/GrGLDefaultInterface_iOS.cpp b/gpu/src/ios/GrGLDefaultInterface_iOS.cpp
index 252a8c2..4126d25 100644
--- a/gpu/src/ios/GrGLDefaultInterface_iOS.cpp
+++ b/gpu/src/ios/GrGLDefaultInterface_iOS.cpp
@@ -127,8 +127,6 @@
         gDefaultInterface.fViewport = glViewport;
         
         gDefaultInterface.fGenFramebuffers = glGenFramebuffers;
-        gDefaultInterface.fGetFramebufferAttachmentParameteriv = glFramebufferAttachmentParameteriv;
-        gDefaultInterface.fGetRenderbufferParameteriv = glRenderbufferParameteriv;
         gDefaultInterface.fBindFramebuffer = glBindFramebuffer;
         gDefaultInterface.fFramebufferTexture2D = glFramebufferTexture2D;
         gDefaultInterface.fCheckFramebufferStatus = glCheckFramebufferStatus;
diff --git a/gpu/src/mac/GrGLDefaultInterface_mac.cpp b/gpu/src/mac/GrGLDefaultInterface_mac.cpp
index 3ed5c55..d21bdda 100644
--- a/gpu/src/mac/GrGLDefaultInterface_mac.cpp
+++ b/gpu/src/mac/GrGLDefaultInterface_mac.cpp
@@ -72,7 +72,6 @@
         gDefaultInterface.fGetShaderInfoLog = glGetShaderInfoLog;
         gDefaultInterface.fGetShaderiv = glGetShaderiv;
         gDefaultInterface.fGetString = glGetString;
-        gDefaultInterface.fGetTexLevelParameteriv = glGetTexLevelParameteriv;
         gDefaultInterface.fGenTextures = glGenTextures;
         gDefaultInterface.fGetUniformLocation = glGetUniformLocation;
         gDefaultInterface.fLineWidth = glLineWidth;
@@ -128,8 +127,6 @@
 
 #if GL_ARB_framebuffer_object
         gDefaultInterface.fGenFramebuffers = glGenFramebuffers;
-        gDefaultInterface.fGetFramebufferAttachmentParameteriv = glGetFramebufferAttachmentParameteriv;
-        gDefaultInterface.fGetRenderbufferParameteriv = glGetRenderbufferParameteriv;
         gDefaultInterface.fBindFramebuffer = glBindFramebuffer;
         gDefaultInterface.fFramebufferTexture2D = glFramebufferTexture2D;
         gDefaultInterface.fCheckFramebufferStatus = glCheckFramebufferStatus;
@@ -144,8 +141,6 @@
         gDefaultInterface.fBlitFramebuffer = glBlitFramebuffer;
 #elif GL_EXT_framebuffer_object
         gDefaultInterface.fGenFramebuffers = glGenFramebuffersEXT;
-        gDefaultInterface.fGetFramebufferAttachmentivParameter = glGetFramebufferAttachmentParameterivEXT;
-        gDefaultInterface.fGLGetRenderbufferParameteriv = glGetRenderbufferParameterivEXT;
         gDefaultInterface.fBindFramebuffer = glBindFramebufferEXT;
         gDefaultInterface.fFramebufferTexture2D = glFramebufferTexture2DEXT;
         gDefaultInterface.fCheckFramebufferStatus = glCheckFramebufferStatusEXT;
diff --git a/gpu/src/mesa/GrGLDefaultInterface_mesa.cpp b/gpu/src/mesa/GrGLDefaultInterface_mesa.cpp
index a2f70e0..1324649 100644
--- a/gpu/src/mesa/GrGLDefaultInterface_mesa.cpp
+++ b/gpu/src/mesa/GrGLDefaultInterface_mesa.cpp
@@ -86,7 +86,6 @@
         GR_GL_GET_PROC(GetShaderInfoLog);
         GR_GL_GET_PROC(GetShaderiv);
         gDefaultInterface.fGetString = glGetString;
-        gDefaultInterface.fGetTexLevelParameteriv = glGetTexLevelParameteriv;
         gDefaultInterface.fGenTextures = glGenTextures;
         GR_GL_GET_PROC(GetUniformLocation);
         gDefaultInterface.fLineWidth = glLineWidth;
@@ -143,8 +142,6 @@
         if (major >= 3 || has_gl_extension_from_string(
                 "GL_ARB_framebuffer_object", extString)) {
             GR_GL_GET_PROC(GenFramebuffers);
-            GR_GL_GET_PROC(GetFramebufferAttachmentParameteriv);
-            GR_GL_GET_PROC(GetRenderbufferParameteriv);
             GR_GL_GET_PROC(BindFramebuffer);
             GR_GL_GET_PROC(FramebufferTexture2D);
             GR_GL_GET_PROC(CheckFramebufferStatus);
@@ -159,8 +156,6 @@
         } else if (has_gl_extension_from_string("GL_EXT_framebuffer_object",
                                                 extString)) {
             GR_GL_GET_PROC_SUFFIX(GenFramebuffers, EXT);
-            GR_GL_GET_PROC_SUFFIX(GetFramebufferAttachmentParameteriv, EXT);
-            GR_GL_GET_PROC_SUFFIX(GetRenderbufferParameteriv, EXT);
             GR_GL_GET_PROC_SUFFIX(BindFramebuffer, EXT);
             GR_GL_GET_PROC_SUFFIX(FramebufferTexture2D, EXT);
             GR_GL_GET_PROC_SUFFIX(CheckFramebufferStatus, EXT);
diff --git a/gpu/src/unix/GrGLDefaultInterface_unix.cpp b/gpu/src/unix/GrGLDefaultInterface_unix.cpp
index df2ab69..724f438 100644
--- a/gpu/src/unix/GrGLDefaultInterface_unix.cpp
+++ b/gpu/src/unix/GrGLDefaultInterface_unix.cpp
@@ -88,7 +88,6 @@
         GR_GL_GET_PROC(GetShaderInfoLog);
         GR_GL_GET_PROC(GetShaderiv);
         gDefaultInterface.fGetString = glGetString;
-        gDefaultInterface.fGetTexLevelParameteriv = glGetTexLevelParameteriv;
         gDefaultInterface.fGenTextures = glGenTextures;
         GR_GL_GET_PROC(GetUniformLocation);
         gDefaultInterface.fLineWidth = glLineWidth;
@@ -145,8 +144,6 @@
         if (major >= 3 || has_gl_extension_from_string(
                 "GL_ARB_framebuffer_object", extString)) {
             GR_GL_GET_PROC(GenFramebuffers);
-            GR_GL_GET_PROC(GetFramebufferAttachmentParameteriv);
-            GR_GL_GET_PROC(GetRenderbufferParameteriv);
             GR_GL_GET_PROC(BindFramebuffer);
             GR_GL_GET_PROC(FramebufferTexture2D);
             GR_GL_GET_PROC(CheckFramebufferStatus);
@@ -161,8 +158,6 @@
         } else if (has_gl_extension_from_string("GL_EXT_framebuffer_object",
                                                 extString)) {
             GR_GL_GET_PROC_SUFFIX(GenFramebuffers, EXT);
-            GR_GL_GET_PROC_SUFFIX(GetFramebufferAttachmentParameteriv, EXT);
-            GR_GL_GET_PROC_SUFFIX(GetRenderbufferParameteriv, EXT);
             GR_GL_GET_PROC_SUFFIX(BindFramebuffer, EXT);
             GR_GL_GET_PROC_SUFFIX(FramebufferTexture2D, EXT);
             GR_GL_GET_PROC_SUFFIX(CheckFramebufferStatus, EXT);
diff --git a/gpu/src/win/GrGLDefaultInterface_win.cpp b/gpu/src/win/GrGLDefaultInterface_win.cpp
index f012ccf..3bbd262 100644
--- a/gpu/src/win/GrGLDefaultInterface_win.cpp
+++ b/gpu/src/win/GrGLDefaultInterface_win.cpp
@@ -72,7 +72,6 @@
             gDefaultInterface.fGetError = glGetError;
             gDefaultInterface.fGetIntegerv = glGetIntegerv;
             gDefaultInterface.fGetString = glGetString;
-            gDefaultInterface.fGetTexLevelParameteriv = glGetTexLevelParameteriv;
             gDefaultInterface.fLineWidth = glLineWidth;
             gDefaultInterface.fLoadMatrixf = glLoadMatrixf;
             gDefaultInterface.fMatrixMode = glMatrixMode;
@@ -150,8 +149,6 @@
             // GL_ARB_framebuffer_object doesn't use ARB suffix.)
             if (major >= 3 || has_gl_extension_from_string("GL_ARB_framebuffer_object", extString)) {
                 GR_GL_GET_PROC(GenFramebuffers);
-                GR_GL_GET_PROC(GetFramebufferAttachmentParameteriv);
-                GR_GL_GET_PROC(GetRenderbufferParameteriv);
                 GR_GL_GET_PROC(BindFramebuffer);
                 GR_GL_GET_PROC(FramebufferTexture2D);
                 GR_GL_GET_PROC(CheckFramebufferStatus);
@@ -165,8 +162,6 @@
                 GR_GL_GET_PROC(BlitFramebuffer);
             } else if (has_gl_extension_from_string("GL_EXT_framebuffer_object", extString)) {
                 GR_GL_GET_PROC_SUFFIX(GenFramebuffers, EXT);
-                GR_GL_GET_PROC_SUFFIX(GetFramebufferAttachmentParameteriv, EXT);
-                GR_GL_GET_PROC_SUFFIX(GetRenderbufferParameteriv, EXT);
                 GR_GL_GET_PROC_SUFFIX(BindFramebuffer, EXT);
                 GR_GL_GET_PROC_SUFFIX(FramebufferTexture2D, EXT);
                 GR_GL_GET_PROC_SUFFIX(CheckFramebufferStatus, EXT);