Get rid of createRenderTargetFrom3DAPIState and associated glGets necessary to support it.

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



git-svn-id: http://skia.googlecode.com/svn/trunk@2144 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/src/gpu/SkGpuDevice.cpp b/src/gpu/SkGpuDevice.cpp
index 9fe54e5..105c456 100644
--- a/src/gpu/SkGpuDevice.cpp
+++ b/src/gpu/SkGpuDevice.cpp
@@ -104,10 +104,6 @@
 
 ///////////////////////////////////////////////////////////////////////////////
 
-GrRenderTarget* SkGpuDevice::Current3DApiRenderTarget() {
-    return (GrRenderTarget*) -1;
-}
-
 static SkBitmap::Config grConfig2skConfig(GrPixelConfig config, bool* isOpaque) {
     switch (config) {
         case kAlpha_8_GrPixelConfig:
@@ -130,13 +126,7 @@
 }
 
 static SkBitmap make_bitmap(GrContext* context, GrRenderTarget* renderTarget) {
-    SkAutoTUnref<GrRenderTarget> rtunref;
-    if (SkGpuDevice::Current3DApiRenderTarget() == renderTarget) {
-        renderTarget = context->createRenderTargetFrom3DApiState();
-        rtunref.reset(renderTarget);
-    }
-    GrTexture* texture = renderTarget->asTexture();
-    GrPixelConfig config = texture ? texture->config() : kRGBA_8888_GrPixelConfig;
+    GrPixelConfig config = renderTarget->config();
 
     bool isOpaque;
     SkBitmap bitmap;
@@ -168,16 +158,12 @@
     fRenderTarget = NULL;
     fNeedClear = false;
     
-    if (Current3DApiRenderTarget() == renderTarget) {
-        fRenderTarget = fContext->createRenderTargetFrom3DApiState();
-    } else {
-        GrAssert(NULL != renderTarget);
-        fRenderTarget = renderTarget;
-        fRenderTarget->ref();
-        // if this RT is also a texture, hold a ref on it
-        fTexture = fRenderTarget->asTexture();
-        SkSafeRef(fTexture);
-    }
+    GrAssert(NULL != renderTarget);
+    fRenderTarget = renderTarget;
+    fRenderTarget->ref();
+    // if this RT is also a texture, hold a ref on it
+    fTexture = fRenderTarget->asTexture();
+    SkSafeRef(fTexture);
 
     SkGrRenderTargetPixelRef* pr = new SkGrRenderTargetPixelRef(fRenderTarget);
     this->setPixelRef(pr, 0)->unref();
diff --git a/src/utils/SkEGLContext_none.cpp b/src/utils/SkEGLContext_none.cpp
index 25f8513..52ea5ef 100644
--- a/src/utils/SkEGLContext_none.cpp
+++ b/src/utils/SkEGLContext_none.cpp
@@ -7,7 +7,8 @@
  */
 #include "SkEGLContext.h"
 
-SkEGLContext::SkEGLContext() {
+SkEGLContext::SkEGLContext()
+    : fFBO(0) {
 }
 
 SkEGLContext::~SkEGLContext() {
diff --git a/src/utils/mac/SkEGLContext_mac.cpp b/src/utils/mac/SkEGLContext_mac.cpp
index d237795..579be4b 100644
--- a/src/utils/mac/SkEGLContext_mac.cpp
+++ b/src/utils/mac/SkEGLContext_mac.cpp
@@ -9,7 +9,9 @@
 //#include "SkTypes.h"
 #include <AGL/agl.h>
 
-SkEGLContext::SkEGLContext() : context(NULL) {
+SkEGLContext::SkEGLContext() 
+    : fFBO(0)
+    , context(NULL) {
 }
 
 SkEGLContext::~SkEGLContext() {
@@ -53,11 +55,10 @@
 
     // Now create our FBO render target
 
-    GLuint fboID;
     GLuint cbID;
     GLuint dsID;
-    glGenFramebuffersEXT(1, &fboID);
-    glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, fboID);
+    glGenFramebuffersEXT(1, &fFBO);
+    glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, fFBO);
     glGenRenderbuffers(1, &cbID);
     glBindRenderbuffer(GL_RENDERBUFFER, cbID);
     glRenderbufferStorage(GL_RENDERBUFFER, GL_RGBA, width, height);
diff --git a/src/utils/mesa/SkEGLContext_Mesa.cpp b/src/utils/mesa/SkEGLContext_Mesa.cpp
index fdb2ac0..1174ded 100644
--- a/src/utils/mesa/SkEGLContext_Mesa.cpp
+++ b/src/utils/mesa/SkEGLContext_Mesa.cpp
@@ -15,7 +15,10 @@
 #define SK_GL_GET_PROC(T, F) F ## _func = (T)OSMesaGetProcAddress(#F);
 #define SK_GL_GET_EXT_PROC(T, F) F ## _func = (T)OSMesaGetProcAddress(#F "EXT");
 
-SkEGLContext::SkEGLContext() : context(NULL), image(NULL) {
+SkEGLContext::SkEGLContext()
+    : fFBO(0)
+    , context(NULL)
+    , image(NULL) {
 }
 
 SkEGLContext::~SkEGLContext() {
@@ -110,11 +113,10 @@
       return false;
     }
     
-    GLuint fboID;
     GLuint cbID;
     GLuint dsID;
-    glGenFramebuffers_func(1, &fboID);
-    glBindFramebuffer_func(GL_FRAMEBUFFER, fboID);
+    glGenFramebuffers_func(1, &fFBO);
+    glBindFramebuffer_func(GL_FRAMEBUFFER, fFBO);
     
     glGenRenderbuffers_func(1, &cbID);
     glBindRenderbuffer_func(GL_RENDERBUFFER, cbID);
diff --git a/src/utils/unix/SkEGLContext_Unix.cpp b/src/utils/unix/SkEGLContext_Unix.cpp
index 6eb7e35..40a1b5d 100644
--- a/src/utils/unix/SkEGLContext_Unix.cpp
+++ b/src/utils/unix/SkEGLContext_Unix.cpp
@@ -23,7 +23,12 @@
     return 0;
 }
 
-SkEGLContext::SkEGLContext() : context(NULL), display(NULL), pixmap(0), glxPixmap(0) {
+SkEGLContext::SkEGLContext() 
+    : fFBO(0)
+    , context(NULL)
+    , display(NULL)
+    , pixmap(0)
+    , glxPixmap(0) {
 }
 
 SkEGLContext::~SkEGLContext() {
@@ -249,11 +254,10 @@
     SK_GL_GET_PROC(PFNGLFRAMEBUFFERRENDERBUFFERPROC, glFramebufferRenderbufferEXT)
     SK_GL_GET_PROC(PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC, glCheckFramebufferStatusEXT)
 
-    GLuint fboID;
     GLuint cbID;
     GLuint dsID;
-    glGenFramebuffersEXT(1, &fboID);
-    glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, fboID);
+    glGenFramebuffersEXT(1, &fFBO);
+    glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, fFBO);
     glGenRenderbuffersEXT(1, &cbID);
     glBindRenderbufferEXT(GL_RENDERBUFFER, cbID);
     glRenderbufferStorageEXT(GL_RENDERBUFFER, GL_RGBA, width, height);
diff --git a/src/utils/win/SkEGLContext_Win.cpp b/src/utils/win/SkEGLContext_Win.cpp
index c2483e7..b82e7d7 100644
--- a/src/utils/win/SkEGLContext_Win.cpp
+++ b/src/utils/win/SkEGLContext_Win.cpp
@@ -34,8 +34,9 @@
 typedef void (SK_EGL_FUNCTION_TYPE *SkEGLFramebufferRenderbufferProc) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
 typedef GLenum (SK_EGL_FUNCTION_TYPE *SkEGLCheckFramebufferStatusProc) (GLenum target);
 
-SkEGLContext::SkEGLContext() :
-        fWindow(NULL)
+SkEGLContext::SkEGLContext()
+        : fFBO(0)
+        , fWindow(NULL)
         , fDeviceContext(NULL)
         , fGlRenderContext(0) {
 }
@@ -174,11 +175,10 @@
     SK_EGL_GET_PROC_SUFFIX(FramebufferRenderbuffer, EXT)
     SK_EGL_GET_PROC_SUFFIX(CheckFramebufferStatus, EXT)
 
-    GLuint fboID;
     GLuint cbID;
     GLuint dsID;
-    SkEGLGenFramebuffers(1, &fboID);
-    SkEGLBindFramebuffer(SK_EGL_FRAMEBUFFER, fboID);
+    SkEGLGenFramebuffers(1, &fFBO);
+    SkEGLBindFramebuffer(SK_EGL_FRAMEBUFFER, fFBO);
     SkEGLGenRenderbuffers(1, &cbID);
     SkEGLBindRenderbuffer(SK_EGL_RENDERBUFFER, cbID);
     SkEGLRenderbufferStorage(SK_EGL_RENDERBUFFER, GL_RGBA, width, height);