aboutsummaryrefslogtreecommitdiffhomepage
path: root/gm
diff options
context:
space:
mode:
authorGravatar Brian Osman <brianosman@google.com>2018-02-14 10:16:32 -0500
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2018-02-14 15:40:47 +0000
commit5b6fa82ee12bcebbb5bced07347a6d113a0d87fd (patch)
tree7161479cc28b7c0cc96b23c34ce5241e8741864a /gm
parent13ec4d211f07b7d1a4cfae14d897d422d7926290 (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.cpp13
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);
+}