Index: src/gpu/SkGpuDevice.cpp |
diff --git a/src/gpu/SkGpuDevice.cpp b/src/gpu/SkGpuDevice.cpp |
index 8ce4b30ff70a160a58abe7dce0cbe798a25a61da..f17f73d70c69add0bad1637de05330f05b01bc32 100644 |
--- a/src/gpu/SkGpuDevice.cpp |
+++ b/src/gpu/SkGpuDevice.cpp |
@@ -1256,7 +1256,8 @@ void SkGpuDevice::drawSprite(const SkDraw& draw, const SkBitmap& bitmap, |
sk_sp<SkSpecialImage> srcImg(SkSpecialImage::MakeFromGpu(srcRect, |
bitmap.getGenerationID(), |
- std::move(texture), |
+ std::move(texture), |
+ sk_ref_sp(bitmap.colorSpace()), |
&this->surfaceProps())); |
this->drawSpecial(draw, srcImg.get(), left, top, paint); |
@@ -1422,7 +1423,8 @@ sk_sp<SkSpecialImage> SkGpuDevice::makeSpecial(const SkBitmap& bitmap) { |
return SkSpecialImage::MakeFromGpu(bitmap.bounds(), |
bitmap.getGenerationID(), |
- sk_ref_sp(texture), |
+ sk_ref_sp(texture), |
+ sk_ref_sp(bitmap.colorSpace()), |
&this->surfaceProps()); |
} |
@@ -1433,7 +1435,8 @@ sk_sp<SkSpecialImage> SkGpuDevice::makeSpecial(const SkImage* image) { |
return SkSpecialImage::MakeFromGpu(SkIRect::MakeWH(image->width(), image->height()), |
image->uniqueID(), |
- sk_ref_sp(texture), |
+ sk_ref_sp(texture), |
+ sk_ref_sp(as_IB(image)->onImageInfo().colorSpace()), |
&this->surfaceProps()); |
} else if (image->peekPixels(&pm)) { |
SkBitmap bm; |
@@ -1467,7 +1470,8 @@ sk_sp<SkSpecialImage> SkGpuDevice::snapSpecial() { |
return SkSpecialImage::MakeFromGpu(srcRect, |
kNeedNewImageUniqueID_SpecialImage, |
- std::move(texture), |
+ std::move(texture), |
+ sk_ref_sp(ii.colorSpace()), |
Brian Osman
2016/07/20 19:16:01
This is still questionable, because the device's i
|
&this->surfaceProps()); |
} |