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);