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