Chromium Code Reviews| Index: src/gpu/GrGeometryProcessor.h |
| diff --git a/src/gpu/GrGeometryProcessor.h b/src/gpu/GrGeometryProcessor.h |
| index ea4e890ee1a424a71adf36a6ebf6af133e9cebbd..0cb996e7abd8c480ef18817045729872d3a88f98 100644 |
| --- a/src/gpu/GrGeometryProcessor.h |
| +++ b/src/gpu/GrGeometryProcessor.h |
| @@ -22,7 +22,8 @@ public: |
| GrGeometryProcessor() |
| : INHERITED(false) |
| , fWillUseGeoShader(false) |
| - , fHasLocalCoords(false) {} |
| + , fHasExplicitLocalCoords(false) |
| + , fHasTransformedLocalCoords(false) {} |
| bool willUseGeoShader() const override { return fWillUseGeoShader; } |
| @@ -45,6 +46,10 @@ public: |
| SkFAIL("Unsupported\n"); |
| } |
| + bool hasTransformedLocalCoords() const override { return fHasTransformedLocalCoords; } |
|
bsalomon
2015/08/05 15:17:02
should we be using enums rather than a set of bool
|
| + |
| + bool hasExplicitLocalCoords() const override { return fHasExplicitLocalCoords; } |
| + |
| protected: |
| /** |
| * Subclasses call this from their constructor to register vertex attributes. Attributes |
| @@ -64,14 +69,26 @@ protected: |
| void setWillUseGeoShader() { fWillUseGeoShader = true; } |
| - // TODO hack see above |
| - void setHasLocalCoords() { fHasLocalCoords = true; } |
| + /** |
| + * If a GrFragmentProcessor in the GrPipeline needs localCoods, we will provide them in one of |
| + * three ways |
| + * 1) LocalCoordTransform * Position - in Shader |
| + * 2) LocalCoordTransform * ExplicitLocalCoords- in Shader |
| + * 3) A transformation on the CPU uploaded via vertex attribute |
| + */ |
| + void setHasExplicitLocalCoords() { |
| + SkASSERT(!fHasTransformedLocalCoords); |
| + fHasExplicitLocalCoords = true; |
| + } |
| + void setHasTransformedLocalCoords() { |
| + SkASSERT(!fHasExplicitLocalCoords); |
| + fHasTransformedLocalCoords = true; |
| + } |
| private: |
| - bool hasExplicitLocalCoords() const override { return fHasLocalCoords; } |
| - |
| bool fWillUseGeoShader; |
| - bool fHasLocalCoords; |
| + bool fHasExplicitLocalCoords; |
| + bool fHasTransformedLocalCoords; |
| typedef GrPrimitiveProcessor INHERITED; |
| }; |