From 8d3ffad8116b53b26483195e651a8c34857b3061 Mon Sep 17 00:00:00 2001 From: Florin Malita Date: Fri, 3 Feb 2017 18:21:17 +0000 Subject: Revert "Revert "Don't instantiate shaders with non-invertible local matrix"" This reverts commit 0e86725ba4f667056ff1ef65275165853a47303b. Reason for revert: landed Blink fix, should pass layout tests now Original change's description: > Revert "Don't instantiate shaders with non-invertible local matrix" > > This reverts commit ebfbba9bbdacd754c8ad7429ee066f53f17bc66b. > > Reason for revert: breaks chrome blink tests for linux_trusty_blink_rel > > Original change's description: > > Don't instantiate shaders with non-invertible local matrix > > > > Change-Id: If11f7d57cbf45929632d858f91c02d8f5fa9f442 > > Reviewed-on: https://skia-review.googlesource.com/7885 > > Reviewed-by: Mike Reed > > Commit-Queue: Florin Malita > > > > TBR=fmalita@chromium.org,reed@google.com,reviews@skia.org > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > > Change-Id: I41c5513523c27dc4bad68008f08369185897b7a2 > Reviewed-on: https://skia-review.googlesource.com/7948 > Commit-Queue: Hal Canary > Reviewed-by: Hal Canary > TBR=halcanary@google.com,reviews@skia.org,fmalita@chromium.org,reed@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Change-Id: I373ea6c61a256fd8cfbfb34f8b2d39a3ff8109db Reviewed-on: https://skia-review.googlesource.com/8003 Commit-Queue: Florin Malita Reviewed-by: Florin Malita --- src/core/SkShader.cpp | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src/core/SkShader.cpp') diff --git a/src/core/SkShader.cpp b/src/core/SkShader.cpp index 9e562c9276..9f97a7a74a 100644 --- a/src/core/SkShader.cpp +++ b/src/core/SkShader.cpp @@ -241,11 +241,17 @@ sk_sp SkShader::MakeColorShader(SkColor color) { return sk_make_sp SkShader::MakeBitmapShader(const SkBitmap& src, TileMode tmx, TileMode tmy, const SkMatrix* localMatrix) { + if (localMatrix && !localMatrix->invert(nullptr)) { + return nullptr; + } return SkMakeBitmapShader(src, tmx, tmy, localMatrix, kIfMutable_SkCopyPixelsMode, nullptr); } sk_sp SkShader::MakePictureShader(sk_sp src, TileMode tmx, TileMode tmy, const SkMatrix* localMatrix, const SkRect* tile) { + if (localMatrix && !localMatrix->invert(nullptr)) { + return nullptr; + } return SkPictureShader::Make(std::move(src), tmx, tmy, localMatrix, tile); } -- cgit v1.2.3