| Index: src/gpu/batches/GrStencilPathBatch.h
|
| diff --git a/src/gpu/batches/GrStencilPathBatch.h b/src/gpu/batches/GrStencilPathBatch.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..908dd1f59324d078c496dd7d92073504bf564e5e
|
| --- /dev/null
|
| +++ b/src/gpu/batches/GrStencilPathBatch.h
|
| @@ -0,0 +1,72 @@
|
| +/*
|
| + * 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 GrStencilPathBatch_DEFINED
|
| +#define GrStencilPathBatch_DEFINED
|
| +
|
| +#include "GrBatch.h"
|
| +#include "GrBatchFlushState.h"
|
| +#include "GrGpu.h"
|
| +#include "GrPath.h"
|
| +#include "GrPathRendering.h"
|
| +#include "GrRenderTarget.h"
|
| +
|
| +class GrStencilPathBatch final : public GrBatch {
|
| +public:
|
| + static GrBatch* Create(const SkMatrix& viewMatrix,
|
| + bool useHWAA,
|
| + const GrStencilSettings& stencil,
|
| + const GrScissorState& scissor,
|
| + GrRenderTarget* renderTarget,
|
| + const GrPath* path) {
|
| + return SkNEW_ARGS(GrStencilPathBatch, (viewMatrix, useHWAA, stencil, scissor, renderTarget,
|
| + path));
|
| + }
|
| +
|
| + const char* name() const override { return "StencilPath"; }
|
| +
|
| + uint32_t renderTargetUniqueID() const { return fRenderTarget.get()->getUniqueID(); }
|
| +
|
| + SkString dumpInfo() const override {
|
| + SkString string;
|
| + string.printf("PATH: 0x%p, AA:%d", fPath.get(), fUseHWAA);
|
| + return string;
|
| + }
|
| +
|
| +private:
|
| + GrStencilPathBatch(const SkMatrix& viewMatrix,
|
| + bool useHWAA,
|
| + const GrStencilSettings& stencil,
|
| + const GrScissorState& scissor,
|
| + GrRenderTarget* renderTarget,
|
| + const GrPath* path)
|
| + : fViewMatrix(viewMatrix)
|
| + , fUseHWAA(useHWAA)
|
| + , fStencil(stencil)
|
| + , fScissor(scissor)
|
| + , fRenderTarget(renderTarget)
|
| + , fPath(path) {}
|
| +
|
| + bool onCombineIfPossible(GrBatch* t, const GrCaps& caps) override { return false; }
|
| +
|
| + void onPrepare(GrBatchFlushState*) override {}
|
| +
|
| + void onDraw(GrBatchFlushState* state) override {
|
| + GrPathRendering::StencilPathArgs args(fUseHWAA, fRenderTarget.get(), &fViewMatrix,
|
| + &fScissor, &fStencil);
|
| + state->gpu()->pathRendering()->stencilPath(args, fPath.get());
|
| + }
|
| +
|
| + SkMatrix fViewMatrix;
|
| + bool fUseHWAA;
|
| + GrStencilSettings fStencil;
|
| + GrScissorState fScissor;
|
| + GrPendingIOResource<GrRenderTarget, kWrite_GrIOType> fRenderTarget;
|
| + GrPendingIOResource<const GrPath, kRead_GrIOType> fPath;
|
| +};
|
| +
|
| +#endif
|
|
|