diff options
author | msarett <msarett@google.com> | 2016-06-16 05:33:31 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-06-16 05:33:31 -0700 |
commit | ded0f26a93a115fdb8f2eb99841b85cc16baf400 (patch) | |
tree | cf6b35d57a83dc3e7ba757e76a8624de21a01590 | |
parent | d6f8034b886d59a3c722bf3932195143f2bf5eb8 (diff) |
Keep SkColorSpace and SkColorProfileType in sync
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2068743003
Committed: https://skia.googlesource.com/skia/+/04d35bd80dde7cace866781037cbbdcab14ab683
Review-Url: https://codereview.chromium.org/2068743003
-rw-r--r-- | include/core/SkColorSpace.h | 2 | ||||
-rw-r--r-- | include/core/SkImageInfo.h | 12 | ||||
-rw-r--r-- | tests/ImageIsOpaqueTest.cpp | 5 |
3 files changed, 14 insertions, 5 deletions
diff --git a/include/core/SkColorSpace.h b/include/core/SkColorSpace.h index f942780b7c..0b3b9768ec 100644 --- a/include/core/SkColorSpace.h +++ b/include/core/SkColorSpace.h @@ -11,7 +11,7 @@ #include "SkMatrix44.h" #include "SkRefCnt.h" -class SkColorSpace : public SkRefCnt { +class SK_API SkColorSpace : public SkRefCnt { public: /** diff --git a/include/core/SkImageInfo.h b/include/core/SkImageInfo.h index 2be04ff5a7..c0e0be13f9 100644 --- a/include/core/SkImageInfo.h +++ b/include/core/SkImageInfo.h @@ -198,7 +198,9 @@ public: static SkImageInfo Make(int width, int height, SkColorType ct, SkAlphaType at, SkColorProfileType pt = kLinear_SkColorProfileType) { - return SkImageInfo(width, height, ct, at, pt, nullptr); + sk_sp<SkColorSpace> cs = (kSRGB_SkColorProfileType == pt) ? + SkColorSpace::NewNamed(SkColorSpace::kSRGB_Named) : nullptr; + return SkImageInfo(width, height, ct, at, pt, cs); } static SkImageInfo Make(int width, int height, SkColorType ct, SkAlphaType at, @@ -209,7 +211,9 @@ public: */ static SkImageInfo MakeN32(int width, int height, SkAlphaType at, SkColorProfileType pt = kLinear_SkColorProfileType) { - return SkImageInfo(width, height, kN32_SkColorType, at, pt, nullptr); + sk_sp<SkColorSpace> cs = (kSRGB_SkColorProfileType == pt) ? + SkColorSpace::NewNamed(SkColorSpace::kSRGB_Named) : nullptr; + return SkImageInfo(width, height, kN32_SkColorType, at, pt, cs); } /** @@ -217,7 +221,9 @@ public: */ static SkImageInfo MakeN32Premul(int width, int height, SkColorProfileType pt = kLinear_SkColorProfileType) { - return SkImageInfo(width, height, kN32_SkColorType, kPremul_SkAlphaType, pt, nullptr); + sk_sp<SkColorSpace> cs = (kSRGB_SkColorProfileType == pt) ? + SkColorSpace::NewNamed(SkColorSpace::kSRGB_Named) : nullptr; + return SkImageInfo(width, height, kN32_SkColorType, kPremul_SkAlphaType, pt, cs); } /** diff --git a/tests/ImageIsOpaqueTest.cpp b/tests/ImageIsOpaqueTest.cpp index 52d3b97c52..51229bfce3 100644 --- a/tests/ImageIsOpaqueTest.cpp +++ b/tests/ImageIsOpaqueTest.cpp @@ -31,7 +31,10 @@ static void test_flatten(skiatest::Reporter* reporter, const SkImageInfo& info) info2.unflatten(rb); REPORTER_ASSERT(reporter, rb.offset() == wb.bytesWritten()); - REPORTER_ASSERT(reporter, info == info2); + + // FIXME (msarett): + // Support flatten/unflatten of SkColorSpace objects. + REPORTER_ASSERT(reporter, info.makeColorSpace(nullptr) == info2.makeColorSpace(nullptr)); } DEF_TEST(ImageInfo_flattening, reporter) { |