aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/batches/GrClearBatch.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/gpu/batches/GrClearBatch.h')
-rw-r--r--src/gpu/batches/GrClearBatch.h58
1 files changed, 10 insertions, 48 deletions
diff --git a/src/gpu/batches/GrClearBatch.h b/src/gpu/batches/GrClearBatch.h
index 9a653a3962..00a1c84de6 100644
--- a/src/gpu/batches/GrClearBatch.h
+++ b/src/gpu/batches/GrClearBatch.h
@@ -18,12 +18,8 @@ class GrClearBatch final : public GrBatch {
public:
DEFINE_BATCH_CLASS_ID
- GrClearBatch(const SkIRect& rect, GrColor color, GrRenderTarget* rt)
- : INHERITED(ClassID())
- , fRect(rect)
- , fColor(color)
- , fRenderTarget(rt) {
- this->setBounds(SkRect::Make(rect), HasAABloat::kNo, IsZeroArea::kNo);
+ static sk_sp<GrBatch> Make(const SkIRect& rect, GrColor color, GrRenderTarget* rt) {
+ return sk_sp<GrBatch>(new GrClearBatch(rect, color, rt));
}
const char* name() const override { return "Clear"; }
@@ -41,6 +37,14 @@ public:
}
private:
+ GrClearBatch(const SkIRect& rect, GrColor color, GrRenderTarget* rt)
+ : INHERITED(ClassID())
+ , fRect(rect)
+ , fColor(color)
+ , fRenderTarget(rt) {
+ this->setBounds(SkRect::Make(rect), HasAABloat::kNo, IsZeroArea::kNo);
+ }
+
bool onCombineIfPossible(GrBatch* t, const GrCaps& caps) override {
// This could be much more complicated. Currently we look at cases where the new clear
// contains the old clear, or when the new clear is a subset of the old clear and is the
@@ -71,46 +75,4 @@ private:
typedef GrBatch INHERITED;
};
-class GrClearStencilClipBatch final : public GrBatch {
-public:
- DEFINE_BATCH_CLASS_ID
-
- GrClearStencilClipBatch(const SkIRect& rect, bool insideClip, GrRenderTarget* rt)
- : INHERITED(ClassID())
- , fRect(rect)
- , fInsideClip(insideClip)
- , fRenderTarget(rt) {
- this->setBounds(SkRect::Make(rect), HasAABloat::kNo, IsZeroArea::kNo);
- }
-
- const char* name() const override { return "ClearStencilClip"; }
-
- uint32_t renderTargetUniqueID() const override { return fRenderTarget.get()->getUniqueID(); }
- 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: 0x%p",
- fRect.fLeft, fRect.fTop, fRect.fRight, fRect.fBottom, fInsideClip,
- fRenderTarget.get());
- string.append(INHERITED::dumpInfo());
- return string;
- }
-
-private:
- bool onCombineIfPossible(GrBatch* t, const GrCaps& caps) override { return false; }
-
- void onPrepare(GrBatchFlushState*) override {}
-
- void onDraw(GrBatchFlushState* state) override {
- state->commandBuffer()->clearStencilClip(fRect, fInsideClip, fRenderTarget.get());
- }
-
- SkIRect fRect;
- bool fInsideClip;
- GrPendingIOResource<GrRenderTarget, kWrite_GrIOType> fRenderTarget;
-
- typedef GrBatch INHERITED;
-};
-
#endif