don't use drawBitmap
Bug: skia:11216
Change-Id: I89a40e330f27f30c461f2b6012bf26c082b66094
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/359076
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
diff --git a/dm/DMSrcSink.cpp b/dm/DMSrcSink.cpp
index e235431..30645a0 100644
--- a/dm/DMSrcSink.cpp
+++ b/dm/DMSrcSink.cpp
@@ -406,7 +406,7 @@
SkBitmap bitmap;
bitmap.installPixels(info, pixels, rowBytes);
swap_rb_if_necessary(bitmap, dstColorType);
- canvas->drawBitmap(bitmap, left, top);
+ canvas->drawImage(bitmap.asImage(), left, top);
}
// For codec srcs, we want the "draw" step to be a memcpy. Any interesting color space or
@@ -2201,7 +2201,7 @@
canvas.concat(upright);
SkPaint paint;
paint.setBlendMode(SkBlendMode::kSrc);
- canvas.drawBitmap(*bitmap, 0, 0, &paint);
+ canvas.drawImage(bitmap->asImage(), 0, 0, SkSamplingOptions(), &paint);
*bitmap = uprighted;
return Result::Ok();
diff --git a/docs/examples/Alpha_Constants_a.cpp b/docs/examples/Alpha_Constants_a.cpp
index aa2c7a3..391d04b 100644
--- a/docs/examples/Alpha_Constants_a.cpp
+++ b/docs/examples/Alpha_Constants_a.cpp
@@ -31,8 +31,6 @@
}
}
}
- SkBitmap bitmap;
- bitmap.installPixels(pixmap);
- canvas->drawBitmap(bitmap, 0, 0);
+ canvas->drawImage(SkImage::MakeRasterCopy(pixmap), 0, 0);
}
} // END FIDDLE
diff --git a/docs/examples/Alpha_Constants_b.cpp b/docs/examples/Alpha_Constants_b.cpp
index 34068d3..1e9191f 100644
--- a/docs/examples/Alpha_Constants_b.cpp
+++ b/docs/examples/Alpha_Constants_b.cpp
@@ -18,8 +18,6 @@
}
}
}
- SkBitmap bitmap;
- bitmap.installPixels(pixmap);
- canvas->drawBitmap(bitmap, 0, 0);
+ canvas->drawImage(SkImage::MakeRasterCopy(pixmap), 0, 0);
}
} // END FIDDLE
diff --git a/docs/examples/Anti_Alias.cpp b/docs/examples/Anti_Alias.cpp
index 120ac60..4f92642 100644
--- a/docs/examples/Anti_Alias.cpp
+++ b/docs/examples/Anti_Alias.cpp
@@ -18,7 +18,7 @@
canvas->drawLine(5, 5, 15, 30, paint);
canvas->save();
canvas->scale(10, 10);
- canvas->drawBitmap(bitmap, antialias ? 12 : 0, 0);
+ canvas->drawImage(bitmap.asImage(), antialias ? 12 : 0, 0);
canvas->restore();
canvas->translate(15, 0);
}
diff --git a/docs/examples/Bitmap_allocN32Pixels.cpp b/docs/examples/Bitmap_allocN32Pixels.cpp
index bf89e68..6bff77f 100644
--- a/docs/examples/Bitmap_allocN32Pixels.cpp
+++ b/docs/examples/Bitmap_allocN32Pixels.cpp
@@ -16,7 +16,7 @@
uint32_t h = random.nextRangeU(4, 32);
uint32_t cy = random.nextRangeU(0, 64 - h);
bitmap.erase(color, SkIRect::MakeXYWH(cx, cy, w, h));
- canvas->drawBitmap(bitmap, x, y);
+ canvas->drawImage(bitmap.asImage(), x, y);
}
}
}
diff --git a/docs/examples/Bitmap_allocPixels.cpp b/docs/examples/Bitmap_allocPixels.cpp
index d1c585c..e9ba469 100644
--- a/docs/examples/Bitmap_allocPixels.cpp
+++ b/docs/examples/Bitmap_allocPixels.cpp
@@ -10,8 +10,8 @@
SkCanvas offscreen(bitmap);
offscreen.scale(.5f, .5f);
for (int y : { 0, 64, 128, 192 } ) {
- offscreen.drawBitmap(source, 0, -y);
- canvas->drawBitmap(bitmap, 0, y);
+ offscreen.drawImage(source.asImage(), 0, -y);
+ canvas->drawImage(bitmap.asImage(), 0, y);
}
}
} // END FIDDLE
diff --git a/docs/examples/Bitmap_allocPixelsFlags.cpp b/docs/examples/Bitmap_allocPixelsFlags.cpp
index 78ffb99..027cadd 100644
--- a/docs/examples/Bitmap_allocPixelsFlags.cpp
+++ b/docs/examples/Bitmap_allocPixelsFlags.cpp
@@ -12,7 +12,7 @@
SkFont font;
offscreen.drawString("!@#$%", 0, 12, font, paint);
canvas->scale(6, 6);
- canvas->drawBitmap(bitmap, 0, 0);
- canvas->drawBitmap(bitmap, 8, 8);
+ canvas->drawImage(bitmap.asImage(), 0, 0);
+ canvas->drawImage(bitmap.asImage(), 8, 8);
}
} // END FIDDLE
diff --git a/docs/examples/Bitmap_allocPixels_2.cpp b/docs/examples/Bitmap_allocPixels_2.cpp
deleted file mode 100644
index 5c425ef..0000000
--- a/docs/examples/Bitmap_allocPixels_2.cpp
+++ /dev/null
@@ -1,16 +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=91f474a11a2112cd5c88c40a9015048d
-REG_FIDDLE(Bitmap_allocPixels_2, 256, 256, false, 4) {
-void draw(SkCanvas* canvas) {
- SkBitmap bitmap;
- bitmap.allocPixels(SkImageInfo::Make(64, 64, kGray_8_SkColorType, kOpaque_SkAlphaType));
- SkCanvas offscreen(bitmap);
- offscreen.scale(.5f, .5f);
- for (int y : { 0, 64, 128, 192 } ) {
- offscreen.drawBitmap(source, -y, -y);
- canvas->drawBitmap(bitmap, y, y);
- }
-}
-} // END FIDDLE
diff --git a/docs/examples/Bitmap_allocPixels_3.cpp b/docs/examples/Bitmap_allocPixels_3.cpp
deleted file mode 100644
index 20607a4..0000000
--- a/docs/examples/Bitmap_allocPixels_3.cpp
+++ /dev/null
@@ -1,19 +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=1219b38c788bf270fb20f8cd2d78cff8
-REG_FIDDLE(Bitmap_allocPixels_3, 256, 50, false, 0) {
-void draw(SkCanvas* canvas) {
- uint8_t set1[5] = { 0xCA, 0xDA, 0xCA, 0xC9, 0xA3 };
- uint8_t set2[5] = { 0xAC, 0xA8, 0x89, 0x47, 0x87 };
- SkBitmap bitmap;
- bitmap.installPixels(SkImageInfo::Make(5, 1, kGray_8_SkColorType, kOpaque_SkAlphaType), set1, 5);
- canvas->scale(10, 50);
- canvas->drawBitmap(bitmap, 0, 0);
- bitmap.allocPixels();
- bitmap.eraseColor(SK_ColorBLACK);
- canvas->drawBitmap(bitmap, 8, 0);
- bitmap.setPixels(set2);
- canvas->drawBitmap(bitmap, 16, 0);
-}
-} // END FIDDLE
diff --git a/docs/examples/Bitmap_allocPixels_4.cpp b/docs/examples/Bitmap_allocPixels_4.cpp
deleted file mode 100644
index e12e68e..0000000
--- a/docs/examples/Bitmap_allocPixels_4.cpp
+++ /dev/null
@@ -1,32 +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=1b2800d23c9ea249b45c2c21a34b6d14
-REG_FIDDLE(Bitmap_allocPixels_4, 256, 32, false, 0) {
-class TinyAllocator : public SkBitmap::Allocator {
-public:
- bool allocPixelRef(SkBitmap* bitmap) override {
- const SkImageInfo& info = bitmap->info();
- if (info.height() * info.minRowBytes() > sizeof(storage)) {
- return false;
- }
- sk_sp<SkPixelRef> pr = sk_sp<SkPixelRef>(
- new SkPixelRef(info.width(), info.height(), storage, info.minRowBytes()));
- bitmap->setPixelRef(std::move(pr), 0, 0);
- return true;
- }
- char storage[16];
-};
-
-void draw(SkCanvas* canvas) {
- TinyAllocator tinyAllocator;
- SkBitmap bitmap;
- bitmap.setInfo(SkImageInfo::MakeN32(2, 2, kOpaque_SkAlphaType));
- if (bitmap.tryAllocPixels(&tinyAllocator)) {
- bitmap.eraseColor(0xff55aa33);
- bitmap.erase(0xffaa3355, SkIRect::MakeXYWH(1, 1, 1, 1));
- canvas->scale(16, 16);
- canvas->drawBitmap(bitmap, 0, 0);
- }
-}
-} // END FIDDLE
diff --git a/docs/examples/Bitmap_bounds.cpp b/docs/examples/Bitmap_bounds.cpp
index 221b733..6edbf92 100644
--- a/docs/examples/Bitmap_bounds.cpp
+++ b/docs/examples/Bitmap_bounds.cpp
@@ -8,7 +8,7 @@
SkIRect bounds = source.bounds();
for (int x : { 0, bounds.width() } ) {
for (int y : { 0, bounds.height() } ) {
- canvas->drawBitmap(source, x, y);
+ canvas->drawImage(source.asImage(), x, y);
}
}
}
diff --git a/docs/examples/Bitmap_erase.cpp b/docs/examples/Bitmap_erase.cpp
index 6af379e..faeba8b 100644
--- a/docs/examples/Bitmap_erase.cpp
+++ b/docs/examples/Bitmap_erase.cpp
@@ -11,7 +11,7 @@
bitmap.erase(0x7f3fff7f, SkIRect::MakeXYWH(1, 0, 1, 1));
bitmap.erase(0x7f1fbf5f, SkIRect::MakeXYWH(1, 1, 1, 1));
canvas->scale(25, 25);
- canvas->drawBitmap(bitmap, 0, 0);
- canvas->drawBitmap(bitmap, .5f, .5f);
+ canvas->drawImage(bitmap.asImage(), 0, 0);
+ canvas->drawImage(bitmap.asImage(), .5f, .5f);
}
} // END FIDDLE
diff --git a/docs/examples/Bitmap_eraseARGB.cpp b/docs/examples/Bitmap_eraseARGB.cpp
index 4351c4a..327326d 100644
--- a/docs/examples/Bitmap_eraseARGB.cpp
+++ b/docs/examples/Bitmap_eraseARGB.cpp
@@ -8,7 +8,7 @@
bitmap.allocPixels(SkImageInfo::MakeN32(1, 1, kPremul_SkAlphaType));
bitmap.eraseARGB(0x7f, 0xff, 0x7f, 0x3f);
canvas->scale(50, 50);
- canvas->drawBitmap(bitmap, 0, 0);
- canvas->drawBitmap(bitmap, .5f, .5f);
+ canvas->drawImage(bitmap.asImage(), 0, 0);
+ canvas->drawImage(bitmap.asImage(), .5f, .5f);
}
} // END FIDDLE
diff --git a/gm/emboss.cpp b/gm/emboss.cpp
index 04c99fd..32b9cf6 100644
--- a/gm/emboss.cpp
+++ b/gm/emboss.cpp
@@ -18,20 +18,18 @@
#include "include/core/SkShader.h"
#include "include/core/SkSize.h"
#include "include/core/SkString.h"
+#include "include/core/SkSurface.h"
#include "include/core/SkTypeface.h"
#include "src/core/SkBlurMask.h"
#include "src/effects/SkEmbossMaskFilter.h"
-static SkBitmap make_bm() {
- SkBitmap bm;
- bm.allocN32Pixels(100, 100);
+static sk_sp<SkImage> make_bm() {
+ auto surf = SkSurface::MakeRasterN32Premul(100, 100);
- SkCanvas canvas(bm);
- canvas.clear(0);
SkPaint paint;
paint.setAntiAlias(true);
- canvas.drawCircle(50, 50, 50, paint);
- return bm;
+ surf->getCanvas()->drawCircle(50, 50, 50, paint);
+ return surf->makeImageSnapshot();
}
class EmbossGM : public skiagm::GM {
@@ -50,21 +48,21 @@
void onDraw(SkCanvas* canvas) override {
SkPaint paint;
- SkBitmap bm = make_bm();
- canvas->drawBitmap(bm, 10, 10, &paint);
- canvas->translate(bm.width() + SkIntToScalar(10), 0);
+ auto img = make_bm();
+ canvas->drawImage(img, 10, 10, &paint);
+ canvas->translate(img->width() + SkIntToScalar(10), 0);
paint.setMaskFilter(SkEmbossMaskFilter::Make(
SkBlurMask::ConvertRadiusToSigma(3),
{ { SK_Scalar1, SK_Scalar1, SK_Scalar1 }, 0, 128, 16*2 }));
- canvas->drawBitmap(bm, 10, 10, &paint);
- canvas->translate(bm.width() + SkIntToScalar(10), 0);
+ canvas->drawImage(img, 10, 10, &paint);
+ canvas->translate(img->width() + SkIntToScalar(10), 0);
// this combination of emboss+colorfilter used to crash -- so we exercise it to
// confirm that we have a fix.
paint.setColorFilter(SkColorFilters::Blend(0xFFFF0000, SkBlendMode::kSrcATop));
- canvas->drawBitmap(bm, 10, 10, &paint);
- canvas->translate(bm.width() + SkIntToScalar(10), 0);
+ canvas->drawImage(img, 10, 10, &paint);
+ canvas->translate(img->width() + SkIntToScalar(10), 0);
paint.setAntiAlias(true);
paint.setStyle(SkPaint::kStroke_Style);
diff --git a/gm/image_pict.cpp b/gm/image_pict.cpp
index 75dcecf..d375b84 100644
--- a/gm/image_pict.cpp
+++ b/gm/image_pict.cpp
@@ -296,7 +296,7 @@
SkScalar x, SkScalar y) {
SkBitmap bitmap;
if (as_IB(image)->getROPixels(dContext, &bitmap)) {
- canvas->drawBitmap(bitmap, x, y);
+ canvas->drawImage(bitmap.asImage(), x, y);
} else {
draw_placeholder(canvas, x, y, image->width(), image->height());
}
diff --git a/gm/imagefiltersbase.cpp b/gm/imagefiltersbase.cpp
index 11923b4..12669d6 100644
--- a/gm/imagefiltersbase.cpp
+++ b/gm/imagefiltersbase.cpp
@@ -153,7 +153,7 @@
SkCanvas c(bm);
draw_path(&c, i, r, nullptr);
- canvas->drawBitmap(bm, 0, 0, &paint);
+ canvas->drawImage(bm.asImage(), 0, 0, SkSamplingOptions(), &paint);
}
static void draw_patch(SkCanvas* canvas, SkImage*, const SkRect& r, sk_sp<SkImageFilter> imf) {
diff --git a/gm/matrixconvolution.cpp b/gm/matrixconvolution.cpp
index 582392e..a150057 100644
--- a/gm/matrixconvolution.cpp
+++ b/gm/matrixconvolution.cpp
@@ -52,9 +52,7 @@
void makeBitmap() {
// Draw our bitmap in N32, so legacy devices get "premul" values they understand
- fBitmap.allocN32Pixels(80, 80);
- SkCanvas canvas(fBitmap);
- canvas.clear(0x00000000);
+ auto surf = SkSurface::MakeRasterN32Premul(80, 80);
SkPaint paint;
paint.setColor(0xFFFFFFFF);
SkPoint pts[2] = { {0, 0},
@@ -63,7 +61,8 @@
paint.setShader(SkGradientShader::MakeLinear(
pts, fColors, pos, 2, SkTileMode::kClamp));
SkFont font(ToolUtils::create_portable_typeface(), 180.0f);
- canvas.drawString("e", -10.0f, 80.0f, font, paint);
+ surf->getCanvas()->drawString("e", -10.0f, 80.0f, font, paint);
+ fImage = surf->makeImageSnapshot();
}
SkISize onISize() override {
@@ -98,13 +97,13 @@
paint.setImageFilter(this->makeFilter(kernelOffset, tileMode, convolveAlpha, cropRect));
canvas->save();
canvas->translate(SkIntToScalar(x), SkIntToScalar(y));
- const SkRect layerBounds = SkRect::MakeIWH(fBitmap.width(), fBitmap.height());
+ const SkRect layerBounds = SkRect::Make(fImage->bounds());
canvas->clipRect(layerBounds);
// This GM is, in part, intended to display the wrapping behavior of the
// matrix image filter. The only (rational) way to achieve that for repeat mode
// is to create a tight layer.
canvas->saveLayer(layerBounds, &paint);
- canvas->drawBitmap(fBitmap, 0, 0, nullptr);
+ canvas->drawImage(fImage, 0, 0);
canvas->restore();
canvas->restore();
}
@@ -116,7 +115,7 @@
void onDraw(SkCanvas* canvas) override {
canvas->clear(SK_ColorBLACK);
SkIPoint kernelOffset = SkIPoint::Make(1, 0);
- SkIRect rect = fBitmap.bounds();
+ SkIRect rect = fImage->bounds();
for (int x = 10; x < 310; x += 100) {
this->draw(canvas, x, 10, kernelOffset, SkTileMode::kClamp, true, &rect);
this->draw(canvas, x, 110, kernelOffset, SkTileMode::kDecal, true, &rect);
@@ -135,7 +134,7 @@
}
private:
- SkBitmap fBitmap;
+ sk_sp<SkImage> fImage;
SkColor fColors[2];
const char* fNameSuffix;
KernelFixture fKernelFixture;
diff --git a/gm/rasterhandleallocator.cpp b/gm/rasterhandleallocator.cpp
index 3e3b597..340b033 100644
--- a/gm/rasterhandleallocator.cpp
+++ b/gm/rasterhandleallocator.cpp
@@ -303,7 +303,5 @@
SkPixmap pm;
nativeCanvas->peekPixels(&pm);
- SkBitmap bm;
- bm.installPixels(pm);
- canvas->drawBitmap(bm, 280, 0, nullptr);
+ canvas->drawImage(SkImage::MakeRasterCopy(pm), 280, 0);
}
diff --git a/gm/recordopts.cpp b/gm/recordopts.cpp
index c427a86..5a873e7 100644
--- a/gm/recordopts.cpp
+++ b/gm/recordopts.cpp
@@ -96,7 +96,7 @@
canvas->saveLayer(&targetRect, &layerPaint);
SkPaint drawPaint;
installDetector(&drawPaint);
- canvas->drawBitmap(bitmap, SkIntToScalar(0), SkIntToScalar(0), &drawPaint);
+ canvas->drawImage(bitmap.asImage(), 0, 0, SkSamplingOptions(), &drawPaint);
canvas->restore();
}
diff --git a/gm/runtimeintrinsics.cpp b/gm/runtimeintrinsics.cpp
index 2e1f7c8..8127941 100644
--- a/gm/runtimeintrinsics.cpp
+++ b/gm/runtimeintrinsics.cpp
@@ -73,7 +73,7 @@
bitmap.allocPixels(info);
surface->readPixels(bitmap, 0, 0);
- canvas->drawBitmap(bitmap, 0, 0);
+ canvas->drawImage(bitmap.asImage(), 0, 0);
return bitmap;
}
diff --git a/gm/wacky_yuv_formats.cpp b/gm/wacky_yuv_formats.cpp
index 5222459..d87b628 100644
--- a/gm/wacky_yuv_formats.cpp
+++ b/gm/wacky_yuv_formats.cpp
@@ -934,7 +934,8 @@
draw_col_label(canvas, dstRect.fLeft + cellWidth / 2, cs, opaque);
- canvas->drawBitmapRect(fOriginalBMs[opaque], srcRect, dstRect, nullptr, constraint);
+ canvas->drawImageRect(fOriginalBMs[opaque].asImage(), srcRect, dstRect,
+ SkSamplingOptions(), nullptr, constraint);
dstRect.offset(0.f, cellHeight + kPad);
for (int format = kP016_YUVFormat; format <= kLast_YUVFormat; ++format) {
@@ -1126,7 +1127,7 @@
SkBitmap readBack;
readBack.allocPixels(yuv->imageInfo());
SkAssertResult(yuv->readPixels(dContext, readBack.pixmap(), 0, 0));
- canvas->drawBitmap(readBack, x, y);
+ canvas->drawImage(readBack.asImage(), x, y);
}
x += kTileWidthHeight + kPad;
}
diff --git a/tests/PictureTest.cpp b/tests/PictureTest.cpp
index a3249a6..dab0144 100644
--- a/tests/PictureTest.cpp
+++ b/tests/PictureTest.cpp
@@ -633,8 +633,8 @@
canvas->drawColor(0);
canvas->saveLayer(nullptr, &semiTransparent);
- canvas->drawBitmap(blueBM, 25, 25);
- canvas->drawBitmap(redBM, 50, 50);
+ canvas->drawImage(blueBM.asImage(), 25, 25);
+ canvas->drawImage(redBM.asImage(), 50, 50);
canvas->restore();
sk_sp<SkPicture> picture(recorder.finishRecordingAsPicture());
@@ -716,8 +716,8 @@
// place it inside local braces.
SkPictureRecorder rec;
SkCanvas* canvas = rec.beginRecording(1920, 1200);
- canvas->drawBitmap(mut, 0, 0);
- canvas->drawBitmap(immut, 800, 600);
+ canvas->drawImage(mut.asImage(), 0, 0);
+ canvas->drawImage(immut.asImage(), 800, 600);
pic = rec.finishRecordingAsPicture();
}
diff --git a/tests/QuickRejectTest.cpp b/tests/QuickRejectTest.cpp
index c637c72..13e3d1e 100644
--- a/tests/QuickRejectTest.cpp
+++ b/tests/QuickRejectTest.cpp
@@ -23,13 +23,12 @@
dst.eraseColor(SK_ColorTRANSPARENT);
SkCanvas canvas(dst);
- SkPaint paint;
// we are initially transparent
REPORTER_ASSERT(reporter, 0 == *dst.getAddr32(5, 5));
// we see the bitmap drawn
- canvas.drawBitmap(src, 0, 0, &paint);
+ canvas.drawImage(src.asImage(), 0, 0);
REPORTER_ASSERT(reporter, 0xFFFFFFFF == *dst.getAddr32(5, 5));
// reverify we are clear again
@@ -37,7 +36,7 @@
REPORTER_ASSERT(reporter, 0 == *dst.getAddr32(5, 5));
// if the bitmap is clipped out, we don't draw it
- canvas.drawBitmap(src, SkIntToScalar(-10), 0, &paint);
+ canvas.drawImage(src.asImage(), SkIntToScalar(-10), 0);
REPORTER_ASSERT(reporter, 0 == *dst.getAddr32(5, 5));
}
diff --git a/tests/ReadPixelsTest.cpp b/tests/ReadPixelsTest.cpp
index b5ecc39..3787a41 100644
--- a/tests/ReadPixelsTest.cpp
+++ b/tests/ReadPixelsTest.cpp
@@ -91,7 +91,7 @@
return SkPackARGB32(a, r, g, b);
}
-static SkBitmap make_src_bitmap() {
+static sk_sp<SkImage> make_src_image() {
static SkBitmap bmp;
if (bmp.isNull()) {
bmp.allocN32Pixels(DEV_W, DEV_H);
@@ -102,8 +102,9 @@
*pixel = get_src_color(x, y);
}
}
+ bmp.setImmutable();
}
- return bmp;
+ return bmp.asImage();
}
static void fill_src_canvas(SkCanvas* canvas) {
@@ -112,7 +113,7 @@
canvas->clipRect(DEV_RECT_S, SkClipOp::kIntersect);
SkPaint paint;
paint.setBlendMode(SkBlendMode::kSrc);
- canvas->drawBitmap(make_src_bitmap(), 0, 0, &paint);
+ canvas->drawImage(make_src_image(), 0, 0, SkSamplingOptions(), &paint);
canvas->restore();
}
diff --git a/tests/RecordingXfermodeTest.cpp b/tests/RecordingXfermodeTest.cpp
index 16e63ea..9dad24e 100644
--- a/tests/RecordingXfermodeTest.cpp
+++ b/tests/RecordingXfermodeTest.cpp
@@ -13,6 +13,7 @@
#include "include/core/SkPictureRecorder.h"
#include "include/core/SkStream.h"
#include "include/core/SkString.h"
+#include "include/core/SkSurface.h"
#include "src/core/SkBlendModePriv.h"
#include <cstring>
@@ -27,12 +28,12 @@
class Drawer {
public:
explicit Drawer() : fImageInfo(SkImageInfo::MakeN32Premul(200, 100)) {
- fCircleBM.allocPixels(SkImageInfo::MakeN32Premul(100, 100));
- SkCanvas canvas(fCircleBM);
- canvas.clear(0xffffffff);
+ auto surf = SkSurface::MakeRasterN32Premul(100, 100);
+ surf->getCanvas()->clear(0xffffffff);
SkPaint circlePaint;
circlePaint.setColor(0xff000000);
- canvas.drawCircle(50, 50, 50, circlePaint);
+ surf->getCanvas()->drawCircle(50, 50, 50, circlePaint);
+ fCircleImage = surf->makeImageSnapshot();
}
const SkImageInfo& imageInfo() const { return fImageInfo; }
@@ -56,14 +57,15 @@
canvas->saveLayer(nullptr, &blackPaint);
canvas->drawRect(canvasRect, greenPaint);
canvas->saveLayer(nullptr, &layerPaint);
- canvas->drawBitmapRect(fCircleBM, SkRect::MakeXYWH(20,20,60,60), &blackPaint);
+ canvas->drawImageRect(fCircleImage, SkRect::MakeXYWH(20,20,60,60),
+ SkSamplingOptions(), &blackPaint);
canvas->restore();
canvas->restore();
}
private:
const SkImageInfo fImageInfo;
- SkBitmap fCircleBM;
+ sk_sp<SkImage> fCircleImage;
};
class RecordingStrategy {
diff --git a/tests/ResourceCacheTest.cpp b/tests/ResourceCacheTest.cpp
index f79a1ba..23d46f3 100644
--- a/tests/ResourceCacheTest.cpp
+++ b/tests/ResourceCacheTest.cpp
@@ -59,7 +59,7 @@
readback.allocN32Pixels(size.width(), size.height());
for (int i = 0; i < 100; ++i) {
- canvas->drawBitmap(src, 0, 0);
+ canvas->drawImage(src.asImage(), 0, 0);
surface->readPixels(readback, 0, 0);
// "modify" the src texture
diff --git a/tests/SerializationTest.cpp b/tests/SerializationTest.cpp
index e13d3eb..fa516c1 100644
--- a/tests/SerializationTest.cpp
+++ b/tests/SerializationTest.cpp
@@ -294,7 +294,7 @@
SkPaint paint;
paint.setImageFilter(deserializedFilter);
canvas.clipRect(SkRect::MakeXYWH(0, 0, SkIntToScalar(24), SkIntToScalar(24)));
- canvas.drawBitmap(bitmap, 0, 0, &paint);
+ canvas.drawImage(bitmap.asImage(), 0, 0, &paint);
}
}
@@ -475,7 +475,8 @@
bitmap->allocN32Pixels(kBitmapSize, kBitmapSize);
}
-static void make_checkerboard_bitmap(SkBitmap& bitmap) {
+static sk_sp<SkImage> make_checkerboard_image() {
+ SkBitmap bitmap;
setup_bitmap_for_canvas(&bitmap);
SkCanvas canvas(bitmap);
@@ -497,20 +498,17 @@
canvas.restore();
}
}
+ return bitmap.asImage();
}
static void draw_something(SkCanvas* canvas) {
- SkPaint paint;
- SkBitmap bitmap;
- make_checkerboard_bitmap(bitmap);
-
canvas->save();
canvas->scale(0.5f, 0.5f);
- canvas->drawBitmap(bitmap, 0, 0, nullptr);
+ canvas->drawImage(make_checkerboard_image(), 0, 0);
canvas->restore();
+ SkPaint paint;
paint.setAntiAlias(true);
-
paint.setColor(SK_ColorRED);
canvas->drawCircle(SkIntToScalar(kBitmapSize/2), SkIntToScalar(kBitmapSize/2), SkIntToScalar(kBitmapSize/3), paint);
paint.setColor(SK_ColorBLACK);
diff --git a/tests/Skbug6653.cpp b/tests/Skbug6653.cpp
index 12cb629..769c177 100644
--- a/tests/Skbug6653.cpp
+++ b/tests/Skbug6653.cpp
@@ -65,8 +65,7 @@
auto s3 = make_surface(dContext);
s3->getCanvas()->clear(SK_ColorBLUE);
- SkBitmap b3 = read_pixels(s3, SK_ColorBLACK);
- s0->getCanvas()->drawBitmap(b3, 0, 0);
+ s0->getCanvas()->drawImage(read_pixels(s3, SK_ColorBLACK).asImage(), 0, 0);
s3 = nullptr;
auto s4 = make_surface(dContext);
diff --git a/tests/SurfaceTest.cpp b/tests/SurfaceTest.cpp
index 27dfe0e..f99dc60 100644
--- a/tests/SurfaceTest.cpp
+++ b/tests/SurfaceTest.cpp
@@ -422,8 +422,8 @@
EXPECT_COPY_ON_WRITE(drawRect(testRect, testPaint))
EXPECT_COPY_ON_WRITE(drawRRect(testRRect, testPaint))
EXPECT_COPY_ON_WRITE(drawPath(testPath, testPaint))
- EXPECT_COPY_ON_WRITE(drawBitmap(testBitmap, 0, 0))
- EXPECT_COPY_ON_WRITE(drawBitmapRect(testBitmap, testRect, nullptr))
+ EXPECT_COPY_ON_WRITE(drawImage(testBitmap.asImage(), 0, 0))
+ EXPECT_COPY_ON_WRITE(drawImageRect(testBitmap.asImage(), testRect, SkSamplingOptions()))
EXPECT_COPY_ON_WRITE(drawString(testText, 0, 1, SkFont(), testPaint))
}
DEF_TEST(SurfaceCopyOnWrite, reporter) {
diff --git a/tools/fiddle/all_examples.cpp b/tools/fiddle/all_examples.cpp
index 6bcbea1..350b355 100644
--- a/tools/fiddle/all_examples.cpp
+++ b/tools/fiddle/all_examples.cpp
@@ -15,9 +15,6 @@
#include "../../docs/examples/Bitmap_allocN32Pixels.cpp"
#include "../../docs/examples/Bitmap_allocPixels.cpp"
#include "../../docs/examples/Bitmap_allocPixelsFlags.cpp"
-#include "../../docs/examples/Bitmap_allocPixels_2.cpp"
-#include "../../docs/examples/Bitmap_allocPixels_3.cpp"
-#include "../../docs/examples/Bitmap_allocPixels_4.cpp"
#include "../../docs/examples/Bitmap_bounds.cpp"
#include "../../docs/examples/Bitmap_bytesPerPixel.cpp"
#include "../../docs/examples/Bitmap_colorSpace.cpp"