diff options
Diffstat (limited to 'src/gpu/effects/GrDashingEffect.cpp')
-rw-r--r-- | src/gpu/effects/GrDashingEffect.cpp | 37 |
1 files changed, 25 insertions, 12 deletions
diff --git a/src/gpu/effects/GrDashingEffect.cpp b/src/gpu/effects/GrDashingEffect.cpp index 9ce725b7e6..167cefa47e 100644 --- a/src/gpu/effects/GrDashingEffect.cpp +++ b/src/gpu/effects/GrDashingEffect.cpp @@ -817,8 +817,16 @@ public: const GrGLSLCaps&, GrProcessorKeyBuilder*); - void setData(const GrGLSLProgramDataManager&, const GrPrimitiveProcessor&, - FPCoordTransformIter&& transformIter) override; + void setData(const GrGLSLProgramDataManager&, const GrPrimitiveProcessor&) override; + + void setTransformData(const GrPrimitiveProcessor& primProc, + const GrGLSLProgramDataManager& pdman, + int index, + const SkTArray<const GrCoordTransform*, true>& transforms) override { + this->setTransformDataHelper(primProc.cast<DashingCircleEffect>().localMatrix(), pdman, + index, transforms); + } + private: UniformHandle fParamUniform; UniformHandle fColorUniform; @@ -871,7 +879,8 @@ void GLDashingCircleEffect::onEmitCode(EmitArgs& args, GrGPArgs* gpArgs) { gpArgs->fPositionVar, dce.inPosition()->fName, dce.localMatrix(), - args.fFPCoordTransformHandler); + args.fTransformsIn, + args.fTransformsOut); // transforms all points so that we can compare them to our test circle fragBuilder->codeAppendf("float xShifted = %s.x - floor(%s.x / %s.z) * %s.z;", @@ -892,8 +901,7 @@ void GLDashingCircleEffect::onEmitCode(EmitArgs& args, GrGPArgs* gpArgs) { } void GLDashingCircleEffect::setData(const GrGLSLProgramDataManager& pdman, - const GrPrimitiveProcessor& processor, - FPCoordTransformIter&& transformIter) { + const GrPrimitiveProcessor& processor) { const DashingCircleEffect& dce = processor.cast<DashingCircleEffect>(); if (dce.color() != fColor) { float c[4]; @@ -901,7 +909,6 @@ void GLDashingCircleEffect::setData(const GrGLSLProgramDataManager& pdman, pdman.set4fv(fColorUniform, 1, c); fColor = dce.color(); } - this->setTransformDataHelper(dce.localMatrix(), pdman, &transformIter); } void GLDashingCircleEffect::GenKey(const GrGeometryProcessor& gp, @@ -1030,8 +1037,15 @@ public: const GrGLSLCaps&, GrProcessorKeyBuilder*); - void setData(const GrGLSLProgramDataManager&, const GrPrimitiveProcessor&, - FPCoordTransformIter&& iter) override; + void setData(const GrGLSLProgramDataManager&, const GrPrimitiveProcessor&) override; + + void setTransformData(const GrPrimitiveProcessor& primProc, + const GrGLSLProgramDataManager& pdman, + int index, + const SkTArray<const GrCoordTransform*, true>& transforms) override { + this->setTransformDataHelper(primProc.cast<DashingLineEffect>().localMatrix(), pdman, index, + transforms); + } private: GrColor fColor; @@ -1080,7 +1094,8 @@ void GLDashingLineEffect::onEmitCode(EmitArgs& args, GrGPArgs* gpArgs) { gpArgs->fPositionVar, de.inPosition()->fName, de.localMatrix(), - args.fFPCoordTransformHandler); + args.fTransformsIn, + args.fTransformsOut); // transforms all points so that we can compare them to our test rect fragBuilder->codeAppendf("float xShifted = %s.x - floor(%s.x / %s.z) * %s.z;", @@ -1119,8 +1134,7 @@ void GLDashingLineEffect::onEmitCode(EmitArgs& args, GrGPArgs* gpArgs) { } void GLDashingLineEffect::setData(const GrGLSLProgramDataManager& pdman, - const GrPrimitiveProcessor& processor, - FPCoordTransformIter&& transformIter) { + const GrPrimitiveProcessor& processor) { const DashingLineEffect& de = processor.cast<DashingLineEffect>(); if (de.color() != fColor) { float c[4]; @@ -1128,7 +1142,6 @@ void GLDashingLineEffect::setData(const GrGLSLProgramDataManager& pdman, pdman.set4fv(fColorUniform, 1, c); fColor = de.color(); } - this->setTransformDataHelper(de.localMatrix(), pdman, &transformIter); } void GLDashingLineEffect::GenKey(const GrGeometryProcessor& gp, |