diff options
Diffstat (limited to 'src/image')
-rw-r--r-- | src/image/SkImage.cpp | 13 | ||||
-rw-r--r-- | src/image/SkImage_Base.h | 12 | ||||
-rw-r--r-- | src/image/SkImage_Generator.cpp | 18 | ||||
-rw-r--r-- | src/image/SkImage_Raster.cpp | 20 |
4 files changed, 4 insertions, 59 deletions
diff --git a/src/image/SkImage.cpp b/src/image/SkImage.cpp index 2513e844d1..d76276be1f 100644 --- a/src/image/SkImage.cpp +++ b/src/image/SkImage.cpp @@ -312,19 +312,6 @@ bool SkImage::isAlphaOnly() const { return as_IB(this)->onImageInfo().colorType() == kAlpha_8_SkColorType; } -sk_sp<SkImage> SkImage_Base::makeColorSpace(sk_sp<SkColorSpace> target) const { - SkColorSpaceTransferFn fn; - if (!target || !target->isNumericalTransferFn(&fn)) { - return nullptr; - } - - if (SkColorSpace::Equals(this->colorSpace(), target.get())) { - return sk_ref_sp(const_cast<SkImage_Base*>(this)); - } - - return this->onMakeColorSpace(std::move(target)); -} - ////////////////////////////////////////////////////////////////////////////////////// #if !SK_SUPPORT_GPU diff --git a/src/image/SkImage_Base.h b/src/image/SkImage_Base.h index 284af0d1a6..e08d7610f7 100644 --- a/src/image/SkImage_Base.h +++ b/src/image/SkImage_Base.h @@ -81,18 +81,14 @@ public: fAddedToCache.store(true); } - // Transforms image into the input color space. - sk_sp<SkImage> makeColorSpace(sk_sp<SkColorSpace> target) const; + virtual sk_sp<SkImage> onMakeColorSpace(sk_sp<SkColorSpace>) { + // TODO: Implement this. + return sk_ref_sp(this); + } 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)); - } - private: // Set true by caches when they cache content that's derived from the current pixels. mutable SkAtomic<bool> fAddedToCache; diff --git a/src/image/SkImage_Generator.cpp b/src/image/SkImage_Generator.cpp index fb80767999..ae3f9f83f4 100644 --- a/src/image/SkImage_Generator.cpp +++ b/src/image/SkImage_Generator.cpp @@ -40,7 +40,6 @@ public: GrTexture* asTextureRef(GrContext*, const GrSamplerParams&, SkColorSpace*, sk_sp<SkColorSpace>*, SkScalar scaleAdjust[2]) const override; bool onIsLazyGenerated() const override { return true; } - sk_sp<SkImage> onMakeColorSpace(sk_sp<SkColorSpace>) const override; private: mutable SkImageCacherator fCache; @@ -116,23 +115,6 @@ sk_sp<SkImage> SkImage_Generator::onMakeSubset(const SkIRect& subset) const { return validator ? sk_sp<SkImage>(new SkImage_Generator(&validator)) : nullptr; } -sk_sp<SkImage> SkImage_Generator::onMakeColorSpace(sk_sp<SkColorSpace> target) const { - SkBitmap dst; - SkImageInfo dstInfo = fCache.info().makeColorSpace(target); - if (kIndex_8_SkColorType == dstInfo.colorType() || - kGray_8_SkColorType == dstInfo.colorType()) { - dstInfo = dstInfo.makeColorType(kN32_SkColorType); - } - dst.allocPixels(dstInfo); - - if (!fCache.directGeneratePixels(dstInfo, dst.getPixels(), dst.rowBytes(), 0, 0)) { - return nullptr; - } - - dst.setImmutable(); - return SkImage::MakeFromBitmap(dst); -} - sk_sp<SkImage> SkImage::MakeFromGenerator(std::unique_ptr<SkImageGenerator> generator, const SkIRect* subset) { SkImageCacherator::Validator validator( diff --git a/src/image/SkImage_Raster.cpp b/src/image/SkImage_Raster.cpp index 782093e27b..220cc01b11 100644 --- a/src/image/SkImage_Raster.cpp +++ b/src/image/SkImage_Raster.cpp @@ -120,8 +120,6 @@ public: return fBitmap.pixelRef() && fBitmap.pixelRef()->isLazyGenerated(); } - sk_sp<SkImage> onMakeColorSpace(sk_sp<SkColorSpace>) const override; - #if SK_SUPPORT_GPU sk_sp<GrTexture> refPinnedTexture(uint32_t* uniqueID) const override; bool onPinAsTexture(GrContext*) const override; @@ -367,21 +365,3 @@ bool SkImage_Raster::onAsLegacyBitmap(SkBitmap* bitmap, LegacyBitmapMode mode) c } return this->INHERITED::onAsLegacyBitmap(bitmap, mode); } - -sk_sp<SkImage> SkImage_Raster::onMakeColorSpace(sk_sp<SkColorSpace> target) const { - SkBitmap dst; - SkImageInfo dstInfo = fBitmap.info().makeColorSpace(target); - if (kIndex_8_SkColorType == dstInfo.colorType() || - kGray_8_SkColorType == dstInfo.colorType()) - { - dstInfo = dstInfo.makeColorType(kN32_SkColorType); - } - dst.allocPixels(dstInfo); - - SkPixmap src; - SkAssertResult(this->onPeekPixels(&src)); - - SkAssertResult(dst.writePixels(src)); - dst.setImmutable(); - return SkImage::MakeFromBitmap(dst); -} |