diff options
Diffstat (limited to 'src/image')
-rw-r--r-- | src/image/SkImage.cpp | 15 | ||||
-rw-r--r-- | src/image/SkImage_Base.h | 9 |
2 files changed, 12 insertions, 12 deletions
diff --git a/src/image/SkImage.cpp b/src/image/SkImage.cpp index e45bbd7cf3..0847eb1c57 100644 --- a/src/image/SkImage.cpp +++ b/src/image/SkImage.cpp @@ -302,7 +302,13 @@ bool SkImage::isAlphaOnly() const { return as_IB(this)->onImageInfo().colorType() == kAlpha_8_SkColorType; } -sk_sp<SkImage> SkImage_Base::makeColorSpace(sk_sp<SkColorSpace> target) const { +sk_sp<SkImage> SkImage::makeColorSpace(sk_sp<SkColorSpace> target, + SkTransferFunctionBehavior premulBehavior) const { + if (SkTransferFunctionBehavior::kRespect == premulBehavior) { + // TODO (msarett, brianosman): Implement this. + return nullptr; + } + SkColorSpaceTransferFn fn; if (!target || !target->isNumericalTransferFn(&fn)) { return nullptr; @@ -313,11 +319,12 @@ sk_sp<SkImage> SkImage_Base::makeColorSpace(sk_sp<SkColorSpace> target) const { // (2) The color type is kAlpha8. if ((!this->colorSpace() && target->isSRGB()) || SkColorSpace::Equals(this->colorSpace(), target.get()) || - kAlpha_8_SkColorType == this->onImageInfo().colorType()) { - return sk_ref_sp(const_cast<SkImage_Base*>(this)); + kAlpha_8_SkColorType == as_IB(this)->onImageInfo().colorType()) { + return sk_ref_sp(const_cast<SkImage*>(this)); } - return this->onMakeColorSpace(std::move(target)); + // TODO: We might consider making this a deferred conversion? + return as_IB(this)->onMakeColorSpace(std::move(target)); } ////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/image/SkImage_Base.h b/src/image/SkImage_Base.h index 5bdf9403e5..062d785679 100644 --- a/src/image/SkImage_Base.h +++ b/src/image/SkImage_Base.h @@ -86,17 +86,10 @@ public: fAddedToCache.store(true); } - // Transforms image into the input color space. - sk_sp<SkImage> makeColorSpace(sk_sp<SkColorSpace> target) const; - virtual bool onPinAsTexture(GrContext*) const { return false; } virtual void onUnpinAsTexture(GrContext*) const {} -protected: - virtual sk_sp<SkImage> onMakeColorSpace(sk_sp<SkColorSpace>) const { - // TODO: Make this pure virtual. - return sk_ref_sp(const_cast<SkImage_Base*>(this)); - } + virtual sk_sp<SkImage> onMakeColorSpace(sk_sp<SkColorSpace>) const = 0; private: // Set true by caches when they cache content that's derived from the current pixels. |