aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/image/SkImage.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/image/SkImage.cpp')
-rw-r--r--src/image/SkImage.cpp15
1 files changed, 11 insertions, 4 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));
}
//////////////////////////////////////////////////////////////////////////////////////