| Index: src/gpu/batches/GrClearStencilClipBatch.h
|
| diff --git a/src/gpu/batches/GrClearStencilClipBatch.h b/src/gpu/batches/GrClearStencilClipBatch.h
|
| index aa4d4afff06e3cbc2a407678047a6d8a161a425a..d13d3dcff491372f083294875587cd64d2c3682c 100644
|
| --- a/src/gpu/batches/GrClearStencilClipBatch.h
|
| +++ b/src/gpu/batches/GrClearStencilClipBatch.h
|
| @@ -10,6 +10,7 @@
|
|
|
| #include "GrBatch.h"
|
| #include "GrBatchFlushState.h"
|
| +#include "GrFixedClip.h"
|
| #include "GrGpu.h"
|
| #include "GrGpuCommandBuffer.h"
|
| #include "GrRenderTarget.h"
|
| @@ -18,12 +19,14 @@ class GrClearStencilClipBatch final : public GrBatch {
|
| public:
|
| DEFINE_BATCH_CLASS_ID
|
|
|
| - GrClearStencilClipBatch(const SkIRect& rect, bool insideClip, GrRenderTarget* rt)
|
| + GrClearStencilClipBatch(const GrFixedClip& clip, bool insideStencilMask, GrRenderTarget* rt)
|
| : INHERITED(ClassID())
|
| - , fRect(rect)
|
| - , fInsideClip(insideClip)
|
| + , fClip(clip)
|
| + , fInsideStencilMask(insideStencilMask)
|
| , fRenderTarget(rt) {
|
| - this->setBounds(SkRect::Make(rect), HasAABloat::kNo, IsZeroArea::kNo);
|
| + const SkRect& bounds = fClip.scissorEnabled() ? SkRect::Make(fClip.scissorRect())
|
| + : SkRect::MakeIWH(rt->width(), rt->height());
|
| + this->setBounds(bounds, HasAABloat::kNo, IsZeroArea::kNo);
|
| }
|
|
|
| const char* name() const override { return "ClearStencilClip"; }
|
| @@ -32,10 +35,12 @@ public:
|
| GrRenderTarget* renderTarget() const override { return fRenderTarget.get(); }
|
|
|
| SkString dumpInfo() const override {
|
| - SkString string;
|
| - string.printf("Rect [L: %d, T: %d, R: %d, B: %d], IC: %d, RT: %d",
|
| - fRect.fLeft, fRect.fTop, fRect.fRight, fRect.fBottom, fInsideClip,
|
| - fRenderTarget.get()->getUniqueID());
|
| + SkString string("Scissor [");
|
| + if (fClip.scissorEnabled()) {
|
| + const SkIRect& r = fClip.scissorRect();
|
| + string.appendf("L: %d, T: %d, R: %d, B: %d", r.fLeft, r.fTop, r.fRight, r.fBottom);
|
| + }
|
| + string.appendf("], IC: %d, RT: %d", fInsideStencilMask, fRenderTarget.get()->getUniqueID());
|
| string.append(INHERITED::dumpInfo());
|
| return string;
|
| }
|
| @@ -46,11 +51,11 @@ private:
|
| void onPrepare(GrBatchFlushState*) override {}
|
|
|
| void onDraw(GrBatchFlushState* state) override {
|
| - state->commandBuffer()->clearStencilClip(fRect, fInsideClip, fRenderTarget.get());
|
| + state->commandBuffer()->clearStencilClip(fClip, fInsideStencilMask, fRenderTarget.get());
|
| }
|
|
|
| - SkIRect fRect;
|
| - bool fInsideClip;
|
| + const GrFixedClip fClip;
|
| + const bool fInsideStencilMask;
|
| GrPendingIOResource<GrRenderTarget, kWrite_GrIOType> fRenderTarget;
|
|
|
| typedef GrBatch INHERITED;
|
|
|