Index: src/gpu/GrInOrderDrawBuffer.cpp |
diff --git a/src/gpu/GrInOrderDrawBuffer.cpp b/src/gpu/GrInOrderDrawBuffer.cpp |
index 753a379ff80489d4221ccd3dbb2d6f5dee265a1c..cfb7f9339ebd890150a3cfb3b0aced9be00e548f 100644 |
--- a/src/gpu/GrInOrderDrawBuffer.cpp |
+++ b/src/gpu/GrInOrderDrawBuffer.cpp |
@@ -434,6 +434,19 @@ void GrInOrderDrawBuffer::clear(const SkIRect* rect, GrColor color, |
this->recordTraceMarkersIfNecessary(); |
} |
+void GrInOrderDrawBuffer::clearStencilClip(const SkIRect& rect, |
+ bool insideClip, |
+ GrRenderTarget* renderTarget) { |
+ if (NULL == renderTarget) { |
+ renderTarget = this->drawState()->getRenderTarget(); |
+ SkASSERT(renderTarget); |
+ } |
+ ClearStencilClip* clr = GrNEW_APPEND_TO_RECORDER(fCmdBuffer, ClearStencilClip, (renderTarget)); |
+ clr->fRect = rect; |
+ clr->fInsideClip = insideClip; |
+ this->recordTraceMarkersIfNecessary(); |
+} |
+ |
void GrInOrderDrawBuffer::discard(GrRenderTarget* renderTarget) { |
if (!this->caps()->discardRenderTargetSupport()) { |
return; |
@@ -562,6 +575,10 @@ void GrInOrderDrawBuffer::Clear::execute(GrDrawTarget* gpu) { |
} |
} |
+void GrInOrderDrawBuffer::ClearStencilClip::execute(GrDrawTarget* gpu) { |
+ gpu->clearStencilClip(fRect, fInsideClip, this->renderTarget()); |
+} |
+ |
void GrInOrderDrawBuffer::CopySurface::execute(GrDrawTarget* gpu) { |
gpu->copySurface(this->dst(), this->src(), fSrcRect, fDstPoint); |
} |