| Index: src/gpu/batches/GrBatch.h
|
| diff --git a/src/gpu/batches/GrBatch.h b/src/gpu/batches/GrBatch.h
|
| index ef8f56c4b9daa1a5241abbd91947878c437ac59b..7bb6af1265361bba946f8e88d561cdd0c6605167 100644
|
| --- a/src/gpu/batches/GrBatch.h
|
| +++ b/src/gpu/batches/GrBatch.h
|
| @@ -9,17 +9,11 @@
|
| #define GrBatch_DEFINED
|
|
|
| #include <new>
|
| -#include "GrBatchTarget.h"
|
| -#include "GrGeometryProcessor.h"
|
| #include "GrNonAtomicRef.h"
|
| -#include "GrVertices.h"
|
| -#include "SkAtomics.h"
|
| -#include "SkTypes.h"
|
|
|
| -class GrGpu;
|
| -class GrPipeline;
|
| +#include "SkRect.h"
|
|
|
| -struct GrInitInvariantOutput;
|
| +class GrCaps;
|
|
|
| /**
|
| * GrBatch is the base class for all Ganesh deferred geometry generators. To facilitate
|
| @@ -130,94 +124,4 @@ private:
|
| typedef GrNonAtomicRef INHERITED;
|
| };
|
|
|
| -/**
|
| - * Base class for GrBatches that draw. These batches have a GrPipeline installed by GrDrawTarget.
|
| - */
|
| -class GrDrawBatch : public GrBatch {
|
| -public:
|
| - GrDrawBatch();
|
| - ~GrDrawBatch() override;
|
| -
|
| - virtual void getInvariantOutputColor(GrInitInvariantOutput* out) const = 0;
|
| - virtual void getInvariantOutputCoverage(GrInitInvariantOutput* out) const = 0;
|
| -
|
| - const GrPipeline* pipeline() const {
|
| - SkASSERT(fPipelineInstalled);
|
| - return reinterpret_cast<const GrPipeline*>(fPipelineStorage.get());
|
| - }
|
| -
|
| - bool installPipeline(const GrPipeline::CreateArgs&);
|
| -
|
| - // TODO no GrPrimitiveProcessors yet read fragment position
|
| - bool willReadFragmentPosition() const { return false; }
|
| -
|
| -private:
|
| - /**
|
| - * initBatchTracker is a hook for the some additional overrides / optimization possibilities
|
| - * from the GrXferProcessor.
|
| - */
|
| - virtual void initBatchTracker(const GrPipelineOptimizations&) = 0;
|
| -
|
| - SkAlignedSTStorage<1, GrPipeline> fPipelineStorage;
|
| - bool fPipelineInstalled;
|
| - typedef GrBatch INHERITED;
|
| -};
|
| -
|
| -/**
|
| - * Base class for vertex-based GrBatches.
|
| - */
|
| -class GrVertexBatch : public GrDrawBatch {
|
| -public:
|
| - GrVertexBatch();
|
| -
|
| - virtual void generateGeometry(GrBatchTarget*) = 0;
|
| -
|
| - // TODO this goes away when batches are everywhere
|
| - void setNumberOfDraws(int numberOfDraws) { fNumberOfDraws = numberOfDraws; }
|
| - int numberOfDraws() const { return fNumberOfDraws; }
|
| -
|
| -protected:
|
| - /** Helper for rendering instances using an instanced index index buffer. This class creates the
|
| - space for the vertices and flushes the draws to the batch target. */
|
| - class InstancedHelper {
|
| - public:
|
| - InstancedHelper() {}
|
| - /** Returns the allocated storage for the vertices. The caller should populate the before
|
| - vertices before calling issueDraws(). */
|
| - void* init(GrBatchTarget* batchTarget, GrPrimitiveType, size_t vertexStride,
|
| - const GrIndexBuffer*, int verticesPerInstance, int indicesPerInstance,
|
| - int instancesToDraw);
|
| -
|
| - /** Call after init() to issue draws to the batch target.*/
|
| - void issueDraw(GrBatchTarget* batchTarget) {
|
| - SkASSERT(fVertices.instanceCount());
|
| - batchTarget->draw(fVertices);
|
| - }
|
| - private:
|
| - GrVertices fVertices;
|
| - };
|
| -
|
| - static const int kVerticesPerQuad = 4;
|
| - static const int kIndicesPerQuad = 6;
|
| -
|
| - /** A specialization of InstanceHelper for quad rendering. */
|
| - class QuadHelper : private InstancedHelper {
|
| - public:
|
| - QuadHelper() : INHERITED() {}
|
| - /** Finds the cached quad index buffer and reserves vertex space. Returns NULL on failure
|
| - and on sucess a pointer to the vertex data that the caller should populate before
|
| - calling issueDraws(). */
|
| - void* init(GrBatchTarget* batchTarget, size_t vertexStride, int quadsToDraw);
|
| -
|
| - using InstancedHelper::issueDraw;
|
| -
|
| - private:
|
| - typedef InstancedHelper INHERITED;
|
| - };
|
| -
|
| -private:
|
| - int fNumberOfDraws;
|
| - typedef GrDrawBatch INHERITED;
|
| -};
|
| -
|
| #endif
|
|
|