get image from skcodec
Part of the larger work to remove drawImage from canvas (and in general
simplify our apis w.r.t. older patterns like skbitmap).
Change-Id: If208927e1d46256519036c42e68aec3d3c809a82
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/358836
Reviewed-by: Leon Scroggins <scroggo@google.com>
Commit-Queue: Mike Reed <reed@google.com>
diff --git a/gm/bitmapimage.cpp b/gm/bitmapimage.cpp
index 9695084..409f13d2 100644
--- a/gm/bitmapimage.cpp
+++ b/gm/bitmapimage.cpp
@@ -48,9 +48,7 @@
// Create matching bitmap.
std::unique_ptr<SkCodec> codec(SkCodec::MakeFromStream(GetResourceAsStream(path)));
- SkBitmap bitmap;
- bitmap.allocPixels(codec->getInfo());
- codec->getPixels(codec->getInfo(), bitmap.getPixels(), bitmap.rowBytes());
+ auto [codecImage, _] = codec->getImage();
// The GM will be displayed in a 2x2 grid.
// The top two squares show an sRGB image, then bitmap, drawn to a legacy canvas.
@@ -60,7 +58,7 @@
SkCanvas legacyCanvas(legacyBMCanvas);
legacyCanvas.drawImage(image, 0.0f, 0.0f);
legacyCanvas.translate(SkScalar(kSize), 0.0f);
- legacyCanvas.drawImage(bitmap.asImage(), 0.0f, 0.0f);
+ legacyCanvas.drawImage(codecImage, 0.0f, 0.0f);
canvas->drawImage(legacyBMCanvas.asImage(), 0.0f, 0.0f);
canvas->translate(0.0f, SkScalar(kSize));
@@ -71,7 +69,7 @@
SkCanvas srgbCanvas(srgbBMCanvas);
srgbCanvas.drawImage(image, 0.0f, 0.0f);
srgbCanvas.translate(SkScalar(kSize), 0.0f);
- srgbCanvas.drawImage(bitmap.asImage(), 0.0f, 0.0f);
+ srgbCanvas.drawImage(codecImage, 0.0f, 0.0f);
canvas->drawImage(srgbBMCanvas.asImage(), 0.0f, 0.0f);
return DrawResult::kOk;
}