| Index: src/core/SkDevice.cpp
|
| diff --git a/src/core/SkDevice.cpp b/src/core/SkDevice.cpp
|
| index dee5bc76afb67a85d796d73905ddd365e3fdce8d..ffb2fcc1e15b1cd56acbc5f793fdebecd4cc0d83 100644
|
| --- a/src/core/SkDevice.cpp
|
| +++ b/src/core/SkDevice.cpp
|
| @@ -30,6 +30,8 @@ SkDevice::SkDevice(const SkBitmap& bitmap)
|
| , fAttachedToCanvas(false)
|
| #endif
|
| {
|
| + SkASSERT(bitmap.config() != SkBitmap::kIndex8_Config);
|
| + SkASSERT(bitmap.premultiplied());
|
| fOrigin.setZero();
|
| fMetaData = NULL;
|
| }
|
| @@ -40,6 +42,8 @@ SkDevice::SkDevice(const SkBitmap& bitmap, const SkDeviceProperties& devicePrope
|
| , fAttachedToCanvas(false)
|
| #endif
|
| {
|
| + SkASSERT(bitmap.config() != SkBitmap::kIndex8_Config);
|
| + SkASSERT(bitmap.premultiplied());
|
| fOrigin.setZero();
|
| fMetaData = NULL;
|
| }
|
| @@ -53,6 +57,9 @@ SkDevice::SkDevice(SkBitmap::Config config, int width, int height, bool isOpaque
|
| fOrigin.setZero();
|
| fMetaData = NULL;
|
|
|
| + if (SkBitmap::kIndex8_Config == config) {
|
| + config = SkBitmap::kARGB_8888_Config;
|
| + }
|
| fBitmap.setConfig(config, width, height);
|
| fBitmap.allocPixels();
|
| fBitmap.setIsOpaque(isOpaque);
|
| @@ -71,6 +78,9 @@ SkDevice::SkDevice(SkBitmap::Config config, int width, int height, bool isOpaque
|
| fOrigin.setZero();
|
| fMetaData = NULL;
|
|
|
| + if (SkBitmap::kIndex8_Config == config) {
|
| + config = SkBitmap::kARGB_8888_Config;
|
| + }
|
| fBitmap.setConfig(config, width, height);
|
| fBitmap.allocPixels();
|
| fBitmap.setIsOpaque(isOpaque);
|
| @@ -84,6 +94,8 @@ SkDevice::~SkDevice() {
|
| }
|
|
|
| void SkDevice::replaceBitmapBackendForRasterSurface(const SkBitmap& bm) {
|
| + SkASSERT(bm.config() != SkBitmap::kIndex8_Config);
|
| + SkASSERT(bm.premultiplied());
|
| SkASSERT(bm.width() == fBitmap.width());
|
| SkASSERT(bm.height() == fBitmap.height());
|
| fBitmap = bm; // intent is to use bm's pixelRef (and rowbytes/config)
|
| @@ -108,6 +120,9 @@ SkDevice* SkDevice::onCreateCompatibleDevice(SkBitmap::Config config,
|
| int width, int height,
|
| bool isOpaque,
|
| Usage usage) {
|
| + if (SkBitmap::kIndex8_Config == config) {
|
| + config = SkBitmap::kARGB_8888_Config;
|
| + }
|
| return SkNEW_ARGS(SkDevice,(config, width, height, isOpaque, fLeakyProperties));
|
| }
|
|
|
|
|