diff options
-rw-r--r-- | gm/crosscontextimage.cpp | 2 | ||||
-rw-r--r-- | gm/drawbitmaprect.cpp | 2 | ||||
-rw-r--r-- | include/core/SkImage.h | 8 | ||||
-rw-r--r-- | src/image/SkImage.cpp | 10 | ||||
-rw-r--r-- | src/image/SkImage_Base.h | 2 | ||||
-rw-r--r-- | src/image/SkImage_Raster.cpp | 26 | ||||
-rw-r--r-- | src/xps/SkXPSDevice.cpp | 2 | ||||
-rw-r--r-- | tests/EncodeTest.cpp | 20 | ||||
-rw-r--r-- | tests/ImageTest.cpp | 60 | ||||
-rw-r--r-- | tests/SurfaceTest.cpp | 2 | ||||
-rw-r--r-- | tools/debugger/SkDrawCommand.cpp | 2 | ||||
-rw-r--r-- | tools/fiddle/fiddle_main.cpp | 2 | ||||
-rw-r--r-- | tools/ok_vias.cpp | 2 |
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; } |