From 398109cc3e56b8122ad21c4d43a74a83be5b42a8 Mon Sep 17 00:00:00 2001 From: "bsalomon@google.com" Date: Thu, 14 Apr 2011 18:40:27 +0000 Subject: rename SkDevice::eraseColor to clear and make virtual. Properly flush in GrContext before calling GrGpu::clear() Review URL: http://codereview.appspot.com/4419043/ git-svn-id: http://skia.googlecode.com/svn/trunk@1130 2bbb7eff-a529-9590-31e7-b0007b416f81 --- gpu/include/GrContext.h | 4 ++-- gpu/include/GrGpu.h | 10 +++++----- gpu/src/GrContext.cpp | 7 +++++-- gpu/src/GrGpu.cpp | 6 +++--- gpu/src/GrGpuGL.cpp | 8 ++++---- gpu/src/GrGpuGL.h | 6 +++--- 6 files changed, 22 insertions(+), 19 deletions(-) (limited to 'gpu') diff --git a/gpu/include/GrContext.h b/gpu/include/GrContext.h index 7b6803c51c..5eda2b7186 100644 --- a/gpu/include/GrContext.h +++ b/gpu/include/GrContext.h @@ -283,9 +283,9 @@ public: // Draws /** - * Erase the entire render target, ignoring any clips + * Clear the entire render target, ignoring any clips */ - void eraseColor(GrColor color); + void clear(GrColor color); /** * Draw everywhere (respecting the clip) with the paint. diff --git a/gpu/include/GrGpu.h b/gpu/include/GrGpu.h index 61dae2cfa6..7dd9959af9 100644 --- a/gpu/include/GrGpu.h +++ b/gpu/include/GrGpu.h @@ -235,11 +235,11 @@ public: GrIndexBuffer* createIndexBuffer(uint32_t size, bool dynamic); /** - * Erase the entire render target, ignoring any clips/scissors. + * Clear the entire render target, ignoring any clips/scissors. * * This is issued to the GPU driver immediately. */ - void eraseColor(GrColor color); + void clear(GrColor color); /** * Are 8 bit paletted textures supported. @@ -498,8 +498,8 @@ protected: virtual GrIndexBuffer* onCreateIndexBuffer(uint32_t size, bool dynamic) = 0; - // overridden by API-specific derivated class to perform the erase. - virtual void onEraseColor(GrColor color) = 0; + // overridden by API-specific derivated class to perform the clear. + virtual void onClear(GrColor color) = 0; // overridden by API-specific derived class to perform the draw call. virtual void onDrawIndexed(GrPrimitiveType type, @@ -539,7 +539,7 @@ protected: virtual void flushScissor(const GrIRect* rect) = 0; // GrGpu subclass removes the clip from the stencil buffer - virtual void eraseStencilClip(const GrIRect& rect) = 0; + virtual void clearStencilClip(const GrIRect& rect) = 0; private: GrContext* fContext; // not reffed (context refs gpu) diff --git a/gpu/src/GrContext.cpp b/gpu/src/GrContext.cpp index 8017f73eba..f68564a2ba 100644 --- a/gpu/src/GrContext.cpp +++ b/gpu/src/GrContext.cpp @@ -325,8 +325,11 @@ void GrContext::setClip(const GrIRect& rect) { //////////////////////////////////////////////////////////////////////////////// -void GrContext::eraseColor(GrColor color) { - fGpu->eraseColor(color); +void GrContext::clear(GrColor color) { + // gpu flush call is immediate, must flush. + // (could in theory skip draws to current render target.) + this->flush(); + fGpu->clear(color); } void GrContext::drawPaint(const GrPaint& paint) { diff --git a/gpu/src/GrGpu.cpp b/gpu/src/GrGpu.cpp index 43fe648fbf..c8e2bc77ab 100644 --- a/gpu/src/GrGpu.cpp +++ b/gpu/src/GrGpu.cpp @@ -173,9 +173,9 @@ GrIndexBuffer* GrGpu::createIndexBuffer(uint32_t size, bool dynamic) { return this->onCreateIndexBuffer(size, dynamic); } -void GrGpu::eraseColor(GrColor color) { +void GrGpu::clear(GrColor color) { this->handleDirtyContext(); - this->onEraseColor(color); + this->onClear(color); } void GrGpu::forceRenderTargetFlush() { @@ -423,7 +423,7 @@ bool GrGpu::setupClipAndFlushState(GrPrimitiveType type) { AutoInternalDrawGeomRestore aidgr(this); this->setViewMatrix(GrMatrix::I()); - this->eraseStencilClip(clipRect); + this->clearStencilClip(clipRect); this->flushScissor(NULL); #if !VISUALIZE_COMPLEX_CLIP this->enableState(kNoColorWrites_StateBit); diff --git a/gpu/src/GrGpuGL.cpp b/gpu/src/GrGpuGL.cpp index fe461cca3b..64431a35f8 100644 --- a/gpu/src/GrGpuGL.cpp +++ b/gpu/src/GrGpuGL.cpp @@ -1080,7 +1080,7 @@ GrTexture* GrGpuGL::onCreateTexture(const TextureDesc& desc, if (!(desc.fFlags & kNoStencil_TextureFlag)) { GrRenderTarget* rtSave = fCurrDrawState.fRenderTarget; fCurrDrawState.fRenderTarget = rt; - eraseStencil(0, ~0); + this->clearStencil(0, ~0); fCurrDrawState.fRenderTarget = rtSave; } } @@ -1165,7 +1165,7 @@ void GrGpuGL::flushScissor(const GrIRect* rect) { } } -void GrGpuGL::onEraseColor(GrColor color) { +void GrGpuGL::onClear(GrColor color) { if (NULL == fCurrDrawState.fRenderTarget) { return; } @@ -1183,7 +1183,7 @@ void GrGpuGL::onEraseColor(GrColor color) { GR_GL(Clear(GR_GL_COLOR_BUFFER_BIT)); } -void GrGpuGL::eraseStencil(uint32_t value, uint32_t mask) { +void GrGpuGL::clearStencil(uint32_t value, uint32_t mask) { if (NULL == fCurrDrawState.fRenderTarget) { return; } @@ -1198,7 +1198,7 @@ void GrGpuGL::eraseStencil(uint32_t value, uint32_t mask) { fHWDrawState.fStencilSettings.invalidate(); } -void GrGpuGL::eraseStencilClip(const GrIRect& rect) { +void GrGpuGL::clearStencilClip(const GrIRect& rect) { GrAssert(NULL != fCurrDrawState.fRenderTarget); #if 0 GrGLint stencilBitCount = fCurrDrawState.fRenderTarget->stencilBits(); diff --git a/gpu/src/GrGpuGL.h b/gpu/src/GrGpuGL.h index eaeec5eef3..08edb27a7e 100644 --- a/gpu/src/GrGpuGL.h +++ b/gpu/src/GrGpuGL.h @@ -87,7 +87,7 @@ protected: int width, int height); virtual GrRenderTarget* onCreateRenderTargetFrom3DApiState(); - virtual void onEraseColor(GrColor color); + virtual void onClear(GrColor color); virtual void onForceRenderTargetFlush(); @@ -104,8 +104,8 @@ protected: uint32_t vertexCount, uint32_t numVertices); virtual void flushScissor(const GrIRect* rect); - void eraseStencil(uint32_t value, uint32_t mask); - virtual void eraseStencilClip(const GrIRect& rect); + void clearStencil(uint32_t value, uint32_t mask); + virtual void clearStencilClip(const GrIRect& rect); // binds texture unit in GL void setTextureUnit(int unitIdx); -- cgit v1.2.3