diff options
author | bsalomon <bsalomon@google.com> | 2016-09-20 09:12:47 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-09-20 09:12:47 -0700 |
commit | a624bf3d1cb454c1959c5bbbf23a3afdfa3481f3 (patch) | |
tree | b400e7ace453c50cca2898353db69b79a3c023dd /src/gpu/GrDefaultGeoProcFactory.cpp | |
parent | be9d82161d8347929a66ef942dabbe56abf592a4 (diff) |
Stop flattening GrCoordTransforms in parent GrFragmentProcessors.
This changes moves to a model that iterates over GrCTs in a GrFP hierarchy when inserting transformations by GrGLSLPrimitiveProcessors.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2339203002
Committed: https://skia.googlesource.com/skia/+/d91237ee051523f439238042674ade99207fe4a6
Review-Url: https://codereview.chromium.org/2339203002
Diffstat (limited to 'src/gpu/GrDefaultGeoProcFactory.cpp')
-rw-r--r-- | src/gpu/GrDefaultGeoProcFactory.cpp | 18 |
1 files changed, 5 insertions, 13 deletions
diff --git a/src/gpu/GrDefaultGeoProcFactory.cpp b/src/gpu/GrDefaultGeoProcFactory.cpp index 1b496b3657..497f6b76d5 100644 --- a/src/gpu/GrDefaultGeoProcFactory.cpp +++ b/src/gpu/GrDefaultGeoProcFactory.cpp @@ -99,8 +99,7 @@ public: gpArgs->fPositionVar, gp.inLocalCoords()->fName, gp.localMatrix(), - args.fTransformsIn, - args.fTransformsOut); + args.fFPCoordTransformHandler); } else { // emit transforms with position this->emitTransforms(vertBuilder, @@ -109,8 +108,7 @@ public: gpArgs->fPositionVar, gp.inPosition()->fName, gp.localMatrix(), - args.fTransformsIn, - args.fTransformsOut); + args.fFPCoordTransformHandler); } // Setup coverage as pass through @@ -150,7 +148,8 @@ public: } void setData(const GrGLSLProgramDataManager& pdman, - const GrPrimitiveProcessor& gp) override { + const GrPrimitiveProcessor& gp, + FPCoordTransformIter&& transformIter) override { const DefaultGeoProc& dgp = gp.cast<DefaultGeoProc>(); if (!dgp.viewMatrix().isIdentity() && !fViewMatrix.cheapEqualTo(dgp.viewMatrix())) { @@ -172,14 +171,7 @@ public: pdman.set1f(fCoverageUniform, GrNormalizeByteToFloat(dgp.coverage())); fCoverage = dgp.coverage(); } - } - - void setTransformData(const GrPrimitiveProcessor& primProc, - const GrGLSLProgramDataManager& pdman, - int index, - const SkTArray<const GrCoordTransform*, true>& transforms) override { - this->setTransformDataHelper(primProc.cast<DefaultGeoProc>().fLocalMatrix, pdman, index, - transforms); + this->setTransformDataHelper(dgp.fLocalMatrix, pdman, &transformIter); } private: |