diff options
author | brianosman <brianosman@google.com> | 2016-06-16 13:03:24 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-06-16 13:03:24 -0700 |
commit | b109b8c5ec40a7dd85a0a2951a1f98fa63b805aa (patch) | |
tree | fe94e12159f2b7b07ed9ed23316fade5b0ff8d37 /include | |
parent | 8811e40850ac3310c17fe8cdaffe72817a5e317d (diff) |
Lots of progress on switching to SkColorSpace rather than SkColorProfileType
Fixed a bunch of code in Ganesh, as well as usage of SkColorProfileType in most of our tools (DM, SampleApp, Viewer, nanobench, skiaserve, HelloWorld).
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2069173002
Committed: https://skia.googlesource.com/skia/+/6a61a875467646f8dbc37cfecf49e12d1f475170
Review-Url: https://codereview.chromium.org/2069173002
Diffstat (limited to 'include')
-rw-r--r-- | include/core/SkBitmap.h | 1 | ||||
-rw-r--r-- | include/core/SkImageInfo.h | 8 | ||||
-rw-r--r-- | include/core/SkPixelRef.h | 2 | ||||
-rw-r--r-- | include/gpu/SkGr.h | 5 | ||||
-rw-r--r-- | include/gpu/SkGrPixelRef.h | 3 | ||||
-rw-r--r-- | include/views/SkWindow.h | 2 |
6 files changed, 12 insertions, 9 deletions
diff --git a/include/core/SkBitmap.h b/include/core/SkBitmap.h index 664686619f..b28eca817e 100644 --- a/include/core/SkBitmap.h +++ b/include/core/SkBitmap.h @@ -85,6 +85,7 @@ public: int height() const { return fInfo.height(); } SkColorType colorType() const { return fInfo.colorType(); } SkAlphaType alphaType() const { return fInfo.alphaType(); } + SkColorSpace* colorSpace() const { return fInfo.colorSpace(); } SkColorProfileType profileType() const { return fInfo.profileType(); } /** diff --git a/include/core/SkImageInfo.h b/include/core/SkImageInfo.h index c0e0be13f9..f7a619f9ea 100644 --- a/include/core/SkImageInfo.h +++ b/include/core/SkImageInfo.h @@ -379,12 +379,14 @@ private: /////////////////////////////////////////////////////////////////////////////// -static inline bool SkColorAndProfileAreGammaCorrect(SkColorType ct, SkColorProfileType pt) { - return kSRGB_SkColorProfileType == pt || kRGBA_F16_SkColorType == ct; +static inline bool SkColorAndColorSpaceAreGammaCorrect(SkColorType ct, SkColorSpace* cs) { + // Anything with a color-space attached is gamma-correct, as is F16. + // To get legacy behavior, you need to ask for non-F16, with a nullptr color space. + return (cs != nullptr) || kRGBA_F16_SkColorType == ct; } static inline bool SkImageInfoIsGammaCorrect(const SkImageInfo& info) { - return SkColorAndProfileAreGammaCorrect(info.colorType(), info.profileType()); + return SkColorAndColorSpaceAreGammaCorrect(info.colorType(), info.colorSpace()); } #endif diff --git a/include/core/SkPixelRef.h b/include/core/SkPixelRef.h index 90e0de540d..da85863bdb 100644 --- a/include/core/SkPixelRef.h +++ b/include/core/SkPixelRef.h @@ -248,7 +248,7 @@ public: * not be created with the given config), or this PixelRef does not support deep * copies. */ - virtual SkPixelRef* deepCopy(SkColorType, SkColorProfileType, const SkIRect* /*subset*/) { + virtual SkPixelRef* deepCopy(SkColorType, SkColorSpace*, const SkIRect* /*subset*/) { return NULL; } diff --git a/include/gpu/SkGr.h b/include/gpu/SkGr.h index edfcd6d813..c5ba34403f 100644 --- a/include/gpu/SkGr.h +++ b/include/gpu/SkGr.h @@ -72,10 +72,11 @@ GrTexture* GrRefCachedBitmapTexture(GrContext*, const SkBitmap&, const GrTexture SkSourceGammaTreatment); // TODO: Move SkImageInfo2GrPixelConfig to SkGrPriv.h (requires cleanup to SkWindow its subclasses). -GrPixelConfig SkImageInfo2GrPixelConfig(SkColorType, SkAlphaType, SkColorProfileType, const GrCaps&); +GrPixelConfig SkImageInfo2GrPixelConfig(SkColorType, SkAlphaType, const SkColorSpace*, + const GrCaps&); static inline GrPixelConfig SkImageInfo2GrPixelConfig(const SkImageInfo& info, const GrCaps& caps) { - return SkImageInfo2GrPixelConfig(info.colorType(), info.alphaType(), info.profileType(), caps); + return SkImageInfo2GrPixelConfig(info.colorType(), info.alphaType(), info.colorSpace(), caps); } GrTextureParams::FilterMode GrSkFilterQualityToGrFilterMode(SkFilterQuality paintFilterQuality, diff --git a/include/gpu/SkGrPixelRef.h b/include/gpu/SkGrPixelRef.h index b4dbd9d73f..2bbe48fa09 100644 --- a/include/gpu/SkGrPixelRef.h +++ b/include/gpu/SkGrPixelRef.h @@ -50,8 +50,7 @@ public: protected: // overrides from SkPixelRef bool onReadPixels(SkBitmap* dst, SkColorType, const SkIRect* subset) override; - SkPixelRef* deepCopy(SkColorType, SkColorProfileType, - const SkIRect* subset) override; + SkPixelRef* deepCopy(SkColorType, SkColorSpace*, const SkIRect* subset) override; void onNotifyPixelsChanged() override; private: diff --git a/include/views/SkWindow.h b/include/views/SkWindow.h index 341046aacc..50774849a6 100644 --- a/include/views/SkWindow.h +++ b/include/views/SkWindow.h @@ -52,7 +52,7 @@ public: void resize(int width, int height); void resize(const SkImageInfo&); - void setColorType(SkColorType, SkColorProfileType); + void setColorType(SkColorType, sk_sp<SkColorSpace>); bool isDirty() const { return !fDirtyRgn.isEmpty(); } bool update(SkIRect* updateArea); |