Index: src/core/SkBlitter_Sprite.cpp |
diff --git a/src/core/SkBlitter_Sprite.cpp b/src/core/SkBlitter_Sprite.cpp |
index 605fa43bf696a3660c10d6c3440bd38588d5ff94..27cbd61768ed6db20aad874e0cbb570d1c449a19 100644 |
--- a/src/core/SkBlitter_Sprite.cpp |
+++ b/src/core/SkBlitter_Sprite.cpp |
@@ -60,7 +60,14 @@ SkBlitter* SkBlitter::ChooseSprite(const SkPixmap& dst, const SkPaint& paint, |
blitter = SkSpriteBlitter::ChooseD16(source, paint, allocator); |
break; |
case kN32_SkColorType: |
- blitter = SkSpriteBlitter::ChooseD32(source, paint, allocator); |
+ if (dst.info().isSRGB()) { |
+ blitter = SkSpriteBlitter::ChooseS32(source, paint, allocator); |
+ } else { |
+ blitter = SkSpriteBlitter::ChooseL32(source, paint, allocator); |
+ } |
+ break; |
+ case kRGBA_F16_SkColorType: |
+ blitter = SkSpriteBlitter::ChooseF16(source, paint, allocator); |
break; |
default: |
blitter = nullptr; |