diff options
author | 2018-06-19 14:33:47 -0400 | |
---|---|---|
committer | 2018-06-19 20:01:29 +0000 | |
commit | 92be2f74db81f0ed480b55c58cbde39270f9b772 (patch) | |
tree | d2b7135f511a318f10c5c86f2537c07051c922bd /src/gpu/effects/GrBezierEffect.h | |
parent | f5ac906476cd26f2967a48340940e6af580fa71f (diff) |
Revert "Revert "Change how vertex/instance attributes are handled in geometry processors.""
This reverts commit 5045e501d2aec23e5f1e4b46346033ac3202c6b0.
TBR=csmartdalton@google.com
Change-Id: Ifbf5f1d8f8ef340fdc69653e931b6d68d4bf0854
Reviewed-on: https://skia-review.googlesource.com/135862
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Diffstat (limited to 'src/gpu/effects/GrBezierEffect.h')
-rw-r--r-- | src/gpu/effects/GrBezierEffect.h | 44 |
1 files changed, 26 insertions, 18 deletions
diff --git a/src/gpu/effects/GrBezierEffect.h b/src/gpu/effects/GrBezierEffect.h index 174470410c..eebe42a5cd 100644 --- a/src/gpu/effects/GrBezierEffect.h +++ b/src/gpu/effects/GrBezierEffect.h @@ -93,8 +93,8 @@ public: const char* name() const override { return "Conic"; } - inline const Attribute* inPosition() const { return fInPosition; } - inline const Attribute* inConicCoeffs() const { return fInConicCoeffs; } + inline const Attribute& inPosition() const { return kAttributes[0]; } + inline const Attribute& inConicCoeffs() const { return kAttributes[1]; } inline bool isAntiAliased() const { return GrProcessorEdgeTypeIsAA(fEdgeType); } inline bool isFilled() const { return GrProcessorEdgeTypeIsFill(fEdgeType); } inline GrClipEdgeType getEdgeType() const { return fEdgeType; } @@ -112,14 +112,16 @@ private: GrConicEffect(GrColor, const SkMatrix& viewMatrix, uint8_t coverage, GrClipEdgeType, const SkMatrix& localMatrix, bool usesLocalCoords); + const Attribute& onVertexAttribute(int i) const override { return kAttributes[i]; } + GrColor fColor; SkMatrix fViewMatrix; SkMatrix fLocalMatrix; bool fUsesLocalCoords; uint8_t fCoverageScale; GrClipEdgeType fEdgeType; - const Attribute* fInPosition; - const Attribute* fInConicCoeffs; + static constexpr Attribute kAttributes[] = {{"inPosition", kFloat2_GrVertexAttribType}, + {"inConicCoeffs", kHalf4_GrVertexAttribType}}; GR_DECLARE_GEOMETRY_PROCESSOR_TEST @@ -175,8 +177,8 @@ public: const char* name() const override { return "Quad"; } - inline const Attribute* inPosition() const { return fInPosition; } - inline const Attribute* inHairQuadEdge() const { return fInHairQuadEdge; } + inline const Attribute& inPosition() const { return kAttributes[0]; } + inline const Attribute& inHairQuadEdge() const { return kAttributes[1]; } inline bool isAntiAliased() const { return GrProcessorEdgeTypeIsAA(fEdgeType); } inline bool isFilled() const { return GrProcessorEdgeTypeIsFill(fEdgeType); } inline GrClipEdgeType getEdgeType() const { return fEdgeType; } @@ -194,14 +196,17 @@ private: GrQuadEffect(GrColor, const SkMatrix& viewMatrix, uint8_t coverage, GrClipEdgeType, const SkMatrix& localMatrix, bool usesLocalCoords); - GrColor fColor; - SkMatrix fViewMatrix; - SkMatrix fLocalMatrix; - bool fUsesLocalCoords; - uint8_t fCoverageScale; + const Attribute& onVertexAttribute(int i) const override { return kAttributes[i]; } + + GrColor fColor; + SkMatrix fViewMatrix; + SkMatrix fLocalMatrix; + bool fUsesLocalCoords; + uint8_t fCoverageScale; GrClipEdgeType fEdgeType; - const Attribute* fInPosition; - const Attribute* fInHairQuadEdge; + + static constexpr Attribute kAttributes[] = {{"inPosition", kFloat2_GrVertexAttribType}, + {"inHairQuadEdge", kHalf4_GrVertexAttribType}}; GR_DECLARE_GEOMETRY_PROCESSOR_TEST @@ -263,7 +268,7 @@ public: const char* name() const override { return "Cubic"; } - inline const Attribute* inPosition() const { return fInPosition; } + inline const Attribute& inPosition() const { return kInPosition; } inline bool isAntiAliased() const { return GrProcessorEdgeTypeIsAA(fEdgeType); } inline bool isFilled() const { return GrProcessorEdgeTypeIsFill(fEdgeType); } inline GrClipEdgeType getEdgeType() const { return fEdgeType; } @@ -280,11 +285,14 @@ private: GrCubicEffect(GrColor, const SkMatrix& viewMatrix, const SkMatrix& devKLMMatrix, GrClipEdgeType); - GrColor fColor; - SkMatrix fViewMatrix; - SkMatrix fDevKLMMatrix; + const Attribute& onVertexAttribute(int) const override { return kInPosition; } + + GrColor fColor; + SkMatrix fViewMatrix; + SkMatrix fDevKLMMatrix; GrClipEdgeType fEdgeType; - const Attribute* fInPosition; + + static constexpr Attribute kInPosition = {"inPosition", kFloat2_GrVertexAttribType}; GR_DECLARE_GEOMETRY_PROCESSOR_TEST |