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, |