More hiding of legacy drawImage calls
Also cleanup some of the duplicate code in SkRecords
Bug: skia:7650
Change-Id: I4d3167a892c126c19a54002beab25c9a6c96fa5d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/357000
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
diff --git a/samplecode/SampleShip.cpp b/samplecode/SampleShip.cpp
index 221bbf0..a20f8b2 100644
--- a/samplecode/SampleShip.cpp
+++ b/samplecode/SampleShip.cpp
@@ -21,25 +21,26 @@
static const int kHeight = 640;
typedef void (*DrawAtlasProc)(SkCanvas*, SkImage*, const SkRSXform[], const SkRect[],
-const SkColor[], int, const SkRect*, const SkPaint*);
+const SkColor[], int, const SkRect*, const SkSamplingOptions&, const SkPaint*);
static void draw_atlas(SkCanvas* canvas, SkImage* atlas, const SkRSXform xform[],
const SkRect tex[], const SkColor colors[], int count, const SkRect* cull,
- const SkPaint* paint) {
- canvas->drawAtlas(atlas, xform, tex, colors, count, SkBlendMode::kModulate, cull, paint);
+ const SkSamplingOptions& sampling, const SkPaint* paint) {
+ canvas->drawAtlas(atlas, xform, tex, colors, count, SkBlendMode::kModulate, sampling,
+ cull, paint);
}
static void draw_atlas_sim(SkCanvas* canvas, SkImage* atlas, const SkRSXform xform[],
const SkRect tex[], const SkColor colors[], int count, const SkRect* cull,
- const SkPaint* paint) {
+ const SkSamplingOptions& sampling, const SkPaint* paint) {
for (int i = 0; i < count; ++i) {
SkMatrix matrix;
matrix.setRSXform(xform[i]);
canvas->save();
canvas->concat(matrix);
- canvas->drawImageRect(atlas, tex[i], tex[i].makeOffset(-tex[i].x(), -tex[i].y()), paint,
- SkCanvas::kFast_SrcRectConstraint);
+ canvas->drawImageRect(atlas, tex[i], tex[i].makeOffset(-tex[i].x(), -tex[i].y()),
+ sampling, paint, SkCanvas::kFast_SrcRectConstraint);
canvas->restore();
}
}
@@ -97,7 +98,6 @@
}
SkPaint paint;
- SkPaintPriv::SetFQ(&paint, kLow_SkFilterQuality);
paint.setColor(SK_ColorWHITE);
SkScalar anchorX = fAtlas->width()*0.5f;
@@ -118,7 +118,8 @@
fXform[i].fTy += dy;
}
- fProc(canvas, fAtlas.get(), fXform, fTex, nullptr, kGrid*kGrid+1, nullptr, &paint);
+ fProc(canvas, fAtlas.get(), fXform, fTex, nullptr, kGrid*kGrid+1, nullptr,
+ SkSamplingOptions(SkFilterMode::kLinear), &paint);
}
bool onAnimate(double nanos) override {
diff --git a/samplecode/SampleTiming.cpp b/samplecode/SampleTiming.cpp
index e4c9ad1..4dce6d1 100644
--- a/samplecode/SampleTiming.cpp
+++ b/samplecode/SampleTiming.cpp
@@ -40,9 +40,10 @@
for (int y = 0; y < H; y++)
for (int x = 0; x < W; x++) {
auto start = std::chrono::steady_clock::now();
- canvas->drawImageRect(fImg, SkRect::MakeXYWH(x,y,1,1)
- , SkRect::MakeXYWH(x,y,1,1)
- , /*paint=*/nullptr);
+ canvas->drawImageRect(fImg.get(),
+ SkRect::MakeXYWH(x,y,1,1), SkRect::MakeXYWH(x,y,1,1),
+ SkSamplingOptions(), /*paint=*/nullptr,
+ SkCanvas::kStrict_SrcRectConstraint);
auto elapsed = std::chrono::steady_clock::now() - start;
cost[y][x] = elapsed.count();