Name common cubic resamplers
Useful in client code to document what we're doing as we switch away
from SkFilterQuality.
Change-Id: I05737beb99a567a46a3c3ec418b7f7da71b1ff62
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/366723
Reviewed-by: Mike Klein <mtklein@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Mike Reed <reed@google.com>
diff --git a/gm/anisotropic.cpp b/gm/anisotropic.cpp
index 995fb5c..43a683a 100644
--- a/gm/anisotropic.cpp
+++ b/gm/anisotropic.cpp
@@ -22,7 +22,7 @@
// This GM exercises HighQuality anisotropic filtering.
class AnisotropicGM : public GM {
public:
- AnisotropicGM() : fSampling({1.0f/3, 1.0f/3}) {
+ AnisotropicGM() : fSampling(SkCubicResampler::Mitchell()) {
this->setBGColor(0xFFCCCCCC);
}
diff --git a/gm/bicubic.cpp b/gm/bicubic.cpp
index 268fabf..a40b281 100644
--- a/gm/bicubic.cpp
+++ b/gm/bicubic.cpp
@@ -34,8 +34,8 @@
SkPaint paint;
SkImage::CubicResampler cubics[] = {
- { 0, 1.0f/2 },
- { 1.0f/3, 1.0f/3 },
+ SkCubicResampler::CatmullRom(),
+ SkCubicResampler::Mitchell(),
};
for (auto c : cubics) {
paint.setShader(img->makeShader(SkTileMode::kClamp, SkTileMode::kClamp,
diff --git a/gm/bleed.cpp b/gm/bleed.cpp
index 4f4d1cd..555c529 100644
--- a/gm/bleed.cpp
+++ b/gm/bleed.cpp
@@ -246,7 +246,7 @@
const SkSamplingOptions none(SkFilterMode::kNearest);
const SkSamplingOptions low(SkFilterMode::kLinear);
- const SkSamplingOptions high({1.0f/3, 1.0f/3});
+ const SkSamplingOptions high(SkCubicResampler::Mitchell());
SkScalar maxX = 0;
for (bool antiAlias : {false, true}) {
diff --git a/gm/clippedbitmapshaders.cpp b/gm/clippedbitmapshaders.cpp
index 8680865..095921c 100644
--- a/gm/clippedbitmapshaders.cpp
+++ b/gm/clippedbitmapshaders.cpp
@@ -92,7 +92,7 @@
s.postTranslate(SLIDE_SIZE / 2, SLIDE_SIZE / 2);
SkPaint paint;
paint.setShader(bmp.makeShader(fMode, fMode,
- fHQ ? SkSamplingOptions({1.0f/3, 1.0f/3})
+ fHQ ? SkSamplingOptions(SkCubicResampler::Mitchell())
: SkSamplingOptions(),
s));
diff --git a/gm/compressed_textures.cpp b/gm/compressed_textures.cpp
index 56bea0b..b0c5c36 100644
--- a/gm/compressed_textures.cpp
+++ b/gm/compressed_textures.cpp
@@ -270,7 +270,7 @@
int numMipLevels = SkMipmap::ComputeLevelCount(levelDimensions.width(),
levelDimensions.height()) + 1;
- SkSamplingOptions sampling({1.0f/3, 1.0f/3});
+ SkSamplingOptions sampling(SkCubicResampler::Mitchell());
bool isCompressed = false;
if (image->isTextureBacked()) {
diff --git a/gm/constcolorprocessor.cpp b/gm/constcolorprocessor.cpp
index b42cd15..0571092 100644
--- a/gm/constcolorprocessor.cpp
+++ b/gm/constcolorprocessor.cpp
@@ -110,7 +110,7 @@
// Create a base-layer FP for the const color processor to draw on top of.
std::unique_ptr<GrFragmentProcessor> baseFP;
if (paintType >= SK_ARRAY_COUNT(kPaintColors)) {
- SkSamplingOptions high({1.0f/3, 1.0f/3});
+ SkSamplingOptions high(SkCubicResampler::Mitchell());
GrColorInfo colorInfo;
GrFPArgs args(context, SkSimpleMatrixProvider(SkMatrix::I()), high, &colorInfo);
baseFP = as_SB(fShader)->asFragmentProcessor(args);
diff --git a/gm/filterbug.cpp b/gm/filterbug.cpp
index 6885689..8f97d87 100644
--- a/gm/filterbug.cpp
+++ b/gm/filterbug.cpp
@@ -59,7 +59,7 @@
}
void onDraw(SkCanvas* canvas) override {
- static const SkSamplingOptions kSampling({1.0f/3, 1.0f/3});
+ static const SkSamplingOptions kSampling(SkCubicResampler::Mitchell());
static const bool kDoAA = true;
{
diff --git a/gm/filterindiabox.cpp b/gm/filterindiabox.cpp
index f822b20..6f40533 100644
--- a/gm/filterindiabox.cpp
+++ b/gm/filterindiabox.cpp
@@ -41,7 +41,7 @@
draw_cell(canvas, bm, mat, 1 * dx, SkSamplingOptions(SkFilterMode::kLinear));
draw_cell(canvas, bm, mat, 2 * dx, SkSamplingOptions(SkFilterMode::kLinear,
SkMipmapMode::kLinear));
- draw_cell(canvas, bm, mat, 3 * dx, SkSamplingOptions({1.0f/3, 1.0f/3}));
+ draw_cell(canvas, bm, mat, 3 * dx, SkSamplingOptions(SkCubicResampler::Mitchell()));
}
class FilterIndiaBoxGM : public skiagm::GM {
diff --git a/gm/imagefiltersbase.cpp b/gm/imagefiltersbase.cpp
index 12669d6..1bbc9a2 100644
--- a/gm/imagefiltersbase.cpp
+++ b/gm/imagefiltersbase.cpp
@@ -190,7 +190,7 @@
SkPaint paint;
paint.setImageFilter(std::move(imf));
paint.setAntiAlias(true);
- SkSamplingOptions sampling({1.0f/3, 1.0f/3});
+ SkSamplingOptions sampling(SkCubicResampler::Mitchell());
canvas->drawAtlas(atlas, &xform, &r, /*colors=*/nullptr, /*count=*/1, SkBlendMode::kSrc,
sampling, /*cullRect=*/nullptr, &paint);
}
diff --git a/gm/imagefromyuvtextures.cpp b/gm/imagefromyuvtextures.cpp
index 9c427f4..76abc21 100644
--- a/gm/imagefromyuvtextures.cpp
+++ b/gm/imagefromyuvtextures.cpp
@@ -243,7 +243,7 @@
SkSamplingOptions(SkFilterMode::kNearest),
SkSamplingOptions(SkFilterMode::kLinear),
SkSamplingOptions(SkFilterMode::kLinear, SkMipmapMode::kNearest),
- SkSamplingOptions({1.0f/3, 1.0f/3})})
+ SkSamplingOptions(SkCubicResampler::Mitchell())})
{
canvas->save();
canvas->scale(scale, scale);
diff --git a/gm/imagescalealigned.cpp b/gm/imagescalealigned.cpp
index 91bc72a..ce07d9d 100644
--- a/gm/imagescalealigned.cpp
+++ b/gm/imagescalealigned.cpp
@@ -111,7 +111,7 @@
SkSamplingOptions(SkFilterMode::kNearest),
SkSamplingOptions(SkFilterMode::kLinear),
SkSamplingOptions(SkFilterMode::kLinear, SkMipmapMode::kLinear),
- SkSamplingOptions({1.0f/3, 1.0f/3}),
+ SkSamplingOptions(SkCubicResampler::Mitchell()),
};
const bool AAs[] = { false, true };
diff --git a/gm/localmatriximageshader.cpp b/gm/localmatriximageshader.cpp
index 72751c5..dff3323 100644
--- a/gm/localmatriximageshader.cpp
+++ b/gm/localmatriximageshader.cpp
@@ -71,7 +71,8 @@
auto image = GetResourceAsImage("images/mandrill_256.png");
SkPaint p;
SkMatrix m = SkMatrix::Scale(2, 2);
- p.setShader(image->makeShader(SkSamplingOptions({1.0f/3, 1.0f/3}))->makeWithLocalMatrix(m));
+ p.setShader(image->makeShader(SkSamplingOptions(SkCubicResampler::Mitchell()))
+ ->makeWithLocalMatrix(m));
canvas->drawRect(SkRect::MakeXYWH(0, 0, 256, 256), p);
}
diff --git a/gm/mipmap.cpp b/gm/mipmap.cpp
index 73c55e9..40c9deb 100644
--- a/gm/mipmap.cpp
+++ b/gm/mipmap.cpp
@@ -49,7 +49,7 @@
SkSamplingOptions(SkFilterMode::kNearest),
SkSamplingOptions(SkFilterMode::kLinear),
SkSamplingOptions(SkFilterMode::kLinear, SkMipmapMode::kLinear),
- SkSamplingOptions({1.0f/3, 1.0f/3}),
+ SkSamplingOptions(SkCubicResampler::Mitchell()),
};
canvas->translate(20, 20);
diff --git a/gm/perspimages.cpp b/gm/perspimages.cpp
index 05c76df..ed8bae2 100644
--- a/gm/perspimages.cpp
+++ b/gm/perspimages.cpp
@@ -82,7 +82,7 @@
SkSamplingOptions(SkFilterMode::kNearest),
SkSamplingOptions(SkFilterMode::kLinear),
SkSamplingOptions(SkFilterMode::kLinear, SkMipmapMode::kLinear),
- SkSamplingOptions({1.0f/3, 1.0f/3})}) {
+ SkSamplingOptions(SkCubicResampler::Mitchell())}) {
for (const auto& img : fImages) {
canvas->save();
canvas->concat(m);
diff --git a/gm/perspshaders.cpp b/gm/perspshaders.cpp
index 96d2433..24073d0 100644
--- a/gm/perspshaders.cpp
+++ b/gm/perspshaders.cpp
@@ -157,7 +157,7 @@
this->drawRow(canvas, SkSamplingOptions(SkFilterMode::kLinear,
SkMipmapMode::kNearest));
canvas->translate(0, SkIntToScalar(kCellSize));
- this->drawRow(canvas, SkSamplingOptions({1.0f/3, 1.0f/3}));
+ this->drawRow(canvas, SkSamplingOptions(SkCubicResampler::Mitchell()));
canvas->translate(0, SkIntToScalar(kCellSize));
}
private:
diff --git a/gm/rectangletexture.cpp b/gm/rectangletexture.cpp
index f21bc8f..e48792d 100644
--- a/gm/rectangletexture.cpp
+++ b/gm/rectangletexture.cpp
@@ -157,7 +157,7 @@
SkSamplingOptions(SkFilterMode::kNearest),
SkSamplingOptions(SkFilterMode::kLinear),
SkSamplingOptions(SkFilterMode::kLinear, SkMipmapMode::kLinear),
- SkSamplingOptions({1.0f/3, 1.0f/3}),
+ SkSamplingOptions(SkCubicResampler::Mitchell()),
};
constexpr SkScalar kScales[] = {1.0f, 1.2f, 0.75f};
diff --git a/gm/resizeimagefilter.cpp b/gm/resizeimagefilter.cpp
index 4396c15..c9b1a89 100644
--- a/gm/resizeimagefilter.cpp
+++ b/gm/resizeimagefilter.cpp
@@ -77,7 +77,7 @@
SkSamplingOptions(),
SkSamplingOptions(SkFilterMode::kLinear),
SkSamplingOptions(SkFilterMode::kLinear, SkMipmapMode::kLinear),
- SkSamplingOptions({1.0f/3, 1.0f/3}),
+ SkSamplingOptions(SkCubicResampler::Mitchell()),
};
const SkRect srcRect = SkRect::MakeWH(96, 96);
const SkSize deviceSize = SkSize::Make(16, 16);
diff --git a/gm/sample_matrix_constant.cpp b/gm/sample_matrix_constant.cpp
index 000d67f..ae8d1fb 100644
--- a/gm/sample_matrix_constant.cpp
+++ b/gm/sample_matrix_constant.cpp
@@ -98,7 +98,8 @@
SkMatrix matrix;
SkSimpleMatrixProvider matrixProvider(matrix);
GrColorInfo colorInfo;
- GrFPArgs args(ctx, matrixProvider, SkSamplingOptions({1.0f/3, 1.0f/3}), &colorInfo);
+ GrFPArgs args(ctx, matrixProvider, SkSamplingOptions(SkCubicResampler::Mitchell()),
+ &colorInfo);
std::unique_ptr<GrFragmentProcessor> gradientFP = as_SB(shader)->asFragmentProcessor(args);
draw(std::move(gradientFP), 512, 0);
gradientFP = as_SB(shader)->asFragmentProcessor(args);
diff --git a/gm/sample_matrix_variable.cpp b/gm/sample_matrix_variable.cpp
index 04311af..9f3af57 100644
--- a/gm/sample_matrix_variable.cpp
+++ b/gm/sample_matrix_variable.cpp
@@ -96,7 +96,8 @@
SkMatrix matrix;
SkSimpleMatrixProvider matrixProvider(matrix);
GrColorInfo colorInfo;
- GrFPArgs args(ctx, matrixProvider, SkSamplingOptions({1.0f/3, 1.0f/3}), &colorInfo);
+ GrFPArgs args(ctx, matrixProvider, SkSamplingOptions(SkCubicResampler::Mitchell()),
+ &colorInfo);
std::unique_ptr<GrFragmentProcessor> gradientFP = as_SB(shader)->asFragmentProcessor(args);
draw(std::move(gradientFP), -128, 256, 256, 0);
}
diff --git a/gm/tiledscaledbitmap.cpp b/gm/tiledscaledbitmap.cpp
index db28c8d..c704dfa 100644
--- a/gm/tiledscaledbitmap.cpp
+++ b/gm/tiledscaledbitmap.cpp
@@ -66,7 +66,7 @@
mat.postTranslate(-72, -72);
paint.setShader(fBitmap.makeShader(SkTileMode::kRepeat, SkTileMode::kRepeat,
- SkSamplingOptions({1.0f/3, 1.0f/3}), mat));
+ SkSamplingOptions(SkCubicResampler::Mitchell()), mat));
canvas->drawRect({ 8, 8, 1008, 608 }, paint);
}