aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--gm/crosscontextimage.cpp2
-rw-r--r--gm/drawbitmaprect.cpp2
-rw-r--r--include/core/SkImage.h8
-rw-r--r--src/image/SkImage.cpp10
-rw-r--r--src/image/SkImage_Base.h2
-rw-r--r--src/image/SkImage_Raster.cpp26
-rw-r--r--src/xps/SkXPSDevice.cpp2
-rw-r--r--tests/EncodeTest.cpp20
-rw-r--r--tests/ImageTest.cpp60
-rw-r--r--tests/SurfaceTest.cpp2
-rw-r--r--tools/debugger/SkDrawCommand.cpp2
-rw-r--r--tools/fiddle/fiddle_main.cpp2
-rw-r--r--tools/ok_vias.cpp2
13 files changed, 61 insertions, 79 deletions
diff --git a/gm/crosscontextimage.cpp b/gm/crosscontextimage.cpp
index 03203c498c..19760c45e4 100644
--- a/gm/crosscontextimage.cpp
+++ b/gm/crosscontextimage.cpp
@@ -30,7 +30,7 @@ DEF_SIMPLE_GM(cross_context_image, canvas, 512 * 3 + 60, 512 + 128 + 30) {
SkBitmap bmp;
SkPixmap pixmap;
- SkAssertResult(encodedImage->asLegacyBitmap(&bmp, SkImage::kRO_LegacyBitmapMode) &&
+ SkAssertResult(encodedImage->asLegacyBitmap(&bmp) &&
bmp.peekPixels(&pixmap));
sk_sp<SkImage> crossContextRaster = SkImage::MakeCrossContextFromPixmap(
diff --git a/gm/drawbitmaprect.cpp b/gm/drawbitmaprect.cpp
index 200a3971e8..6b5f6d9920 100644
--- a/gm/drawbitmaprect.cpp
+++ b/gm/drawbitmaprect.cpp
@@ -79,7 +79,7 @@ static sk_sp<SkImage> makebm(SkCanvas* origCanvas, SkBitmap* resultBM, int w, in
SkBitmap tempBM;
- image->asLegacyBitmap(&tempBM, SkImage::kRO_LegacyBitmapMode);
+ image->asLegacyBitmap(&tempBM);
// Let backends know we won't change this, so they don't have to deep copy it defensively.
tempBM.setImmutable();
diff --git a/include/core/SkImage.h b/include/core/SkImage.h
index 9e4e237db4..5cf6ebe475 100644
--- a/include/core/SkImage.h
+++ b/include/core/SkImage.h
@@ -583,22 +583,22 @@ public:
// Helper functions to convert to SkBitmap
-
+ // TODO: enum LegacyBitmapMode to be deprecated; keeping enum until callers are revised to omit
+ // parameter
enum LegacyBitmapMode {
kRO_LegacyBitmapMode,
- kRW_LegacyBitmapMode,
};
/**
* Attempt to create a bitmap with the same pixels as the image. The result will always be
* a raster-backed bitmap (texture-backed bitmaps are DEPRECATED, and not supported here).
*
- * If the mode is kRO (read-only), the resulting bitmap will be marked as immutable.
+ * The resulting bitmap will be marked as immutable.
*
* On succcess, returns true. On failure, returns false and the bitmap parameter will be reset
* to empty.
*/
- bool asLegacyBitmap(SkBitmap* bitmap, LegacyBitmapMode legacyBitmapMode) const;
+ bool asLegacyBitmap(SkBitmap* bitmap, LegacyBitmapMode legacyBitmapMode = kRO_LegacyBitmapMode) const;
/**
* Returns true if the image is backed by an image-generator or other src that creates
diff --git a/src/image/SkImage.cpp b/src/image/SkImage.cpp
index 375c43e68d..4d54a1c838 100644
--- a/src/image/SkImage.cpp
+++ b/src/image/SkImage.cpp
@@ -215,11 +215,11 @@ sk_sp<SkImage> SkImage::MakeFromBitmap(const SkBitmap& bm) {
return SkMakeImageFromRasterBitmap(bm, kIfMutable_SkCopyPixelsMode);
}
-bool SkImage::asLegacyBitmap(SkBitmap* bitmap, LegacyBitmapMode mode) const {
- return as_IB(this)->onAsLegacyBitmap(bitmap, mode);
+bool SkImage::asLegacyBitmap(SkBitmap* bitmap, LegacyBitmapMode ) const {
+ return as_IB(this)->onAsLegacyBitmap(bitmap);
}
-bool SkImage_Base::onAsLegacyBitmap(SkBitmap* bitmap, LegacyBitmapMode mode) const {
+bool SkImage_Base::onAsLegacyBitmap(SkBitmap* bitmap) const {
// As the base-class, all we can do is make a copy (regardless of mode).
// Subclasses that want to be more optimal should override.
SkImageInfo info = this->onImageInfo().makeColorType(kN32_SkColorType).makeColorSpace(nullptr);
@@ -231,9 +231,7 @@ bool SkImage_Base::onAsLegacyBitmap(SkBitmap* bitmap, LegacyBitmapMode mode) con
return false;
}
- if (kRO_LegacyBitmapMode == mode) {
- bitmap->setImmutable();
- }
+ bitmap->setImmutable();
return true;
}
diff --git a/src/image/SkImage_Base.h b/src/image/SkImage_Base.h
index 9db69f31ae..903cd826be 100644
--- a/src/image/SkImage_Base.h
+++ b/src/image/SkImage_Base.h
@@ -71,7 +71,7 @@ public:
virtual SkData* onRefEncoded() const { return nullptr; }
- virtual bool onAsLegacyBitmap(SkBitmap*, LegacyBitmapMode) const;
+ virtual bool onAsLegacyBitmap(SkBitmap*) const;
// True for picture-backed and codec-backed
virtual bool onIsLazyGenerated() const { return false; }
diff --git a/src/image/SkImage_Raster.cpp b/src/image/SkImage_Raster.cpp
index 1e3d6fea16..a92b751140 100644
--- a/src/image/SkImage_Raster.cpp
+++ b/src/image/SkImage_Raster.cpp
@@ -97,7 +97,7 @@ public:
SkPixelRef* getPixelRef() const { return fBitmap.pixelRef(); }
- bool onAsLegacyBitmap(SkBitmap*, LegacyBitmapMode) const override;
+ bool onAsLegacyBitmap(SkBitmap*) const override;
SkImage_Raster(const SkBitmap& bm, bool bitmapMayBeMutable = false)
: INHERITED(bm.width(), bm.height(),
@@ -327,20 +327,18 @@ const SkPixelRef* SkBitmapImageGetPixelRef(const SkImage* image) {
return ((const SkImage_Raster*)image)->getPixelRef();
}
-bool SkImage_Raster::onAsLegacyBitmap(SkBitmap* bitmap, LegacyBitmapMode mode) const {
- if (kRO_LegacyBitmapMode == mode) {
- // When we're a snapshot from a surface, our bitmap may not be marked immutable
- // even though logically always we are, but in that case we can't physically share our
- // pixelref since the caller might call setImmutable() themselves
- // (thus changing our state).
- if (fBitmap.isImmutable()) {
- SkIPoint origin = fBitmap.pixelRefOrigin();
- bitmap->setInfo(fBitmap.info(), fBitmap.rowBytes());
- bitmap->setPixelRef(sk_ref_sp(fBitmap.pixelRef()), origin.x(), origin.y());
- return true;
- }
+bool SkImage_Raster::onAsLegacyBitmap(SkBitmap* bitmap) const {
+ // When we're a snapshot from a surface, our bitmap may not be marked immutable
+ // even though logically always we are, but in that case we can't physically share our
+ // pixelref since the caller might call setImmutable() themselves
+ // (thus changing our state).
+ if (fBitmap.isImmutable()) {
+ SkIPoint origin = fBitmap.pixelRefOrigin();
+ bitmap->setInfo(fBitmap.info(), fBitmap.rowBytes());
+ bitmap->setPixelRef(sk_ref_sp(fBitmap.pixelRef()), origin.x(), origin.y());
+ return true;
}
- return this->INHERITED::onAsLegacyBitmap(bitmap, mode);
+ return this->INHERITED::onAsLegacyBitmap(bitmap);
}
///////////////////////////////////////////////////////////////////////////////
diff --git a/src/xps/SkXPSDevice.cpp b/src/xps/SkXPSDevice.cpp
index d0dd2ea49f..9f1a9609c1 100644
--- a/src/xps/SkXPSDevice.cpp
+++ b/src/xps/SkXPSDevice.cpp
@@ -1048,7 +1048,7 @@ HRESULT SkXPSDevice::createXpsBrush(const SkPaint& skPaint,
SkMatrix outMatrix;
SkShader::TileMode xy[2];
SkImage* image = shader->isAImage(&outMatrix, xy);
- if (image && image->asLegacyBitmap(&outTexture, SkImage::kRO_LegacyBitmapMode)) {
+ if (image && image->asLegacyBitmap(&outTexture)) {
//TODO: outMatrix??
SkMatrix localMatrix = shader->getLocalMatrix();
if (parentTransform) {
diff --git a/tests/EncodeTest.cpp b/tests/EncodeTest.cpp
index 8d5db7ddcd..3c11663c98 100644
--- a/tests/EncodeTest.cpp
+++ b/tests/EncodeTest.cpp
@@ -165,9 +165,9 @@ DEF_TEST(Encode_JpegDownsample, r) {
REPORTER_ASSERT(r, data1->size() < data2->size());
SkBitmap bm0, bm1, bm2;
- SkImage::MakeFromEncoded(data0)->asLegacyBitmap(&bm0, SkImage::kRO_LegacyBitmapMode);
- SkImage::MakeFromEncoded(data1)->asLegacyBitmap(&bm1, SkImage::kRO_LegacyBitmapMode);
- SkImage::MakeFromEncoded(data2)->asLegacyBitmap(&bm2, SkImage::kRO_LegacyBitmapMode);
+ SkImage::MakeFromEncoded(data0)->asLegacyBitmap(&bm0);
+ SkImage::MakeFromEncoded(data1)->asLegacyBitmap(&bm1);
+ SkImage::MakeFromEncoded(data2)->asLegacyBitmap(&bm2);
REPORTER_ASSERT(r, almost_equals(bm0, bm1, 60));
REPORTER_ASSERT(r, almost_equals(bm1, bm2, 60));
}
@@ -279,9 +279,9 @@ DEF_TEST(Encode_PngOptions, r) {
REPORTER_ASSERT(r, data1->size() < data2->size());
SkBitmap bm0, bm1, bm2;
- SkImage::MakeFromEncoded(data0)->asLegacyBitmap(&bm0, SkImage::kRO_LegacyBitmapMode);
- SkImage::MakeFromEncoded(data1)->asLegacyBitmap(&bm1, SkImage::kRO_LegacyBitmapMode);
- SkImage::MakeFromEncoded(data2)->asLegacyBitmap(&bm2, SkImage::kRO_LegacyBitmapMode);
+ SkImage::MakeFromEncoded(data0)->asLegacyBitmap(&bm0);
+ SkImage::MakeFromEncoded(data1)->asLegacyBitmap(&bm1);
+ SkImage::MakeFromEncoded(data2)->asLegacyBitmap(&bm2);
REPORTER_ASSERT(r, almost_equals(bm0, bm1, 0));
REPORTER_ASSERT(r, almost_equals(bm0, bm2, 0));
}
@@ -330,10 +330,10 @@ DEF_TEST(Encode_WebpOptions, r) {
REPORTER_ASSERT(r, data2->size() > data3->size());
SkBitmap bm0, bm1, bm2, bm3;
- SkImage::MakeFromEncoded(data0)->asLegacyBitmap(&bm0, SkImage::kRO_LegacyBitmapMode);
- SkImage::MakeFromEncoded(data1)->asLegacyBitmap(&bm1, SkImage::kRO_LegacyBitmapMode);
- SkImage::MakeFromEncoded(data2)->asLegacyBitmap(&bm2, SkImage::kRO_LegacyBitmapMode);
- SkImage::MakeFromEncoded(data3)->asLegacyBitmap(&bm3, SkImage::kRO_LegacyBitmapMode);
+ SkImage::MakeFromEncoded(data0)->asLegacyBitmap(&bm0);
+ SkImage::MakeFromEncoded(data1)->asLegacyBitmap(&bm1);
+ SkImage::MakeFromEncoded(data2)->asLegacyBitmap(&bm2);
+ SkImage::MakeFromEncoded(data3)->asLegacyBitmap(&bm3);
REPORTER_ASSERT(r, almost_equals(bm0, bm1, 0));
REPORTER_ASSERT(r, almost_equals(bm0, bm2, 90));
REPORTER_ASSERT(r, almost_equals(bm2, bm3, 45));
diff --git a/tests/ImageTest.cpp b/tests/ImageTest.cpp
index b7b92a0280..700584e5af 100644
--- a/tests/ImageTest.cpp
+++ b/tests/ImageTest.cpp
@@ -689,14 +689,12 @@ DEF_GPUTEST_FOR_RENDERING_CONTEXTS(ImageReadPixels_Gpu, reporter, ctxInfo) {
#endif
static void check_legacy_bitmap(skiatest::Reporter* reporter, const SkImage* image,
- const SkBitmap& bitmap, SkImage::LegacyBitmapMode mode) {
+ const SkBitmap& bitmap) {
REPORTER_ASSERT(reporter, image->width() == bitmap.width());
REPORTER_ASSERT(reporter, image->height() == bitmap.height());
REPORTER_ASSERT(reporter, image->alphaType() == bitmap.alphaType());
- if (SkImage::kRO_LegacyBitmapMode == mode) {
- REPORTER_ASSERT(reporter, bitmap.isImmutable());
- }
+ REPORTER_ASSERT(reporter, bitmap.isImmutable());
REPORTER_ASSERT(reporter, bitmap.getPixels());
@@ -706,14 +704,14 @@ static void check_legacy_bitmap(skiatest::Reporter* reporter, const SkImage* ima
REPORTER_ASSERT(reporter, imageColor == *bitmap.getAddr32(0, 0));
}
-static void test_legacy_bitmap(skiatest::Reporter* reporter, const SkImage* image, SkImage::LegacyBitmapMode mode) {
+static void test_legacy_bitmap(skiatest::Reporter* reporter, const SkImage* image) {
if (!image) {
ERRORF(reporter, "Failed to create image.");
return;
}
SkBitmap bitmap;
- REPORTER_ASSERT(reporter, image->asLegacyBitmap(&bitmap, mode));
- check_legacy_bitmap(reporter, image, bitmap, mode);
+ REPORTER_ASSERT(reporter, image->asLegacyBitmap(&bitmap));
+ check_legacy_bitmap(reporter, image, bitmap);
// Test subsetting to exercise the rowBytes logic.
SkBitmap tmp;
@@ -723,41 +721,29 @@ static void test_legacy_bitmap(skiatest::Reporter* reporter, const SkImage* imag
REPORTER_ASSERT(reporter, subsetImage.get());
SkBitmap subsetBitmap;
- REPORTER_ASSERT(reporter, subsetImage->asLegacyBitmap(&subsetBitmap, mode));
- check_legacy_bitmap(reporter, subsetImage.get(), subsetBitmap, mode);
+ REPORTER_ASSERT(reporter, subsetImage->asLegacyBitmap(&subsetBitmap));
+ check_legacy_bitmap(reporter, subsetImage.get(), subsetBitmap);
}
DEF_TEST(ImageLegacyBitmap, reporter) {
- const SkImage::LegacyBitmapMode modes[] = {
- SkImage::kRO_LegacyBitmapMode,
- SkImage::kRW_LegacyBitmapMode,
- };
- for (auto& mode : modes) {
- sk_sp<SkImage> image(create_image());
- test_legacy_bitmap(reporter, image.get(), mode);
+ sk_sp<SkImage> image(create_image());
+ test_legacy_bitmap(reporter, image.get());
- image = create_data_image();
- test_legacy_bitmap(reporter, image.get(), mode);
+ image = create_data_image();
+ test_legacy_bitmap(reporter, image.get());
- RasterDataHolder dataHolder;
- image = create_rasterproc_image(&dataHolder);
- test_legacy_bitmap(reporter, image.get(), mode);
- image.reset();
- REPORTER_ASSERT(reporter, 1 == dataHolder.fReleaseCount);
+ RasterDataHolder dataHolder;
+ image = create_rasterproc_image(&dataHolder);
+ test_legacy_bitmap(reporter, image.get());
+ image.reset();
+ REPORTER_ASSERT(reporter, 1 == dataHolder.fReleaseCount);
- image = create_codec_image();
- test_legacy_bitmap(reporter, image.get(), mode);
- }
+ image = create_codec_image();
+ test_legacy_bitmap(reporter, image.get());
}
#if SK_SUPPORT_GPU
DEF_GPUTEST_FOR_RENDERING_CONTEXTS(ImageLegacyBitmap_Gpu, reporter, ctxInfo) {
- const SkImage::LegacyBitmapMode modes[] = {
- SkImage::kRO_LegacyBitmapMode,
- SkImage::kRW_LegacyBitmapMode,
- };
- for (auto& mode : modes) {
- sk_sp<SkImage> image(create_gpu_image(ctxInfo.grContext()));
- test_legacy_bitmap(reporter, image.get(), mode);
- }
+ sk_sp<SkImage> image(create_gpu_image(ctxInfo.grContext()));
+ test_legacy_bitmap(reporter, image.get());
}
#endif
@@ -1352,7 +1338,7 @@ DEF_TEST(Image_makeColorSpace, r) {
sk_sp<SkImage> srgbImage = SkImage::MakeFromBitmap(srgbBitmap);
sk_sp<SkImage> p3Image = srgbImage->makeColorSpace(p3, SkTransferFunctionBehavior::kIgnore);
SkBitmap p3Bitmap;
- bool success = p3Image->asLegacyBitmap(&p3Bitmap, SkImage::kRO_LegacyBitmapMode);
+ bool success = p3Image->asLegacyBitmap(&p3Bitmap);
REPORTER_ASSERT(r, success);
REPORTER_ASSERT(r, almost_equal(0x28, SkGetPackedR32(*p3Bitmap.getAddr32(0, 0))));
REPORTER_ASSERT(r, almost_equal(0x40, SkGetPackedG32(*p3Bitmap.getAddr32(0, 0))));
@@ -1361,7 +1347,7 @@ DEF_TEST(Image_makeColorSpace, r) {
sk_sp<SkImage> adobeImage = srgbImage->makeColorSpace(adobeGamut,
SkTransferFunctionBehavior::kIgnore);
SkBitmap adobeBitmap;
- success = adobeImage->asLegacyBitmap(&adobeBitmap, SkImage::kRO_LegacyBitmapMode);
+ success = adobeImage->asLegacyBitmap(&adobeBitmap);
REPORTER_ASSERT(r, success);
REPORTER_ASSERT(r, almost_equal(0x21, SkGetPackedR32(*adobeBitmap.getAddr32(0, 0))));
REPORTER_ASSERT(r, almost_equal(0x31, SkGetPackedG32(*adobeBitmap.getAddr32(0, 0))));
@@ -1369,7 +1355,7 @@ DEF_TEST(Image_makeColorSpace, r) {
srgbImage = GetResourceAsImage("images/1x1.png");
p3Image = srgbImage->makeColorSpace(p3, SkTransferFunctionBehavior::kIgnore);
- success = p3Image->asLegacyBitmap(&p3Bitmap, SkImage::kRO_LegacyBitmapMode);
+ success = p3Image->asLegacyBitmap(&p3Bitmap);
REPORTER_ASSERT(r, success);
REPORTER_ASSERT(r, almost_equal(0x8B, SkGetPackedR32(*p3Bitmap.getAddr32(0, 0))));
REPORTER_ASSERT(r, almost_equal(0x82, SkGetPackedG32(*p3Bitmap.getAddr32(0, 0))));
diff --git a/tests/SurfaceTest.cpp b/tests/SurfaceTest.cpp
index de1cd9a984..a598c1ce0a 100644
--- a/tests/SurfaceTest.cpp
+++ b/tests/SurfaceTest.cpp
@@ -1042,7 +1042,7 @@ static void test_overdraw_surface(skiatest::Reporter* r, SkSurface* surface) {
sk_sp<SkImage> image = surface->makeImageSnapshot();
SkBitmap bitmap;
- image->asLegacyBitmap(&bitmap, SkImage::kRO_LegacyBitmapMode);
+ image->asLegacyBitmap(&bitmap);
for (int y = 0; y < 10; y++) {
for (int x = 0; x < 10; x++) {
REPORTER_ASSERT(r, 1 == SkGetPackedA32(*bitmap.getAddr32(x, y)));
diff --git a/tools/debugger/SkDrawCommand.cpp b/tools/debugger/SkDrawCommand.cpp
index c1f06773d3..5766689103 100644
--- a/tools/debugger/SkDrawCommand.cpp
+++ b/tools/debugger/SkDrawCommand.cpp
@@ -922,7 +922,7 @@ static SkBitmap* load_bitmap(const Json::Value& jsonBitmap, UrlDataManager& urlD
std::unique_ptr<SkBitmap> bitmap(new SkBitmap());
if (nullptr != image) {
- if (!image->asLegacyBitmap(bitmap.get(), SkImage::kRW_LegacyBitmapMode)) {
+ if (!image->asLegacyBitmap(bitmap.get())) {
SkDebugf("image decode failed\n");
return nullptr;
}
diff --git a/tools/fiddle/fiddle_main.cpp b/tools/fiddle/fiddle_main.cpp
index 684bc2ae48..9ade250b0a 100644
--- a/tools/fiddle/fiddle_main.cpp
+++ b/tools/fiddle/fiddle_main.cpp
@@ -265,7 +265,7 @@ int main(int argc, char** argv) {
perror("Unable to decode the source image.");
return 1;
}
- SkAssertResult(image->asLegacyBitmap(&source, SkImage::kRO_LegacyBitmapMode));
+ SkAssertResult(image->asLegacyBitmap(&source));
}
}
sk_sp<SkData> rasterData, gpuData, pdfData, skpData;
diff --git a/tools/ok_vias.cpp b/tools/ok_vias.cpp
index c1f8d9365e..96e16f02b1 100644
--- a/tools/ok_vias.cpp
+++ b/tools/ok_vias.cpp
@@ -138,7 +138,7 @@ struct Png : Dst {
}
SkBitmap bm;
- if (!target->image()->asLegacyBitmap(&bm, SkImage::kRO_LegacyBitmapMode)) {
+ if (!target->image()->asLegacyBitmap(&bm)) {
return Status::Failed;
}