pass sampling to drawImage
Bug: skia:7650
Change-Id: I0fa4c5f3fb350705f78ee91f4bdfb4edd83d0ed9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/361360
Reviewed-by: Mike Reed <[email protected]>
Commit-Queue: Mike Reed <[email protected]>
diff --git a/docs/examples/50_percent_gray.cpp b/docs/examples/50_percent_gray.cpp
index 60794dc..1aa0bcb 100644
--- a/docs/examples/50_percent_gray.cpp
+++ b/docs/examples/50_percent_gray.cpp
@@ -8,7 +8,8 @@
surf->getCanvas()->drawRect({0, 0, 1, 1}, SkPaint());
surf->getCanvas()->drawRect({1, 1, 2, 2}, SkPaint());
return surf->makeImageSnapshot()->makeShader(SkTileMode::kRepeat,
- SkTileMode::kRepeat);
+ SkTileMode::kRepeat
+ SkSamplingOptions(SkFilterMode::kLinear));
}
void draw(SkCanvas* canvas) {
@@ -25,7 +26,6 @@
// Scaled BW Dither
canvas->translate(105, 0);
- p.setFilterQuality(kLow_SkFilterQuality);
canvas->save();
canvas->scale(0.5, 0.5);
canvas->drawRect({0, 0, 200, 200}, p);
diff --git a/docs/examples/50_percent_srgb.cpp b/docs/examples/50_percent_srgb.cpp
index 61746dd..d26491d 100644
--- a/docs/examples/50_percent_srgb.cpp
+++ b/docs/examples/50_percent_srgb.cpp
@@ -8,7 +8,8 @@
surf->getCanvas()->drawRect({0, 0, 1, 1}, SkPaint());
surf->getCanvas()->drawRect({1, 1, 2, 2}, SkPaint());
return surf->makeImageSnapshot()->makeShader(SkTileMode::kRepeat,
- SkTileMode::kRepeat);
+ SkTileMode::kRepeat,
+ SkSamplingOptions(SkFilterMode::kLinear));
}
void draw(SkCanvas* canvas) {
@@ -17,7 +18,6 @@
const SkRect r = { 0, 0, 100, 100 };
SkPaint p;
p.setShader(make());
- p.setFilterQuality(kLow_SkFilterQuality);
// this is a dither
canvas->drawRect({0, 0, 50, 50}, p);
diff --git a/docs/examples/Bitmap_extractAlpha.cpp b/docs/examples/Bitmap_extractAlpha.cpp
index 4afda81..cfa14f5 100644
--- a/docs/examples/Bitmap_extractAlpha.cpp
+++ b/docs/examples/Bitmap_extractAlpha.cpp
@@ -17,7 +17,7 @@
offscreen.flush();
bitmap.extractAlpha(&alpha);
paint.setColor(SK_ColorRED);
- canvas->drawImage(bitmap.asImage(), 0, 0, &paint);
- canvas->drawImage(alpha.asImage(), 100, 0, &paint);
+ canvas->drawImage(bitmap.asImage(), 0, 0, SkSamplingOptions(), &paint);
+ canvas->drawImage(alpha.asImage(), 100, 0, SkSamplingOptions(), &paint);
}
} // END FIDDLE
diff --git a/docs/examples/Bitmap_extractAlpha_2.cpp b/docs/examples/Bitmap_extractAlpha_2.cpp
index 4ec366f..06aa408 100644
--- a/docs/examples/Bitmap_extractAlpha_2.cpp
+++ b/docs/examples/Bitmap_extractAlpha_2.cpp
@@ -23,7 +23,7 @@
SkIPoint offset;
bitmap.extractAlpha(&alpha, &paint, &offset);
paint.setColor(SK_ColorRED);
- canvas->drawImage(bitmap.asImage(), 0, -offset.fY, &paint);
- canvas->drawImage(alpha.asImage(), 100 + offset.fX, 0, &paint);
+ canvas->drawImage(bitmap.asImage(), 0, -offset.fY, SkSamplingOptions(), &paint);
+ canvas->drawImage(alpha.asImage(), 100 + offset.fX, 0, SkSamplingOptions(), &paint);
}
} // END FIDDLE
diff --git a/docs/examples/Bitmap_extractAlpha_3.cpp b/docs/examples/Bitmap_extractAlpha_3.cpp
index e5fcdf4..461abc8 100644
--- a/docs/examples/Bitmap_extractAlpha_3.cpp
+++ b/docs/examples/Bitmap_extractAlpha_3.cpp
@@ -19,7 +19,7 @@
SkIPoint offset;
bitmap.extractAlpha(&alpha, &paint, nullptr, &offset);
paint.setColor(SK_ColorRED);
- canvas->drawImage(bitmap.asImage(), 0, -offset.fY, &paint);
- canvas->drawImage(alpha.asImage(), 100 + offset.fX, 0, &paint);
+ canvas->drawImage(bitmap.asImage(), 0, -offset.fY, SkSamplingOptions(), &paint);
+ canvas->drawImage(alpha.asImage(), 100 + offset.fX, 0, SkSamplingOptions(), &paint);
}
} // END FIDDLE
diff --git a/docs/examples/Canvas_drawImage.cpp b/docs/examples/Canvas_drawImage.cpp
index fbebf34..0d07687 100644
--- a/docs/examples/Canvas_drawImage.cpp
+++ b/docs/examples/Canvas_drawImage.cpp
@@ -8,8 +8,8 @@
SkImage* imagePtr = image.get();
canvas->drawImage(imagePtr, 0, 0);
SkPaint paint;
- canvas->drawImage(imagePtr, 80, 0, &paint);
+ canvas->drawImage(imagePtr, 80, 0, SkSamplingOptions(), &paint);
paint.setAlpha(0x80);
- canvas->drawImage(imagePtr, 160, 0, &paint);
+ canvas->drawImage(imagePtr, 160, 0, SkSamplingOptions(), &paint);
}
} // END FIDDLE
diff --git a/docs/examples/Canvas_drawImageRect.cpp b/docs/examples/Canvas_drawImageRect.cpp
index fc01726..e6c90e5 100644
--- a/docs/examples/Canvas_drawImageRect.cpp
+++ b/docs/examples/Canvas_drawImageRect.cpp
@@ -13,14 +13,14 @@
redBorder.installPixels(SkImageInfo::MakeN32Premul(4, 4),
(void*) pixels, sizeof(pixels[0]));
sk_sp<SkImage> image = redBorder.asImage();
- SkPaint lowPaint;
+ SkSamplingOptions sampling;
for (auto constraint : {
SkCanvas::kFast_SrcRectConstraint,
SkCanvas::kStrict_SrcRectConstraint,
SkCanvas::kFast_SrcRectConstraint } ) {
canvas->drawImageRect(image.get(), SkRect::MakeLTRB(1, 1, 3, 3),
- SkRect::MakeLTRB(16, 16, 48, 48), &lowPaint, constraint);
- lowPaint.setFilterQuality(kLow_SkFilterQuality);
+ SkRect::MakeLTRB(16, 16, 48, 48), sampling, nullptr, constraint);
+ sampling = SkSamplingOptions(SkFilterMode::kLinear);
canvas->translate(80, 0);
}
}
diff --git a/docs/examples/Canvas_drawImageRect_2.cpp b/docs/examples/Canvas_drawImageRect_2.cpp
index 743f8bd..de6845c 100644
--- a/docs/examples/Canvas_drawImageRect_2.cpp
+++ b/docs/examples/Canvas_drawImageRect_2.cpp
@@ -6,8 +6,9 @@
void draw(SkCanvas* canvas) {
// sk_sp<SkImage> image;
for (auto i : { 1, 2, 4, 8 } ) {
- canvas->drawImageRect(image.get(), SkIRect::MakeLTRB(0, 0, 100, 100),
- SkRect::MakeXYWH(i * 20, i * 20, i * 20, i * 20), nullptr);
+ canvas->drawImageRect(image.get(), SkRect::MakeLTRB(0, 0, 100, 100),
+ SkRect::MakeXYWH(i * 20, i * 20, i * 20, i * 20), SkSamplingOptions(),
+ nullptr, SkCanvas::kStrict_SrcRectConstraint);
}
}
} // END FIDDLE
diff --git a/docs/examples/Canvas_drawImageRect_3.cpp b/docs/examples/Canvas_drawImageRect_3.cpp
index ad6f0d97..8c0363f 100644
--- a/docs/examples/Canvas_drawImageRect_3.cpp
+++ b/docs/examples/Canvas_drawImageRect_3.cpp
@@ -6,7 +6,7 @@
void draw(SkCanvas* canvas) {
// sk_sp<SkImage> image;
for (auto i : { 20, 40, 80, 160 } ) {
- canvas->drawImageRect(image.get(), SkRect::MakeXYWH(i, i, i, i), nullptr);
+ canvas->drawImageRect(image.get(), SkRect::MakeXYWH(i, i, i, i), SkSamplingOptions());
}
}
} // END FIDDLE
diff --git a/docs/examples/Canvas_drawImageRect_4.cpp b/docs/examples/Canvas_drawImageRect_4.cpp
index b80a270..6b1b5d4 100644
--- a/docs/examples/Canvas_drawImageRect_4.cpp
+++ b/docs/examples/Canvas_drawImageRect_4.cpp
@@ -14,7 +14,8 @@
canvas->scale(4, 4);
for (auto alpha : { 50, 100, 150, 255 } ) {
paint.setAlpha(alpha);
- canvas->drawImageRect(image, SkRect::MakeWH(2, 2), SkRect::MakeWH(8, 8), &paint);
+ canvas->drawImageRect(image, SkRect::MakeWH(2, 2), SkRect::MakeWH(8, 8),
+ SkSamplingOptions(), &paint, SkCanvas::kStrict_SrcRectConstraint);
canvas->translate(8, 0);
}
}
diff --git a/docs/examples/Canvas_drawImageRect_5.cpp b/docs/examples/Canvas_drawImageRect_5.cpp
index 22111e1..646d66f 100644
--- a/docs/examples/Canvas_drawImageRect_5.cpp
+++ b/docs/examples/Canvas_drawImageRect_5.cpp
@@ -14,7 +14,8 @@
canvas->scale(4, 4);
for (auto color : { SK_ColorRED, SK_ColorBLUE, SK_ColorGREEN } ) {
paint.setColorFilter(SkColorFilters::Blend(color, SkBlendMode::kPlus));
- canvas->drawImageRect(image, SkIRect::MakeWH(2, 2), SkRect::MakeWH(8, 8), &paint);
+ canvas->drawImageRect(image, SkRect::MakeWH(2, 2), SkRect::MakeWH(8, 8),
+ SkSamplingOptions(), &paint, SkCanvas::kStrict_SrcRectConstraint);
canvas->translate(8, 0);
}
}
diff --git a/docs/examples/Canvas_drawImageRect_6.cpp b/docs/examples/Canvas_drawImageRect_6.cpp
index 8940fa2..5b4ff80 100644
--- a/docs/examples/Canvas_drawImageRect_6.cpp
+++ b/docs/examples/Canvas_drawImageRect_6.cpp
@@ -14,7 +14,7 @@
canvas->scale(4, 4);
for (auto color : { SK_ColorRED, SK_ColorBLUE, SK_ColorGREEN } ) {
paint.setColorFilter(SkColorFilters::Blend(color, SkBlendMode::kPlus));
- canvas->drawImageRect(image, SkRect::MakeWH(8, 8), &paint);
+ canvas->drawImageRect(image, SkRect::MakeWH(8, 8), SkSamplingOptions(), &paint);
canvas->translate(8, 0);
}
}
diff --git a/docs/examples/Canvas_drawImage_2.cpp b/docs/examples/Canvas_drawImage_2.cpp
index 0b0a48f..c5a5939 100644
--- a/docs/examples/Canvas_drawImage_2.cpp
+++ b/docs/examples/Canvas_drawImage_2.cpp
@@ -7,8 +7,8 @@
// sk_sp<SkImage> image;
canvas->drawImage(image, 0, 0);
SkPaint paint;
- canvas->drawImage(image, 80, 0, &paint);
+ canvas->drawImage(image, 80, 0, SkSamplingOptions(), &paint);
paint.setAlpha(0x80);
- canvas->drawImage(image, 160, 0, &paint);
+ canvas->drawImage(image, 160, 0, SkSamplingOptions(), &paint);
}
} // END FIDDLE
diff --git a/docs/examples/Canvas_saveLayer_3.cpp b/docs/examples/Canvas_saveLayer_3.cpp
index 3a6d427..3c0f27d 100644
--- a/docs/examples/Canvas_saveLayer_3.cpp
+++ b/docs/examples/Canvas_saveLayer_3.cpp
@@ -5,7 +5,7 @@
REG_FIDDLE(Canvas_saveLayer_3, 256, 256, false, 3) {
void draw(SkCanvas* canvas) {
// sk_sp<SkImage> image = GetResourceAsImage("images/mandrill_256.png");
- canvas->drawImage(image, 0, 0, nullptr);
+ canvas->drawImage(image, 0, 0);
SkCanvas::SaveLayerRec rec;
SkPaint paint;
paint.setBlendMode(SkBlendMode::kPlus);
diff --git a/docs/examples/Dither_b.cpp b/docs/examples/Dither_b.cpp
index 075ca64..695ba5c 100644
--- a/docs/examples/Dither_b.cpp
+++ b/docs/examples/Dither_b.cpp
@@ -20,8 +20,9 @@
canvas->scale(12, 12);
canvas->drawImage(img, 0, 0);
paint.setBlendMode(SkBlendMode::kPlus);
- canvas->drawImage(img, 0, 11, &paint);
- canvas->drawImage(img, 0, 11, &paint);
- canvas->drawImage(img, 0, 11, &paint);
+ SkSamplingOptions sampling;
+ canvas->drawImage(img, 0, 11, sampling, &paint);
+ canvas->drawImage(img, 0, 11, sampling, &paint);
+ canvas->drawImage(img, 0, 11, sampling, &paint);
}
} // END FIDDLE
diff --git a/docs/examples/Filter_Quality_Methods.cpp b/docs/examples/Filter_Quality_Methods.cpp
deleted file mode 100644
index 7c772b2..0000000
--- a/docs/examples/Filter_Quality_Methods.cpp
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright 2019 Google LLC.
-// Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "tools/fiddle/examples.h"
-// HASH=69369cff2f5b145a6f616092513266a0
-REG_FIDDLE(Filter_Quality_Methods, 256, 256, false, 3) {
-void draw(SkCanvas* canvas) {
- SkPaint paint;
- canvas->scale(.2f, .2f);
- for (SkFilterQuality q : { kNone_SkFilterQuality, kLow_SkFilterQuality,
- kMedium_SkFilterQuality, kHigh_SkFilterQuality } ) {
- paint.setFilterQuality(q);
- canvas->drawImage(image.get(), 0, 0, &paint);
- canvas->translate(550, 0);
- if (kLow_SkFilterQuality == q) canvas->translate(-1100, 550);
- }
-}
-} // END FIDDLE
diff --git a/docs/examples/ImageInfo_MakeA8.cpp b/docs/examples/ImageInfo_MakeA8.cpp
index 40f773f..70900d4 100644
--- a/docs/examples/ImageInfo_MakeA8.cpp
+++ b/docs/examples/ImageInfo_MakeA8.cpp
@@ -19,7 +19,7 @@
canvas->scale(4, 4);
for (auto color : { SK_ColorRED, SK_ColorBLUE, 0xFF007F00} ) {
paint.setColor(color);
- canvas->drawImage(bitmap.asImage(), 0, 0, &paint);
+ canvas->drawImage(bitmap.asImage(), 0, 0, SkSamplingOptions(), &paint);
canvas->translate(12, 0);
}
}
diff --git a/docs/examples/Image_scalePixels.cpp b/docs/examples/Image_scalePixels.cpp
index ab38ecd..48a7eb3 100644
--- a/docs/examples/Image_scalePixels.cpp
+++ b/docs/examples/Image_scalePixels.cpp
@@ -12,10 +12,15 @@
SkPixmap pixmap(SkImageInfo::MakeN32Premul(quarterWidth, quarterHeight),
&srcPixels.front(), rowBytes);
canvas->scale(4, 4);
- SkFilterQuality qualities[] = { kNone_SkFilterQuality, kLow_SkFilterQuality,
- kMedium_SkFilterQuality, kHigh_SkFilterQuality };
- for (unsigned index = 0; index < SK_ARRAY_COUNT(qualities); ++index) {
- image->scalePixels(pixmap, SkSamplingOptions(qualities[index]));
+
+ const SkSamplingOptions samplings[] = {
+ SkSamplingOptions(),
+ SkSamplingOptions(SkFilterMode::kLinear),
+ SkSamplingOptions(SkFilterMode::kLinear, SkMipmapMode::kLinear),
+ SkSamplingOptions({1.0f/3, 1.0f/3}),
+ };
+ for (unsigned index = 0; index < SK_ARRAY_COUNT(samplings); ++index) {
+ image->scalePixels(pixmap, samplings[index]);
sk_sp<SkImage> filtered = SkImage::MakeFromRaster(pixmap, nullptr, nullptr);
canvas->drawImage(filtered, 16 * index, 0);
}
diff --git a/docs/examples/PaintDump.cpp b/docs/examples/PaintDump.cpp
index f66fbed..740c19e 100644
--- a/docs/examples/PaintDump.cpp
+++ b/docs/examples/PaintDump.cpp
@@ -27,16 +27,6 @@
}
}
-static const char* str(SkFilterQuality v) {
- switch (v) {
- case kNone_SkFilterQuality: return "kNone_SkFilterQuality";
- case kLow_SkFilterQuality: return "kLow_SkFilterQuality";
- case kMedium_SkFilterQuality: return "kMedium_SkFilterQuality";
- case kHigh_SkFilterQuality: return "kHigh_SkFilterQuality";
- default: return "?";
- }
-}
-
static const char* str(bool v) { return v ? "true" : "false"; }
SkString PaintStringDump(const SkPaint& p) {
@@ -67,9 +57,6 @@
if (d.getStyle() != p.getStyle()) {
s.appendf("p.setStyle(%s);\n", str(p.getStyle()));
}
- if (d.getFilterQuality() != p.getFilterQuality()) {
- s.appendf("p.setFilterQuality(%s);\n", str(p.getFilterQuality()));
- }
if (d.getBlendMode() != p.getBlendMode()) {
s.appendf("p.setBlendMode(SkBlendMode::k%s);\n", SkBlendMode_Name(p.getBlendMode()));
}
diff --git a/docs/examples/Paint_getFilterQuality.cpp b/docs/examples/Paint_getFilterQuality.cpp
deleted file mode 100644
index dba72a0..0000000
--- a/docs/examples/Paint_getFilterQuality.cpp
+++ /dev/null
@@ -1,11 +0,0 @@
-// Copyright 2019 Google LLC.
-// Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "tools/fiddle/examples.h"
-// HASH=d4ca1f23809b6835c4ba46ea98a86900
-REG_FIDDLE(Paint_getFilterQuality, 256, 256, true, 0) {
-void draw(SkCanvas* canvas) {
- SkPaint paint;
- SkDebugf("kNone_SkFilterQuality %c= paint.getFilterQuality()\n",
- kNone_SkFilterQuality == paint.getFilterQuality() ? '=' : '!');
-}
-} // END FIDDLE
diff --git a/docs/examples/Paint_setFilterQuality.cpp b/docs/examples/Paint_setFilterQuality.cpp
deleted file mode 100644
index 3abeb6f..0000000
--- a/docs/examples/Paint_setFilterQuality.cpp
+++ /dev/null
@@ -1,12 +0,0 @@
-// Copyright 2019 Google LLC.
-// Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "tools/fiddle/examples.h"
-// HASH=e4288fabf24ee60b645e8bb6ea0afadf
-REG_FIDDLE(Paint_setFilterQuality, 256, 256, true, 0) {
-void draw(SkCanvas* canvas) {
- SkPaint paint;
- paint.setFilterQuality(kHigh_SkFilterQuality);
- SkDebugf("kHigh_SkFilterQuality %c= paint.getFilterQuality()\n",
- kHigh_SkFilterQuality == paint.getFilterQuality() ? '=' : '!');
-}
-} // END FIDDLE
diff --git a/docs/examples/Paint_setStyle.cpp b/docs/examples/Paint_setStyle.cpp
index 64ffab3..a4ddccb 100644
--- a/docs/examples/Paint_setStyle.cpp
+++ b/docs/examples/Paint_setStyle.cpp
@@ -25,7 +25,7 @@
canvas->drawLine(10, 10, 60, 60, paint);
canvas->drawRect({80, 10, 130, 60}, paint);
canvas->drawRegion(region, paint);
- canvas->drawImage(bitmap.asImage(), 200, 10, &paint);
+ canvas->drawImage(bitmap.asImage(), 200, 10, SkSamplingOptions(), &paint);
canvas->translate(0, 80);
}
}
diff --git a/docs/examples/alpha_bitmap_color_filter_mask_filter.cpp b/docs/examples/alpha_bitmap_color_filter_mask_filter.cpp
index 45ccd76..bc3aeca 100644
--- a/docs/examples/alpha_bitmap_color_filter_mask_filter.cpp
+++ b/docs/examples/alpha_bitmap_color_filter_mask_filter.cpp
@@ -26,20 +26,21 @@
void draw(SkCanvas* canvas) {
auto image = make_alpha_image(96, 96).asImage();
+ SkSamplingOptions sampling;
SkPaint paint;
paint.setColorFilter(make_color_filter());
paint.setMaskFilter(SkMaskFilter::MakeBlur(kNormal_SkBlurStyle, 10.0f, false));
- canvas->drawImage(image.get(), 16, 16, &paint);
+ canvas->drawImage(image.get(), 16, 16, sampling, &paint);
paint.setColorFilter(nullptr);
paint.setShader(SkShaders::Color(SK_ColorCYAN));
- canvas->drawImage(image.get(), 144, 16, &paint);
+ canvas->drawImage(image.get(), 144, 16, sampling, &paint);
paint.setColorFilter(make_color_filter());
- canvas->drawImage(image.get(), 16, 144, &paint);
+ canvas->drawImage(image.get(), 16, 144, sampling, &paint);
paint.setMaskFilter(nullptr);
- canvas->drawImage(image.get(), 144, 144, &paint);
+ canvas->drawImage(image.get(), 144, 144, sampling, &paint);
}
} // END FIDDLE
diff --git a/docs/examples/alphaimage_shader_colorfilter.cpp b/docs/examples/alphaimage_shader_colorfilter.cpp
index 8a5af29..16a899a 100644
--- a/docs/examples/alphaimage_shader_colorfilter.cpp
+++ b/docs/examples/alphaimage_shader_colorfilter.cpp
@@ -26,6 +26,6 @@
p.setColorFilter(color_filter());
auto i = alpha_image();
canvas->scale(2, 2);
- canvas->drawImage(i.get(), 32, 32, &p);
+ canvas->drawImage(i.get(), 32, 32, SkSamplingOptions(), &p);
}
} // END FIDDLE
diff --git a/docs/examples/blur4444.cpp b/docs/examples/blur4444.cpp
index 0d24c90..48b89f7 100644
--- a/docs/examples/blur4444.cpp
+++ b/docs/examples/blur4444.cpp
@@ -36,7 +36,6 @@
SkPaint blrPaint;
blrPaint.setAntiAlias(true);
blrPaint.setMaskFilter(SkMaskFilter::MakeBlur(kNormal_SkBlurStyle, 12.047));
- blrPaint.setFilterQuality(kLow_SkFilterQuality);
blrPaint.setBlendMode(SkBlendMode::kSrc);
blrPaint.setDither(dither);
diff --git a/docs/examples/blur_alpha_img.cpp b/docs/examples/blur_alpha_img.cpp
index d60de63..abf5ddf 100644
--- a/docs/examples/blur_alpha_img.cpp
+++ b/docs/examples/blur_alpha_img.cpp
@@ -31,6 +31,6 @@
SkPaint paint;
paint.setMaskFilter(SkMaskFilter::MakeBlur(kNormal_SkBlurStyle, 2.0f, 0));
paint.setColor(0xFF008000);
- canvas->drawImage(a8img, 8, 8, &paint);
+ canvas->drawImage(a8img, 8, 8, SkSamplingOptions(), &paint);
}
} // END FIDDLE
diff --git a/docs/examples/color_filter_vs_colorFilterImageFilter_saveLayer.cpp b/docs/examples/color_filter_vs_colorFilterImageFilter_saveLayer.cpp
index bd5b2bf..1fbc0cd 100644
--- a/docs/examples/color_filter_vs_colorFilterImageFilter_saveLayer.cpp
+++ b/docs/examples/color_filter_vs_colorFilterImageFilter_saveLayer.cpp
@@ -13,12 +13,12 @@
void draw(SkCanvas* canvas) {
SkPaint paint;
paint.setColorFilter(saturate());
- canvas->drawImageRect(image, {0, 0, 128, 128}, &paint);
+ canvas->drawImageRect(image, {0, 0, 128, 128}, SkSamplingOptions(), &paint);
SkPaint paint2;
paint2.setImageFilter(SkImageFilters::ColorFilter(saturate(), nullptr));
SkAutoCanvasRestore autoCanvasRestore(canvas, false);
canvas->saveLayer(nullptr, &paint2);
- canvas->drawImageRect(image, {128, 0, 256, 128}, nullptr);
+ canvas->drawImageRect(image, {128, 0, 256, 128}, SkSamplingOptions());
}
} // END FIDDLE
diff --git a/docs/examples/example3ps.cpp b/docs/examples/example3ps.cpp
index 53503f0..02db0ea 100644
--- a/docs/examples/example3ps.cpp
+++ b/docs/examples/example3ps.cpp
@@ -63,47 +63,46 @@
SkImageInfo::Make(3, 2, SkColorType::kGray_8_SkColorType, kOpaque_SkAlphaType);
sk_sp<SkImage> image = SkImage::MakeRasterData(info, data, 3);
- SkPaint bp;
canvas->save();
m = setpsmatrix(1, 0, 0, 1, -1, -24, 2);
// m.setAll(1, 0, -1, 0, 1, -24, 0, 0, 1);
canvas->concat(m);
- canvas->drawImage(image, 0, 0, &bp);
+ canvas->drawImage(image, 0, 0);
canvas->restore();
canvas->save();
m = setpsmatrix(0, 1, 1, 0, -24, -5, 2);
// m.setAll(0, -1, 5, -1, 0, -22, 0, 0, 1);
canvas->concat(m);
- canvas->drawImage(image, 0, 0, &bp);
+ canvas->drawImage(image, 0, 0);
canvas->restore();
canvas->save();
m = setpsmatrix(0, 1, -1, 0, 27, -8, 2);
// m.setAll(0, -1, 8, 1, 0, -25, 0, 0, 1);
canvas->concat(m);
- canvas->drawImage(image, 0, 0, &bp);
+ canvas->drawImage(image, 0, 0);
canvas->restore();
canvas->save();
m = setpsmatrix(0, -1, -1, 0, -24, 13, 2);
// m.setAll(0, 1, 9, -1, 0, -22, 0, 0, 1);
canvas->concat(m);
- canvas->drawImage(image, 0, 0, &bp);
+ canvas->drawImage(image, 0, 0);
canvas->restore();
canvas->save();
m = setpsmatrix(-1, 0, 0, -1, 17, 26, 2);
// m.setAll(-1, 0, 15, 0, -1, -22, 0, 0, 1);
canvas->concat(m);
- canvas->drawImage(image, 0, 0, &bp);
+ canvas->drawImage(image, 0, 0);
canvas->restore();
canvas->save();
m = setpsmatrix(-1, 0, 0, 1, 21, -24, 2);
// m.setAll(-1, 0, 19, 0, 1, -24, 0, 0, 1);
canvas->concat(m);
- canvas->drawImage(image, 0, 0, &bp);
+ canvas->drawImage(image, 0, 0);
canvas->restore();
}
} // END FIDDLE
diff --git a/docs/examples/f16to8888busted.cpp b/docs/examples/f16to8888busted.cpp
index c58928f..506d3b0 100644
--- a/docs/examples/f16to8888busted.cpp
+++ b/docs/examples/f16to8888busted.cpp
@@ -14,6 +14,6 @@
// Take a snapshot from surface and draw it on the canvas
sk_sp<SkImage> img = offscreen->makeImageSnapshot();
- canvas->drawImageRect(img, SkRect::MakeWH(100, 100), nullptr);
+ canvas->drawImageRect(img, SkRect::MakeWH(100, 100), SkSamplingOptions());
}
} // END FIDDLE
diff --git a/docs/examples/purplestamp.cpp b/docs/examples/purplestamp.cpp
index 0fde706..d922508 100644
--- a/docs/examples/purplestamp.cpp
+++ b/docs/examples/purplestamp.cpp
@@ -40,14 +40,16 @@
void draw(SkCanvas* canvas) {
SkPaint paint;
paint.setColorFilter(SkColorFilters::Blend(0xFF7F00FF, SkBlendMode::kSrcIn));
- paint.setFilterQuality(kMedium_SkFilterQuality);
paint.setAntiAlias(true);
+
+ SkSamplingOptions sampling(SkFilterMode::kLinear, SkMipmapMode::kLinear);
+
canvas->rotate(30);
canvas->translate(60, 0);
int stampSize = 200;
if (drawWithRasterImage) {
- canvas->drawImage(stampImage(stampSize), 0, 0, &paint);
+ canvas->drawImage(stampImage(stampSize), 0, 0, sampling, &paint);
} else {
canvas->saveLayer(nullptr, &paint);
drawStamp(canvas, stampSize);
diff --git a/docs/examples/shader_alphaimage.cpp b/docs/examples/shader_alphaimage.cpp
index ee83df2..7f21c97 100644
--- a/docs/examples/shader_alphaimage.cpp
+++ b/docs/examples/shader_alphaimage.cpp
@@ -19,7 +19,7 @@
SkPaint p;
p.setShader(linear_gradient());
auto i = alpha_image();
- canvas->drawImage(i.get(), 128, 0, &p);
+ canvas->drawImage(i.get(), 128, 0, SkSamplingOptions(), &p);
canvas->drawRect({0, 128, 128, 256}, p);
}
} // END FIDDLE
diff --git a/docs/examples/skbug_237_drawImageRect.cpp b/docs/examples/skbug_237_drawImageRect.cpp
index bcf1320..17492ef 100644
--- a/docs/examples/skbug_237_drawImageRect.cpp
+++ b/docs/examples/skbug_237_drawImageRect.cpp
@@ -6,7 +6,7 @@
SkPaint paint;
paint.setMaskFilter(SkMaskFilter::MakeBlur(kNormal_SkBlurStyle, 20.0f, false));
canvas->clear(0xFF88FF88);
- canvas->drawImageRect(image, SkRect{16, 16, 48, 48}, {64, 64, 192, 192}, &paint,
- SkCanvas::kFast_SrcRectConstraint);
+ canvas->drawImageRect(image, SkRect{16, 16, 48, 48}, {64, 64, 192, 192}, SkSamplingOptions(),
+ &paint, SkCanvas::kFast_SrcRectConstraint);
}
} // END FIDDLE
diff --git a/docs/examples/skbug_237_drawImage_with_blur.cpp b/docs/examples/skbug_237_drawImage_with_blur.cpp
index 9800b2f..74351fe 100644
--- a/docs/examples/skbug_237_drawImage_with_blur.cpp
+++ b/docs/examples/skbug_237_drawImage_with_blur.cpp
@@ -8,6 +8,6 @@
canvas->clear(0xFF88FF88);
canvas->scale(4, 4);
auto subset = image->makeSubset({16, 16, 48, 48});
- canvas->drawImage(subset, 16, 16, &paint);
+ canvas->drawImage(subset, 16, 16, SkSamplingOptions(), &paint);
}
} // END FIDDLE
diff --git a/docs/examples/skcanvas_paint.cpp b/docs/examples/skcanvas_paint.cpp
index 72e4bc2..4b10779 100644
--- a/docs/examples/skcanvas_paint.cpp
+++ b/docs/examples/skcanvas_paint.cpp
@@ -31,10 +31,10 @@
paint.setColor(SK_ColorGREEN);
canvas->drawPath(path, paint);
- canvas->drawImage(image, 128, 128, &paint);
+ canvas->drawImage(image, 128, 128, SkSamplingOptions(), &paint);
SkRect rect2 = SkRect::MakeXYWH(0, 0, 40, 60);
- canvas->drawImageRect(image, rect2, &paint);
+ canvas->drawImageRect(image, rect2, SkSamplingOptions(), &paint);
SkPaint paint2;
auto text = SkTextBlob::MakeFromString("Hello, Skia!", SkFont(nullptr, 18));
diff --git a/docs/examples/skpaint_color_table_filter.cpp b/docs/examples/skpaint_color_table_filter.cpp
index 6df1d88..7917367 100644
--- a/docs/examples/skpaint_color_table_filter.cpp
+++ b/docs/examples/skpaint_color_table_filter.cpp
@@ -11,6 +11,6 @@
}
SkPaint paint;
paint.setColorFilter(SkTableColorFilter::MakeARGB(nullptr, ct, ct, ct));
- canvas->drawImage(image, 0, 0, &paint);
+ canvas->drawImage(image, 0, 0, SkSamplingOptions(), &paint);
}
} // END FIDDLE
diff --git a/docs/examples/skpaint_matrix_color_filter.cpp b/docs/examples/skpaint_matrix_color_filter.cpp
index 185c010..dc89d59 100644
--- a/docs/examples/skpaint_matrix_color_filter.cpp
+++ b/docs/examples/skpaint_matrix_color_filter.cpp
@@ -5,7 +5,7 @@
void f(SkCanvas* c, SkScalar x, SkScalar y, SkScalar colorMatrix[20]) {
SkPaint paint;
paint.setColorFilter(SkColorFilters::Matrix(colorMatrix));
- c->drawImage(image, x, y, &paint);
+ c->drawImage(image, x, y, SkSamplingOptions(), &paint);
}
void draw(SkCanvas* c) {
c->scale(0.25, 0.25);
diff --git a/tools/fiddle/all_examples.cpp b/tools/fiddle/all_examples.cpp
index c67b84d..4170533 100644
--- a/tools/fiddle/all_examples.cpp
+++ b/tools/fiddle/all_examples.cpp
@@ -261,7 +261,6 @@
#include "../../docs/examples/Dst_Over.cpp"
#include "../../docs/examples/Exclusion.cpp"
#include "../../docs/examples/Fake_Bold.cpp"
-#include "../../docs/examples/Filter_Quality_Methods.cpp"
#include "../../docs/examples/Font_breakText.cpp"
#include "../../docs/examples/GradientShader_MakeLinear.cpp"
#include "../../docs/examples/HSVToColor.cpp"
@@ -528,7 +527,6 @@
#include "../../docs/examples/Paint_getColorFilter.cpp"
#include "../../docs/examples/Paint_getFillPath.cpp"
#include "../../docs/examples/Paint_getFillPath_2.cpp"
-#include "../../docs/examples/Paint_getFilterQuality.cpp"
#include "../../docs/examples/Paint_getFlags.cpp"
#include "../../docs/examples/Paint_getFontMetrics.cpp"
#include "../../docs/examples/Paint_getFontSpacing.cpp"
@@ -583,7 +581,6 @@
#include "../../docs/examples/Paint_setDither.cpp"
#include "../../docs/examples/Paint_setEmbeddedBitmapText.cpp"
#include "../../docs/examples/Paint_setFakeBoldText.cpp"
-#include "../../docs/examples/Paint_setFilterQuality.cpp"
#include "../../docs/examples/Paint_setFlags.cpp"
#include "../../docs/examples/Paint_setHinting.cpp"
#include "../../docs/examples/Paint_setImageFilter.cpp"
diff --git a/tools/viewer/Viewer.cpp b/tools/viewer/Viewer.cpp
index 9e80623..c90236c 100644
--- a/tools/viewer/Viewer.cpp
+++ b/tools/viewer/Viewer.cpp
@@ -1513,13 +1513,14 @@
SkCanvas* canvas = surface->getCanvas();
SkPaint paint;
paint.setBlendMode(SkBlendMode::kSrc);
+ SkSamplingOptions sampling;
int prePerspectiveCount = canvas->save();
if (kPerspective_Fake == fPerspectiveMode) {
- paint.setFilterQuality(kHigh_SkFilterQuality);
+ sampling = SkSamplingOptions({1.0f/3, 1.0f/3});
canvas->clear(SK_ColorWHITE);
canvas->concat(this->computePerspectiveMatrix());
}
- canvas->drawImage(fLastImage, 0, 0, &paint);
+ canvas->drawImage(fLastImage, 0, 0, sampling, &paint);
canvas->restoreToCount(prePerspectiveCount);
}