From e53120754b358e950ff417d864f80004697b5a91 Mon Sep 17 00:00:00 2001 From: Brian Osman Date: Tue, 20 Jun 2017 09:35:51 -0400 Subject: Add SkCopyPixelsMode argument to SkMakeImageInColorSpace Deferred rendering in Android will need the ability to use this in kIfMutable mode. Bug: skia: Change-Id: I5194f2c50f9d17351fdab49373ca9bc1e80cf586 Reviewed-on: https://skia-review.googlesource.com/20157 Commit-Queue: Brian Osman Reviewed-by: Matt Sarett --- tests/ImageGeneratorTest.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'tests/ImageGeneratorTest.cpp') diff --git a/tests/ImageGeneratorTest.cpp b/tests/ImageGeneratorTest.cpp index bc9dca4b18..5cfd410ad0 100644 --- a/tests/ImageGeneratorTest.cpp +++ b/tests/ImageGeneratorTest.cpp @@ -113,7 +113,7 @@ DEF_TEST(PictureImageGenerator, reporter) { #include "SkImagePriv.h" DEF_TEST(ColorXformGenerator, r) { - SkBitmap a, b, c, d; + SkBitmap a, b, c, d, e; SkImageInfo info = SkImageInfo::MakeS32(1, 1, kPremul_SkAlphaType); a.allocPixels(info); b.allocPixels(info.makeColorSpace(nullptr)); @@ -121,16 +121,20 @@ DEF_TEST(ColorXformGenerator, r) { SkColorSpace::kRec2020_Gamut))); d.allocPixels(info.makeColorSpace(SkColorSpace::MakeRGB(SkColorSpace::kSRGB_RenderTargetGamma, SkColorSpace::kAdobeRGB_Gamut))); + e.allocPixels(info); a.eraseColor(0); b.eraseColor(1); c.eraseColor(2); d.eraseColor(3); + e.eraseColor(4); sk_sp srgb = SkColorSpace::MakeSRGB(); sk_sp ia = SkMakeImageInColorSpace(a, srgb, 0); sk_sp ib = SkMakeImageInColorSpace(b, srgb, b.getGenerationID()); sk_sp ic = SkMakeImageInColorSpace(c, srgb, c.getGenerationID()); sk_sp id = SkMakeImageInColorSpace(d, srgb, 0); + sk_sp ie = SkMakeImageInColorSpace(e, srgb, e.getGenerationID(), + kAlways_SkCopyPixelsMode); // Equal because sRGB->sRGB is a no-op. REPORTER_ASSERT(r, ia->uniqueID() == a.getGenerationID()); @@ -145,4 +149,7 @@ DEF_TEST(ColorXformGenerator, r) { // Not equal because sRGB->Adobe is not a no-op and we do not pass an explicit id. REPORTER_ASSERT(r, id->uniqueID() != d.getGenerationID()); + + // Equal because we pass in an explicit id. Forcing a copy, but still want the id respected. + REPORTER_ASSERT(r, ie->uniqueID() == e.getGenerationID()); } -- cgit v1.2.3