Index: src/gpu/GrGeometryProcessor.h |
diff --git a/src/gpu/GrGeometryProcessor.h b/src/gpu/GrGeometryProcessor.h |
index c55b9afc795ddaa79ee08f10842701980ed77565..a7fea765ab6cdc9d104f2f3fa093651f98a00e03 100644 |
--- a/src/gpu/GrGeometryProcessor.h |
+++ b/src/gpu/GrGeometryProcessor.h |
@@ -9,7 +9,6 @@ |
#define GrGeometryProcessor_DEFINED |
#include "GrColor.h" |
-#include "GrGeometryData.h" |
#include "GrProcessor.h" |
#include "GrShaderVar.h" |
@@ -46,6 +45,8 @@ |
/* |
* 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: |
@@ -65,12 +66,24 @@ private: |
SkAlignedSStorage<kMaxSize> fData; |
}; |
+class GrIndexBufferAllocPool; |
class GrGLCaps; |
class GrGLPrimitiveProcessor; |
-class GrOptDrawState; |
+class GrVertexBufferAllocPool; |
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 |
@@ -95,17 +108,7 @@ public: |
const SkMatrix& viewMatrix() const { return fViewMatrix; } |
const SkMatrix& localMatrix() const { return fLocalMatrix; } |
- /* |
- * 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 void initBatchTracker(GrBatchTracker*, const GrPipelineInfo&) const = 0; |
virtual bool canMakeEqual(const GrBatchTracker& mine, |
const GrPrimitiveProcessor& that, |
@@ -304,7 +307,8 @@ protected: |
* 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 InitBT& init, |
+ static GrGPInput GetColorInputType(GrColor* color, GrColor primitiveColor, |
+ const GrPipelineInfo& init, |
bool hasVertexColor) { |
if (init.fColorIgnored) { |
*color = GrColor_ILLEGAL; |
@@ -378,7 +382,7 @@ public: |
return SkNEW_ARGS(GrPathProcessor, (color, viewMatrix, localMatrix)); |
} |
- void initBatchTracker(GrBatchTracker*, const InitBT&) const SK_OVERRIDE; |
+ void initBatchTracker(GrBatchTracker*, const GrPipelineInfo&) const SK_OVERRIDE; |
bool canMakeEqual(const GrBatchTracker& mine, |
const GrPrimitiveProcessor& that, |