diff options
Diffstat (limited to 'src/core/SkBlitter_Sprite.cpp')
-rw-r--r-- | src/core/SkBlitter_Sprite.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/core/SkBlitter_Sprite.cpp b/src/core/SkBlitter_Sprite.cpp index 605fa43bf6..27cbd61768 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; |