aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/ops/GrAAConvexPathRenderer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/gpu/ops/GrAAConvexPathRenderer.cpp')
-rw-r--r--src/gpu/ops/GrAAConvexPathRenderer.cpp42
1 files changed, 22 insertions, 20 deletions
diff --git a/src/gpu/ops/GrAAConvexPathRenderer.cpp b/src/gpu/ops/GrAAConvexPathRenderer.cpp
index 3237afeaed..566eebd827 100644
--- a/src/gpu/ops/GrAAConvexPathRenderer.cpp
+++ b/src/gpu/ops/GrAAConvexPathRenderer.cpp
@@ -576,21 +576,21 @@ public:
GrGLSLVarying v(kHalf4_GrSLType);
varyingHandler->addVarying("QuadEdge", &v);
- vertBuilder->codeAppendf("%s = %s;", v.vsOut(), qe.fInQuadEdge->name());
+ vertBuilder->codeAppendf("%s = %s;", v.vsOut(), qe.kInQuadEdge.name());
// Setup pass through color
- varyingHandler->addPassThroughAttribute(qe.fInColor, args.fOutputColor);
+ varyingHandler->addPassThroughAttribute(qe.kInColor, args.fOutputColor);
GrGLSLFPFragmentBuilder* fragBuilder = args.fFragBuilder;
// Setup position
- this->writeOutputPosition(vertBuilder, gpArgs, qe.fInPosition->name());
+ this->writeOutputPosition(vertBuilder, gpArgs, qe.kInPosition.name());
// emit transforms
this->emitTransforms(vertBuilder,
varyingHandler,
uniformHandler,
- qe.fInPosition->asShaderVar(),
+ qe.kInPosition.asShaderVar(),
qe.fLocalMatrix,
args.fFPCoordTransformHandler);
@@ -646,21 +646,25 @@ private:
: INHERITED(kQuadEdgeEffect_ClassID)
, fLocalMatrix(localMatrix)
, fUsesLocalCoords(usesLocalCoords) {
- fInPosition = &this->addVertexAttrib("inPosition", kFloat2_GrVertexAttribType);
- fInColor = &this->addVertexAttrib("inColor", kUByte4_norm_GrVertexAttribType);
- fInQuadEdge = &this->addVertexAttrib("inQuadEdge", kHalf4_GrVertexAttribType);
+ this->setVertexAttributeCnt(3);
}
- const Attribute* fInPosition;
- const Attribute* fInQuadEdge;
- const Attribute* fInColor;
- SkMatrix fLocalMatrix;
- bool fUsesLocalCoords;
+ const Attribute& onVertexAttribute(int i) const override {
+ return IthAttribute(i, kInPosition, kInColor, kInQuadEdge);
+ }
+ static constexpr Attribute kInPosition = {"inPosition", kFloat2_GrVertexAttribType};
+ static constexpr Attribute kInColor = {"inColor", kUByte4_norm_GrVertexAttribType};
+ static constexpr Attribute kInQuadEdge = {"inQuadEdge", kHalf4_GrVertexAttribType};
+ SkMatrix fLocalMatrix;
+ bool fUsesLocalCoords;
GR_DECLARE_GEOMETRY_PROCESSOR_TEST
typedef GrGeometryProcessor INHERITED;
};
+constexpr GrPrimitiveProcessor::Attribute QuadEdgeEffect::kInPosition;
+constexpr GrPrimitiveProcessor::Attribute QuadEdgeEffect::kInColor;
+constexpr GrPrimitiveProcessor::Attribute QuadEdgeEffect::kInQuadEdge;
GR_DEFINE_GEOMETRY_PROCESSOR_TEST(QuadEdgeEffect);
@@ -795,12 +799,10 @@ private:
return;
}
- size_t vertexStride = gp->getVertexStride();
-
- SkASSERT(fHelper.compatibleWithAlphaAsCoverage()
- ? vertexStride == sizeof(GrDefaultGeoProcFactory::PositionColorAttr)
- : vertexStride ==
- sizeof(GrDefaultGeoProcFactory::PositionColorCoverageAttr));
+ size_t vertexStride = fHelper.compatibleWithAlphaAsCoverage()
+ ? sizeof(GrDefaultGeoProcFactory::PositionColorAttr)
+ : sizeof(GrDefaultGeoProcFactory::PositionColorCoverageAttr);
+ SkASSERT(vertexStride == gp->debugOnly_vertexStride());
GrAAConvexTessellator tess;
@@ -901,9 +903,9 @@ private:
const GrBuffer* vertexBuffer;
int firstVertex;
- size_t vertexStride = quadProcessor->getVertexStride();
+ SkASSERT(sizeof(QuadVertex) == quadProcessor->debugOnly_vertexStride());
QuadVertex* verts = reinterpret_cast<QuadVertex*>(target->makeVertexSpace(
- vertexStride, vertexCount, &vertexBuffer, &firstVertex));
+ sizeof(QuadVertex), vertexCount, &vertexBuffer, &firstVertex));
if (!verts) {
SkDebugf("Could not allocate vertices\n");