Index: src/gpu/GrGpu.h |
diff --git a/src/gpu/GrGpu.h b/src/gpu/GrGpu.h |
index 34b417cb13f36907bb80249aac384b4b62c8ad7e..8cc673ab64f48d9908498c16c003980baa18101a 100644 |
--- a/src/gpu/GrGpu.h |
+++ b/src/gpu/GrGpu.h |
@@ -271,6 +271,10 @@ public: |
bool canIgnoreRect, |
GrRenderTarget* renderTarget = NULL) SK_OVERRIDE; |
+ virtual void clearStencilClip(const SkIRect& rect, |
+ bool insideClip, |
+ GrRenderTarget* renderTarget = NULL) SK_OVERRIDE; |
+ |
virtual void purgeResources() SK_OVERRIDE { |
// The clip mask manager can rebuild all its clip masks so just |
// get rid of them all. |
@@ -294,11 +298,6 @@ public: |
return fResetTimestamp; |
} |
- // GrGpu subclass sets clip bit in the stencil buffer. The subclass is |
- // free to clear the remaining bits to zero if masked clears are more |
- // expensive than clearing all bits. |
- virtual void clearStencilClip(GrRenderTarget*, const SkIRect& rect, bool insideClip) = 0; |
- |
enum PrivateDrawStateStateBits { |
kFirstBit = (GrDrawState::kLastPublicStateBit << 1), |
@@ -415,6 +414,13 @@ private: |
virtual void onClear(GrRenderTarget*, const SkIRect* rect, GrColor color, |
bool canIgnoreRect) = 0; |
+ |
+ // Overridden by backend specific classes to perform a clear of the stencil clip bits. This is |
+ // ONLY used by the clip mask manager |
+ virtual void onClearStencilClip(GrRenderTarget*, |
+ const SkIRect& rect, |
+ bool insideClip) = 0; |
+ |
// overridden by backend-specific derived class to perform the draw call. |
virtual void onGpuDraw(const DrawInfo&) = 0; |
@@ -447,7 +453,7 @@ private: |
// backend-specific flush of the state. |
// returns false if current state is unsupported. |
virtual bool flushGraphicsState(DrawType, |
- const ScissorState&, |
+ const GrClipMaskManager::ScissorState&, |
const GrDeviceCoordTexture* dstCopy) = 0; |
// clears target's entire stencil buffer to 0 |