aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/image
diff options
context:
space:
mode:
Diffstat (limited to 'src/image')
-rw-r--r--src/image/SkImage.cpp15
-rw-r--r--src/image/SkImage_Base.h9
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.