summaryrefslogtreecommitdiff
path: root/gfx/2d/Scale.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'gfx/2d/Scale.cpp')
-rw-r--r--gfx/2d/Scale.cpp21
1 files changed, 11 insertions, 10 deletions
diff --git a/gfx/2d/Scale.cpp b/gfx/2d/Scale.cpp
index 71f6f6d84..cc4710435 100644
--- a/gfx/2d/Scale.cpp
+++ b/gfx/2d/Scale.cpp
@@ -18,23 +18,24 @@ bool Scale(uint8_t* srcData, int32_t srcWidth, int32_t srcHeight, int32_t srcStr
SurfaceFormat format)
{
#ifdef USE_SKIA
- bool opaque;
- if (format == FORMAT_B8G8R8A8) {
- opaque = false;
+ SkAlphaType alphaType;
+ if (format == SurfaceFormat::B8G8R8A8) {
+ alphaType = kPremul_SkAlphaType;
} else {
- opaque = true;
+ alphaType = kOpaque_SkAlphaType;
}
- SkBitmap::Config config = GfxFormatToSkiaConfig(format);
+ SkImageInfo info = SkImageInfo::Make(srcWidth,
+ srcHeight,
+ GfxFormatToSkiaColorType(format),
+ alphaType);
SkBitmap imgSrc;
- imgSrc.setConfig(config, srcWidth, srcHeight, srcStride);
- imgSrc.setPixels(srcData);
- imgSrc.setIsOpaque(opaque);
+ imgSrc.installPixels(info, srcData, srcStride);
// Rescaler is compatible with 32 bpp only. Convert to RGB32 if needed.
- if (config != SkBitmap::kARGB_8888_Config) {
- imgSrc.copyTo(&imgSrc, SkBitmap::kARGB_8888_Config);
+ if (format != SurfaceFormat::B8G8R8A8) {
+ imgSrc.copyTo(&imgSrc, kBGRA_8888_SkColorType);
}
// This returns an SkBitmap backed by dstData; since it also wrote to dstData,