aboutsummaryrefslogtreecommitdiffhomepage
path: root/include
diff options
context:
space:
mode:
authorGravatar brianosman <brianosman@google.com>2016-06-16 13:03:24 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2016-06-16 13:03:24 -0700
commitb109b8c5ec40a7dd85a0a2951a1f98fa63b805aa (patch)
treefe94e12159f2b7b07ed9ed23316fade5b0ff8d37 /include
parent8811e40850ac3310c17fe8cdaffe72817a5e317d (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.h1
-rw-r--r--include/core/SkImageInfo.h8
-rw-r--r--include/core/SkPixelRef.h2
-rw-r--r--include/gpu/SkGr.h5
-rw-r--r--include/gpu/SkGrPixelRef.h3
-rw-r--r--include/views/SkWindow.h2
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);