aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/effects/GrBezierEffect.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/gpu/effects/GrBezierEffect.h')
-rw-r--r--src/gpu/effects/GrBezierEffect.h44
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