Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(288)

Unified Diff: src/gpu/batches/GrClearBatch.h

Issue 2145643003: Move GrDrawTarget::clear logic into GrDrawContext (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Fix typo Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/gpu/GrDrawTarget.cpp ('k') | src/gpu/batches/GrClearStencilClipBatch.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/gpu/batches/GrClearBatch.h
diff --git a/src/gpu/batches/GrClearBatch.h b/src/gpu/batches/GrClearBatch.h
index 9a653a3962ca386efdd6c3d55033fc41fbccd029..00a1c84de653cfb5d811fb2c2374444be990286a 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
« no previous file with comments | « src/gpu/GrDrawTarget.cpp ('k') | src/gpu/batches/GrClearStencilClipBatch.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698