| Index: src/gpu/GrGeometryProcessor.h
|
| diff --git a/src/gpu/GrGeometryProcessor.h b/src/gpu/GrGeometryProcessor.h
|
| index a7fea765ab6cdc9d104f2f3fa093651f98a00e03..c55b9afc795ddaa79ee08f10842701980ed77565 100644
|
| --- a/src/gpu/GrGeometryProcessor.h
|
| +++ b/src/gpu/GrGeometryProcessor.h
|
| @@ -9,6 +9,7 @@
|
| #define GrGeometryProcessor_DEFINED
|
|
|
| #include "GrColor.h"
|
| +#include "GrGeometryData.h"
|
| #include "GrProcessor.h"
|
| #include "GrShaderVar.h"
|
|
|
| @@ -45,8 +46,6 @@
|
| /*
|
| * A struct for tracking batching decisions. While this lives on GrOptState, it is managed
|
| * entirely by the derived classes of the GP.
|
| - * // TODO this was an early attempt at handling out of order batching. It should be
|
| - * used carefully as it is being replaced by GrBatch
|
| */
|
| class GrBatchTracker {
|
| public:
|
| @@ -66,24 +65,12 @@
|
| SkAlignedSStorage<kMaxSize> fData;
|
| };
|
|
|
| -class GrIndexBufferAllocPool;
|
| class GrGLCaps;
|
| class GrGLPrimitiveProcessor;
|
| -class GrVertexBufferAllocPool;
|
| +class GrOptDrawState;
|
|
|
| struct GrInitInvariantOutput;
|
|
|
| -/*
|
| - * This struct allows the GrPipeline to communicate information about the pipeline. Most of this
|
| - * is overrides, but some of it is general information. Logically it should live in GrPipeline.h,
|
| - * but this is problematic due to circular dependencies.
|
| - */
|
| -struct GrPipelineInfo {
|
| - bool fColorIgnored;
|
| - bool fCoverageIgnored;
|
| - GrColor fOverrideColor;
|
| - bool fUsesLocalCoords;
|
| -};
|
|
|
| /*
|
| * This enum is shared by GrPrimitiveProcessors and GrGLPrimitiveProcessors to coordinate shaders
|
| @@ -108,7 +95,17 @@
|
| const SkMatrix& viewMatrix() const { return fViewMatrix; }
|
| const SkMatrix& localMatrix() const { return fLocalMatrix; }
|
|
|
| - virtual void initBatchTracker(GrBatchTracker*, const GrPipelineInfo&) const = 0;
|
| + /*
|
| + * This struct allows the optstate to communicate requirements to the GrPrimitiveProcessor.
|
| + */
|
| + struct InitBT {
|
| + bool fColorIgnored;
|
| + bool fCoverageIgnored;
|
| + GrColor fOverrideColor;
|
| + bool fUsesLocalCoords;
|
| + };
|
| +
|
| + virtual void initBatchTracker(GrBatchTracker*, const InitBT&) const = 0;
|
|
|
| virtual bool canMakeEqual(const GrBatchTracker& mine,
|
| const GrPrimitiveProcessor& that,
|
| @@ -307,8 +304,7 @@
|
| * TODO this function changes quite a bit with deferred geometry. There the GrGeometryProcessor
|
| * can upload a new color via attribute if needed.
|
| */
|
| - static GrGPInput GetColorInputType(GrColor* color, GrColor primitiveColor,
|
| - const GrPipelineInfo& init,
|
| + static GrGPInput GetColorInputType(GrColor* color, GrColor primitiveColor, const InitBT& init,
|
| bool hasVertexColor) {
|
| if (init.fColorIgnored) {
|
| *color = GrColor_ILLEGAL;
|
| @@ -382,7 +378,7 @@
|
| return SkNEW_ARGS(GrPathProcessor, (color, viewMatrix, localMatrix));
|
| }
|
|
|
| - void initBatchTracker(GrBatchTracker*, const GrPipelineInfo&) const SK_OVERRIDE;
|
| + void initBatchTracker(GrBatchTracker*, const InitBT&) const SK_OVERRIDE;
|
|
|
| bool canMakeEqual(const GrBatchTracker& mine,
|
| const GrPrimitiveProcessor& that,
|
|
|