| Index: src/gpu/batches/GrClearBatch.h
|
| diff --git a/src/gpu/batches/GrClearBatch.h b/src/gpu/batches/GrClearBatch.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..b36a53f94d807d64e853157d88925ba0d6a6d8e1
|
| --- /dev/null
|
| +++ b/src/gpu/batches/GrClearBatch.h
|
| @@ -0,0 +1,55 @@
|
| +/*
|
| + * Copyright 2015 Google Inc.
|
| + *
|
| + * Use of this source code is governed by a BSD-style license that can be
|
| + * found in the LICENSE file.
|
| + */
|
| +
|
| +#ifndef GrClearBatch_DEFINED
|
| +#define GrClearBatch_DEFINED
|
| +
|
| +#include "GrBatch.h"
|
| +#include "GrBatchFlushState.h"
|
| +#include "GrGpu.h"
|
| +#include "GrRenderTarget.h"
|
| +
|
| +class GrClearBatch final : public GrBatch {
|
| +public:
|
| + GrClearBatch(const SkIRect& rect, GrColor color, GrRenderTarget* rt)
|
| + : fRect(rect)
|
| + , fColor(color)
|
| + , fRenderTarget(rt) {
|
| + this->initClassID<GrClearBatch>();
|
| + fBounds = SkRect::Make(rect);
|
| + }
|
| +
|
| + const char* name() const override { return "Clear"; }
|
| +
|
| + uint32_t renderTargetUniqueID() const override { return fRenderTarget.get()->getUniqueID(); }
|
| +
|
| + SkString dumpInfo() const {
|
| + SkString string;
|
| + string.printf("Color: 0x%08x, Rect [L: %d, T: %d, R: %d, B: %d], RT: 0x%p",
|
| + fColor, fRect.fLeft, fRect.fTop, fRect.fRight, fRect.fBottom,
|
| + fRenderTarget.get());
|
| + return string;
|
| + }
|
| +
|
| +private:
|
| + bool onCombineIfPossible(GrBatch* t, const GrCaps& caps) override {
|
| + // We could combine clears. TBD how much complexity to put here.
|
| + return false;
|
| + }
|
| +
|
| + void onPrepare(GrBatchFlushState*) override {}
|
| +
|
| + void onDraw(GrBatchFlushState* state) override {
|
| + state->gpu()->clear(fRect, fColor, fRenderTarget.get());
|
| + }
|
| +
|
| + SkIRect fRect;
|
| + GrColor fColor;
|
| + GrPendingIOResource<GrRenderTarget, kWrite_GrIOType> fRenderTarget;
|
| +};
|
| +
|
| +#endif
|
|
|