diff options
Diffstat (limited to 'src/image/SkImage_Raster.cpp')
-rw-r--r-- | src/image/SkImage_Raster.cpp | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/image/SkImage_Raster.cpp b/src/image/SkImage_Raster.cpp index a2b12e41ce..0875d615b0 100644 --- a/src/image/SkImage_Raster.cpp +++ b/src/image/SkImage_Raster.cpp @@ -88,9 +88,9 @@ public: const SkBitmap* onPeekBitmap() const override { return &fBitmap; } SkData* onRefEncoded(GrContext*) const override; - bool getROPixels(SkBitmap*, CachingHint) const override; + bool getROPixels(SkBitmap*, SkDestinationSurfaceColorMode, CachingHint) const override; GrTexture* asTextureRef(GrContext*, const GrSamplerParams&, - SkDestinationSurfaceColorMode) const override; + SkDestinationSurfaceColorMode, sk_sp<SkColorSpace>*) const override; sk_sp<SkImage> onMakeSubset(const SkIRect&) const override; // exposed for SkSurface_Raster via SkNewImageFromPixelRef @@ -192,18 +192,23 @@ SkData* SkImage_Raster::onRefEncoded(GrContext*) const { return nullptr; } -bool SkImage_Raster::getROPixels(SkBitmap* dst, CachingHint) const { +bool SkImage_Raster::getROPixels(SkBitmap* dst, SkDestinationSurfaceColorMode, CachingHint) const { *dst = fBitmap; return true; } GrTexture* SkImage_Raster::asTextureRef(GrContext* ctx, const GrSamplerParams& params, - SkDestinationSurfaceColorMode colorMode) const { + SkDestinationSurfaceColorMode colorMode, + sk_sp<SkColorSpace>* texColorSpace) const { #if SK_SUPPORT_GPU if (!ctx) { return nullptr; } + if (texColorSpace) { + *texColorSpace = sk_ref_sp(fBitmap.colorSpace()); + } + uint32_t uniqueID; sk_sp<GrTexture> tex = this->refPinnedTexture(&uniqueID); if (tex) { |