diff options
Diffstat (limited to 'gm/showmiplevels.cpp')
-rw-r--r-- | gm/showmiplevels.cpp | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/gm/showmiplevels.cpp b/gm/showmiplevels.cpp index e5374e4044..3e2091fd6b 100644 --- a/gm/showmiplevels.cpp +++ b/gm/showmiplevels.cpp @@ -120,7 +120,7 @@ protected: static void DrawAndFrame(SkCanvas* canvas, const SkBitmap& orig, SkScalar x, SkScalar y) { SkBitmap bm; - orig.copyTo(&bm); + sk_tool_utils::copy_to(&bm, orig.colorType(), orig); apply_gamma(bm); canvas->drawBitmap(bm, x, y, nullptr); @@ -218,7 +218,14 @@ void copy_to(SkBitmap* dst, SkColorType dstColorType, const SkBitmap& src) { return sk_tool_utils::copy_to_g8(dst, src); } - src.copyTo(dst, dstColorType); + const SkBitmap* srcPtr = &src; + SkBitmap tmp(src); + if (kRGB_565_SkColorType == dstColorType) { + tmp.setAlphaType(kOpaque_SkAlphaType); + srcPtr = &tmp; + } + + sk_tool_utils::copy_to(dst, dstColorType, *srcPtr); } /** |