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 <brianosman@google.com>
Reviewed-by: Matt Sarett <msarett@google.com>
diff --git a/tests/ImageGeneratorTest.cpp b/tests/ImageGeneratorTest.cpp
index bc9dca4..5cfd410 100644
--- a/tests/ImageGeneratorTest.cpp
+++ b/tests/ImageGeneratorTest.cpp
@@ -113,7 +113,7 @@
 #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 @@
                                                             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<SkColorSpace> srgb = SkColorSpace::MakeSRGB();
     sk_sp<SkImage> ia = SkMakeImageInColorSpace(a, srgb, 0);
     sk_sp<SkImage> ib = SkMakeImageInColorSpace(b, srgb, b.getGenerationID());
     sk_sp<SkImage> ic = SkMakeImageInColorSpace(c, srgb, c.getGenerationID());
     sk_sp<SkImage> id = SkMakeImageInColorSpace(d, srgb, 0);
+    sk_sp<SkImage> 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 @@
 
     // 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());
 }