Index: src/gpu/GrInOrderDrawBuffer.h |
diff --git a/src/gpu/GrInOrderDrawBuffer.h b/src/gpu/GrInOrderDrawBuffer.h |
index 5d0fc0440dfc9b2813c89c9620cf078af10b060a..5387a5119326075e88a61353a52c899a72535d07 100644 |
--- a/src/gpu/GrInOrderDrawBuffer.h |
+++ b/src/gpu/GrInOrderDrawBuffer.h |
@@ -75,11 +75,16 @@ public: |
// overrides from GrDrawTarget |
virtual bool geometryHints(int* vertexCount, |
int* indexCount) const SK_OVERRIDE; |
+ |
virtual void clear(const SkIRect* rect, |
GrColor color, |
bool canIgnoreRect, |
GrRenderTarget* renderTarget) SK_OVERRIDE; |
+ virtual void clearStencilClip(const SkIRect& rect, |
+ bool insideClip, |
+ GrRenderTarget* renderTarget) SK_OVERRIDE; |
+ |
virtual void discard(GrRenderTarget*) SK_OVERRIDE; |
virtual void initCopySurfaceDstDesc(const GrSurface* src, GrTextureDesc* desc) SK_OVERRIDE; |
@@ -188,6 +193,21 @@ private: |
GrPendingIOResource<GrRenderTarget, kWrite_GrIOType> fRenderTarget; |
}; |
+ // This command is ONLY used by the clip mask manager to clear the stencil clip bits |
+ struct ClearStencilClip : public Cmd { |
+ ClearStencilClip(GrRenderTarget* rt) : Cmd(kClear_Cmd), fRenderTarget(rt) {} |
+ |
+ GrRenderTarget* renderTarget() const { return fRenderTarget.get(); } |
+ |
+ virtual void execute(GrDrawTarget*); |
+ |
+ SkIRect fRect; |
+ bool fInsideClip; |
+ |
+ private: |
+ GrPendingIOResource<GrRenderTarget, kWrite_GrIOType> fRenderTarget; |
+ }; |
+ |
struct CopySurface : public Cmd { |
CopySurface(GrSurface* dst, GrSurface* src) : Cmd(kCopySurface_Cmd), fDst(dst), fSrc(src) {} |