aboutsummaryrefslogtreecommitdiffhomepage
path: root/gpu
diff options
context:
space:
mode:
authorGravatar bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2011-04-14 18:40:27 +0000
committerGravatar bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2011-04-14 18:40:27 +0000
commit398109cc3e56b8122ad21c4d43a74a83be5b42a8 (patch)
tree9cbb8484edde74896b8d464a2745997f44ea7a9b /gpu
parent261b8e2ca1cf22303ad95267f0bdc6e87e1bbe70 (diff)
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
Diffstat (limited to 'gpu')
-rw-r--r--gpu/include/GrContext.h4
-rw-r--r--gpu/include/GrGpu.h10
-rw-r--r--gpu/src/GrContext.cpp7
-rw-r--r--gpu/src/GrGpu.cpp6
-rw-r--r--gpu/src/GrGpuGL.cpp8
-rw-r--r--gpu/src/GrGpuGL.h6
6 files changed, 22 insertions, 19 deletions
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);