Make flush discardable and lazily reset context

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



git-svn-id: http://skia.googlecode.com/svn/trunk@914 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/gpu/src/GrGpuGL.cpp b/gpu/src/GrGpuGL.cpp
index 3ee524b..b0d5e73 100644
--- a/gpu/src/GrGpuGL.cpp
+++ b/gpu/src/GrGpuGL.cpp
@@ -152,8 +152,6 @@
 
     GrGLInitExtensions(&fExts);
 
-    resetContextHelper();
-
     resetDirtyFlags();
 
     GLint maxTextureUnits;
@@ -427,8 +425,8 @@
 GrGpuGL::~GrGpuGL() {
 }
 
-void GrGpuGL::resetContextHelper() {
-// We detect cases when blending is effectively off
+void GrGpuGL::resetContext() {
+    // We detect cases when blending is effectively off
     fHWBlendDisabled = false;
     GR_GL(Enable(GL_BLEND));
 
@@ -491,12 +489,7 @@
     fHWDrawState.fRenderTarget = NULL;
 }
 
-void GrGpuGL::resetContext() {
-    INHERITED::resetContext();
-    resetContextHelper();
-}
-
-GrRenderTarget* GrGpuGL::createPlatformRenderTarget(
+GrRenderTarget* GrGpuGL::createPlatformRenderTargetHelper(
                                                 intptr_t platformRenderTarget,
                                                 int stencilBits,
                                                 int width,
@@ -520,7 +513,7 @@
     return new GrGLRenderTarget(rtIDs, stencilBits, viewport, NULL, this);
 }
 
-GrRenderTarget* GrGpuGL::createRenderTargetFrom3DApiState() {
+GrRenderTarget* GrGpuGL::createRenderTargetFrom3DApiStateHelper() {
 
     GrGLRenderTarget::GLRenderTargetIDs rtIDs;
 
@@ -575,8 +568,9 @@
 }
 #endif
 
-GrTexture* GrGpuGL::createTexture(const TextureDesc& desc,
-                                  const void* srcData, size_t rowBytes) {
+GrTexture* GrGpuGL::createTextureHelper(const TextureDesc& desc,
+                                        const void* srcData,
+                                        size_t rowBytes) {
 
 #if GR_COLLECT_STATS
     ++fStats.fTextureCreateCnt;
@@ -988,7 +982,7 @@
     return tex;
 }
 
-GrVertexBuffer* GrGpuGL::createVertexBuffer(uint32_t size, bool dynamic) {
+GrVertexBuffer* GrGpuGL::createVertexBufferHelper(uint32_t size, bool dynamic) {
     GLuint id;
     GR_GL(GenBuffers(1, &id));
     if (id) {
@@ -1012,7 +1006,7 @@
     return NULL;
 }
 
-GrIndexBuffer* GrGpuGL::createIndexBuffer(uint32_t size, bool dynamic) {
+GrIndexBuffer* GrGpuGL::createIndexBufferHelper(uint32_t size, bool dynamic) {
     GLuint id;
     GR_GL(GenBuffers(1, &id));
     if (id) {
@@ -1066,7 +1060,7 @@
     }
 }
 
-void GrGpuGL::eraseColor(GrColor color) {
+void GrGpuGL::eraseColorHelper(GrColor color) {
     if (NULL == fCurrDrawState.fRenderTarget) {
         return;
     }
@@ -1121,12 +1115,12 @@
     fHWDrawState.fStencilSettings.invalidate();
 }
 
-void GrGpuGL::forceRenderTargetFlush() {
+void GrGpuGL::forceRenderTargetFlushHelper() {
     flushRenderTarget();
 }
 
-bool GrGpuGL::readPixels(int left, int top, int width, int height,
-                         GrTexture::PixelConfig config, void* buffer) {
+bool GrGpuGL::readPixelsHelper(int left, int top, int width, int height,
+                               GrTexture::PixelConfig config, void* buffer) {
     GLenum internalFormat;  // we don't use this for glReadPixels
     GLenum format;
     GLenum type;
@@ -1207,7 +1201,7 @@
 
 #define SWAP_PER_DRAW 0
 
-#if SWAP_PER_DRAW 
+#if SWAP_PER_DRAW
     #if GR_MAC_BUILD
         #include <AGL/agl.h>
     #elif GR_WIN32_BUILD