aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/effects/GrBezierEffect.h
diff options
context:
space:
mode:
authorGravatar Brian Salomon <bsalomon@google.com>2018-06-19 14:33:47 -0400
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2018-06-19 20:01:29 +0000
commit92be2f74db81f0ed480b55c58cbde39270f9b772 (patch)
treed2b7135f511a318f10c5c86f2537c07051c922bd /src/gpu/effects/GrBezierEffect.h
parentf5ac906476cd26f2967a48340940e6af580fa71f (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.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