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>
diff --git a/src/gpu/effects/GrBezierEffect.cpp b/src/gpu/effects/GrBezierEffect.cpp
index 3dee2f4..d68b1bf 100644
--- a/src/gpu/effects/GrBezierEffect.cpp
+++ b/src/gpu/effects/GrBezierEffect.cpp
@@ -79,7 +79,7 @@
GrGLSLVarying v(kFloat4_GrSLType);
varyingHandler->addVarying("ConicCoeffs", &v);
- vertBuilder->codeAppendf("%s = %s;", v.vsOut(), gp.inConicCoeffs()->name());
+ vertBuilder->codeAppendf("%s = %s;", v.vsOut(), gp.inConicCoeffs().name());
GrGLSLFPFragmentBuilder* fragBuilder = args.fFragBuilder;
// Setup pass through color
@@ -89,7 +89,7 @@
this->writeOutputPosition(vertBuilder,
uniformHandler,
gpArgs,
- gp.inPosition()->name(),
+ gp.inPosition().name(),
gp.viewMatrix(),
&fViewMatrixUniform);
@@ -97,7 +97,7 @@
this->emitTransforms(vertBuilder,
varyingHandler,
uniformHandler,
- gp.inPosition()->asShaderVar(),
+ gp.inPosition().asShaderVar(),
gp.localMatrix(),
args.fFPCoordTransformHandler);
@@ -219,6 +219,8 @@
//////////////////////////////////////////////////////////////////////////////
+constexpr GrPrimitiveProcessor::Attribute GrConicEffect::kAttributes[];
+
GrConicEffect::~GrConicEffect() {}
void GrConicEffect::getGLSLProcessorKey(const GrShaderCaps& caps,
@@ -240,8 +242,7 @@
, fUsesLocalCoords(usesLocalCoords)
, fCoverageScale(coverage)
, fEdgeType(edgeType) {
- fInPosition = &this->addVertexAttrib("inPosition", kFloat2_GrVertexAttribType);
- fInConicCoeffs = &this->addVertexAttrib("inConicCoeffs", kHalf4_GrVertexAttribType);
+ this->setVertexAttributeCnt(2);
}
//////////////////////////////////////////////////////////////////////////////
@@ -331,7 +332,7 @@
GrGLSLVarying v(kHalf4_GrSLType);
varyingHandler->addVarying("HairQuadEdge", &v);
- vertBuilder->codeAppendf("%s = %s;", v.vsOut(), gp.inHairQuadEdge()->name());
+ vertBuilder->codeAppendf("%s = %s;", v.vsOut(), gp.inHairQuadEdge().name());
GrGLSLFPFragmentBuilder* fragBuilder = args.fFragBuilder;
// Setup pass through color
@@ -341,7 +342,7 @@
this->writeOutputPosition(vertBuilder,
uniformHandler,
gpArgs,
- gp.inPosition()->name(),
+ gp.inPosition().name(),
gp.viewMatrix(),
&fViewMatrixUniform);
@@ -349,7 +350,7 @@
this->emitTransforms(vertBuilder,
varyingHandler,
uniformHandler,
- gp.inPosition()->asShaderVar(),
+ gp.inPosition().asShaderVar(),
gp.localMatrix(),
args.fFPCoordTransformHandler);
@@ -420,6 +421,8 @@
//////////////////////////////////////////////////////////////////////////////
+constexpr GrPrimitiveProcessor::Attribute GrQuadEffect::kAttributes[];
+
GrQuadEffect::~GrQuadEffect() {}
void GrQuadEffect::getGLSLProcessorKey(const GrShaderCaps& caps,
@@ -441,8 +444,7 @@
, fUsesLocalCoords(usesLocalCoords)
, fCoverageScale(coverage)
, fEdgeType(edgeType) {
- fInPosition = &this->addVertexAttrib("inPosition", kFloat2_GrVertexAttribType);
- fInHairQuadEdge = &this->addVertexAttrib("inHairQuadEdge", kHalf4_GrVertexAttribType);
+ this->setVertexAttributeCnt(2);
}
//////////////////////////////////////////////////////////////////////////////
@@ -544,7 +546,7 @@
this->writeOutputPosition(vertBuilder,
uniformHandler,
gpArgs,
- gp.inPosition()->name(),
+ gp.inPosition().name(),
gp.viewMatrix(),
&fViewMatrixUniform);
@@ -576,7 +578,7 @@
this->emitTransforms(vertBuilder,
varyingHandler,
uniformHandler,
- gp.inPosition()->asShaderVar(),
+ gp.inPosition().asShaderVar(),
args.fFPCoordTransformHandler);
GrShaderVar edgeAlpha("edgeAlpha", kFloat_GrSLType, 0);
@@ -647,6 +649,8 @@
//////////////////////////////////////////////////////////////////////////////
+constexpr GrPrimitiveProcessor::Attribute GrCubicEffect::kInPosition;
+
GrCubicEffect::~GrCubicEffect() {}
void GrCubicEffect::getGLSLProcessorKey(const GrShaderCaps& caps, GrProcessorKeyBuilder* b) const {
@@ -664,7 +668,7 @@
, fViewMatrix(viewMatrix)
, fDevKLMMatrix(devKLMMatrix)
, fEdgeType(edgeType) {
- fInPosition = &this->addVertexAttrib("inPosition", kFloat2_GrVertexAttribType);
+ this->setVertexAttributeCnt(1);
}
//////////////////////////////////////////////////////////////////////////////