diff options
author | 2016-07-15 06:59:48 -0700 | |
---|---|---|
committer | 2016-07-15 06:59:48 -0700 | |
commit | 428036621e1667b504051872869ac38cf6fac9c8 (patch) | |
tree | 95859bcb00a66b47508925ee461b8293e156f5cb /src/gpu | |
parent | 6e21efd842f42eedcbc4ed08f833682fbdae6d9f (diff) |
Add getColorSpace to GrTextureProducer
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2150113002
Review-Url: https://codereview.chromium.org/2150113002
Diffstat (limited to 'src/gpu')
-rw-r--r-- | src/gpu/GrImageIDTextureAdjuster.cpp | 16 | ||||
-rw-r--r-- | src/gpu/GrImageIDTextureAdjuster.h | 10 | ||||
-rw-r--r-- | src/gpu/GrTextureParamsAdjuster.h | 2 |
3 files changed, 28 insertions, 0 deletions
diff --git a/src/gpu/GrImageIDTextureAdjuster.cpp b/src/gpu/GrImageIDTextureAdjuster.cpp index 4ff3ed5d95..4b57757da6 100644 --- a/src/gpu/GrImageIDTextureAdjuster.cpp +++ b/src/gpu/GrImageIDTextureAdjuster.cpp @@ -41,6 +41,10 @@ void GrBitmapTextureAdjuster::didCacheCopy(const GrUniqueKey& copyKey) { GrInstallBitmapUniqueKeyInvalidator(copyKey, fBmp->pixelRef()); } +SkColorSpace* GrBitmapTextureAdjuster::getColorSpace() { + return fBmp->colorSpace(); +} + ////////////////////////////////////////////////////////////////////////////// // SkImage's don't have a way of communicating whether they're alpha-only. So we fallback to @@ -67,6 +71,10 @@ void GrImageTextureAdjuster::didCacheCopy(const GrUniqueKey& copyKey) { // We don't currently have a mechanism for notifications on Images! } +SkColorSpace* GrImageTextureAdjuster::getColorSpace() { + return fImageBase->onImageInfo().colorSpace(); +} + ////////////////////////////////////////////////////////////////////////////// GrBitmapTextureMaker::GrBitmapTextureMaker(GrContext* context, const SkBitmap& bitmap) @@ -114,6 +122,10 @@ void GrBitmapTextureMaker::didCacheCopy(const GrUniqueKey& copyKey) { GrInstallBitmapUniqueKeyInvalidator(copyKey, fBitmap.pixelRef()); } +SkColorSpace* GrBitmapTextureMaker::getColorSpace() { + return fBitmap.colorSpace(); +} + ////////////////////////////////////////////////////////////////////////////// static bool cacher_is_alpha_only(const SkImageCacherator& cacher) { return kAlpha_8_SkColorType == cacher.info().colorType(); @@ -148,3 +160,7 @@ void GrImageTextureMaker::didCacheCopy(const GrUniqueKey& copyKey) { as_IB(fClient)->notifyAddedToCache(); } } + +SkColorSpace* GrImageTextureMaker::getColorSpace() { + return fCacher->info().colorSpace(); +} diff --git a/src/gpu/GrImageIDTextureAdjuster.h b/src/gpu/GrImageIDTextureAdjuster.h index d516fc592c..c32bdb18a0 100644 --- a/src/gpu/GrImageIDTextureAdjuster.h +++ b/src/gpu/GrImageIDTextureAdjuster.h @@ -21,6 +21,9 @@ class GrBitmapTextureAdjuster : public GrTextureAdjuster { public: explicit GrBitmapTextureAdjuster(const SkBitmap* bmp); +protected: + SkColorSpace* getColorSpace() override; + private: void makeCopyKey(const CopyParams& params, GrUniqueKey* copyKey) override; @@ -37,6 +40,9 @@ class GrImageTextureAdjuster : public GrTextureAdjuster { public: explicit GrImageTextureAdjuster(const SkImage_Base* img); +protected: + SkColorSpace* getColorSpace() override; + private: void makeCopyKey(const CopyParams& params, GrUniqueKey* copyKey) override; @@ -61,6 +67,8 @@ protected: void didCacheCopy(const GrUniqueKey& copyKey) override; + SkColorSpace* getColorSpace() override; + private: const SkBitmap fBitmap; GrUniqueKey fOriginalKey; @@ -84,6 +92,8 @@ protected: void makeCopyKey(const CopyParams& stretch, GrUniqueKey* paramsCopyKey) override; void didCacheCopy(const GrUniqueKey& copyKey) override; + SkColorSpace* getColorSpace() override; + private: SkImageCacherator* fCacher; const SkImage* fClient; diff --git a/src/gpu/GrTextureParamsAdjuster.h b/src/gpu/GrTextureParamsAdjuster.h index 08d71c4563..7513eb4d2f 100644 --- a/src/gpu/GrTextureParamsAdjuster.h +++ b/src/gpu/GrTextureParamsAdjuster.h @@ -108,6 +108,8 @@ protected: */ virtual void didCacheCopy(const GrUniqueKey& copyKey) = 0; + virtual SkColorSpace* getColorSpace() = 0; + private: const int fWidth; const int fHeight; |