| Index: src/gpu/batches/GrDiscardBatch.h
|
| diff --git a/src/gpu/batches/GrDiscardBatch.h b/src/gpu/batches/GrDiscardBatch.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..9d9570fe85ec9b84e141794df795df31fa5e96ec
|
| --- /dev/null
|
| +++ b/src/gpu/batches/GrDiscardBatch.h
|
| @@ -0,0 +1,48 @@
|
| +/*
|
| + * 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 GrDiscardBatch_DEFINED
|
| +#define GrDiscardBatch_DEFINED
|
| +
|
| +#include "GrBatch.h"
|
| +#include "GrBatchFlushState.h"
|
| +#include "GrGpu.h"
|
| +#include "GrRenderTarget.h"
|
| +
|
| +class GrDiscardBatch final : public GrBatch {
|
| +public:
|
| + GrDiscardBatch(GrRenderTarget* rt)
|
| + : fRenderTarget(rt) {
|
| + this->initClassID<GrDiscardBatch>();
|
| + fBounds = SkRect::MakeWH(SkIntToScalar(rt->width()), SkIntToScalar(rt->height()));
|
| + }
|
| +
|
| + const char* name() const override { return "Discard"; }
|
| +
|
| + uint32_t renderTargetUniqueID() const override { return fRenderTarget.get()->getUniqueID(); }
|
| +
|
| + SkString dumpInfo() const {
|
| + SkString string;
|
| + string.printf("RT: 0x%p", fRenderTarget.get());
|
| + return string;
|
| + }
|
| +
|
| +private:
|
| + bool onCombineIfPossible(GrBatch* that, const GrCaps& caps) override {
|
| + return fRenderTarget == that->cast<GrDiscardBatch>()->fRenderTarget;
|
| + }
|
| +
|
| + void onPrepare(GrBatchFlushState*) override {}
|
| +
|
| + void onDraw(GrBatchFlushState* state) override {
|
| + state->gpu()->discard(fRenderTarget.get());
|
| + }
|
| +
|
| + GrPendingIOResource<GrRenderTarget, kWrite_GrIOType> fRenderTarget;
|
| +};
|
| +
|
| +#endif
|
|
|