diff options
author | Brian Osman <brianosman@google.com> | 2018-02-14 10:16:32 -0500 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2018-02-14 15:40:47 +0000 |
commit | 5b6fa82ee12bcebbb5bced07347a6d113a0d87fd (patch) | |
tree | 7161479cc28b7c0cc96b23c34ce5241e8741864a /gm | |
parent | 13ec4d211f07b7d1a4cfae14d897d422d7926290 (diff) |
Respect FPArgs local matrix when picking a filtering mode in image shader
Includes a GM that previously drew bilerp, now draws bicubic.
Change-Id: I5e39e8adb49057b57729d9eb9748911ee8584401
Reviewed-on: https://skia-review.googlesource.com/107280
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Diffstat (limited to 'gm')
-rw-r--r-- | gm/localmatriximageshader.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/gm/localmatriximageshader.cpp b/gm/localmatriximageshader.cpp index 39f5908e61..b041c70224 100644 --- a/gm/localmatriximageshader.cpp +++ b/gm/localmatriximageshader.cpp @@ -6,6 +6,7 @@ */ #include "gm.h" +#include "Resources.h" #include "SkCanvas.h" #include "SkSurface.h" #include "sk_tool_utils.h" @@ -54,3 +55,15 @@ DEF_SIMPLE_GM(localmatriximageshader, canvas, 250, 250) { paint.setShader(image->makeShader(mode[0], mode[1], &matrix)); canvas->drawIRect(SkIRect::MakeWH(250, 250), paint); } + +DEF_SIMPLE_GM(localmatriximageshader_filtering, canvas, 256, 256) { + // Test that filtering decisions (eg bicubic for upscale) are made correctly when the scale + // comes from a local matrix shader. + auto image = GetResourceAsImage("images/mandrill_256.png"); + SkPaint p; + p.setFilterQuality(kHigh_SkFilterQuality); + SkMatrix m = SkMatrix::MakeScale(2.0f); + p.setShader(image->makeShader()->makeWithLocalMatrix(m)); + + canvas->drawRect(SkRect::MakeXYWH(0, 0, 256, 256), p); +} |