| Index: src/core/SkSpriteBlitter4f.cpp
|
| diff --git a/src/core/SkSpriteBlitter4f.cpp b/src/core/SkSpriteBlitter4f.cpp
|
| index 474bf4d0f606bb0681dc6dd748b747f7bce1692a..df8959529961ad7398417a00b7ccec14a25e9110 100644
|
| --- a/src/core/SkSpriteBlitter4f.cpp
|
| +++ b/src/core/SkSpriteBlitter4f.cpp
|
| @@ -82,8 +82,11 @@ SkSpriteBlitter* SkSpriteBlitter::ChooseF16(const SkPixmap& source, const SkPain
|
|
|
| class Sprite_sRGB : public Sprite_4f {
|
| public:
|
| - Sprite_sRGB(const SkPixmap& src, const SkPaint& paint) : INHERITED(src, paint) {
|
| - uint32_t flags = SkXfermode::kDstIsSRGB_D32Flag;
|
| + Sprite_sRGB(const SkPixmap& src, const SkPaint& paint, SkColorProfileType dstPt) : INHERITED(src, paint) {
|
| + uint32_t flags = 0;
|
| + if (kSRGB_SkColorProfileType == dstPt) {
|
| + flags |= SkXfermode::kDstIsSRGB_D32Flag;
|
| + }
|
| if (src.isOpaque()) {
|
| flags |= SkXfermode::kSrcIsOpaque_D32Flag;
|
| }
|
| @@ -111,8 +114,8 @@ private:
|
| };
|
|
|
|
|
| -SkSpriteBlitter* SkSpriteBlitter::ChooseS32(const SkPixmap& source, const SkPaint& paint,
|
| - SkTBlitterAllocator* allocator) {
|
| +SkSpriteBlitter* SkSpriteBlitter::ChooseNew32(const SkPixmap& source, const SkPaint& paint,
|
| + SkTBlitterAllocator* allocator, SkColorProfileType dstPt) {
|
| SkASSERT(allocator != nullptr);
|
|
|
| if (paint.getMaskFilter() != nullptr) {
|
| @@ -122,7 +125,7 @@ SkSpriteBlitter* SkSpriteBlitter::ChooseS32(const SkPixmap& source, const SkPain
|
| switch (source.colorType()) {
|
| case kN32_SkColorType:
|
| case kRGBA_F16_SkColorType:
|
| - return allocator->createT<Sprite_sRGB>(source, paint);
|
| + return allocator->createT<Sprite_sRGB>(source, paint, dstPt);
|
| default:
|
| return nullptr;
|
| }
|
|
|