diff options
Diffstat (limited to 'src/shaders/SkPerlinNoiseShader.cpp')
-rw-r--r-- | src/shaders/SkPerlinNoiseShader.cpp | 13 |
1 files changed, 4 insertions, 9 deletions
diff --git a/src/shaders/SkPerlinNoiseShader.cpp b/src/shaders/SkPerlinNoiseShader.cpp index 6179da3d32..8f6c85a494 100644 --- a/src/shaders/SkPerlinNoiseShader.cpp +++ b/src/shaders/SkPerlinNoiseShader.cpp @@ -1394,13 +1394,8 @@ std::unique_ptr<GrFragmentProcessor> SkPerlinNoiseShaderImpl::asFragmentProcesso const GrFPArgs& args) const { SkASSERT(args.fContext); - SkMatrix localMatrix = this->getLocalMatrix(); - if (args.fLocalMatrix) { - localMatrix.preConcat(*args.fLocalMatrix); - } - - SkMatrix matrix = *args.fViewMatrix; - matrix.preConcat(localMatrix); + const auto localMatrix = this->totalLocalMatrix(args.fPreLocalMatrix, args.fPostLocalMatrix); + const auto matrix = SkMatrix::Concat(*args.fViewMatrix, *localMatrix); // Either we don't stitch tiles, either we have a valid tile size SkASSERT(!fStitchTiles || !fTileSize.isEmpty()); @@ -1413,8 +1408,8 @@ std::unique_ptr<GrFragmentProcessor> SkPerlinNoiseShaderImpl::asFragmentProcesso matrix); SkMatrix m = *args.fViewMatrix; - m.setTranslateX(-localMatrix.getTranslateX() + SK_Scalar1); - m.setTranslateY(-localMatrix.getTranslateY() + SK_Scalar1); + m.setTranslateX(-localMatrix->getTranslateX() + SK_Scalar1); + m.setTranslateY(-localMatrix->getTranslateY() + SK_Scalar1); auto proxyProvider = args.fContext->contextPriv().proxyProvider(); if (fType == kImprovedNoise_Type) { |