aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar reed <reed@chromium.org>2014-06-14 05:30:20 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2014-06-14 05:30:20 -0700
commit0689d7b12e7c427a077b003d3d8ae759d86f798f (patch)
treeac2125dd7a653ea67b693ddd7937b41b41db73fb /src
parentc6dbd6f95ed3e2647a5ee0c44b2c317d0b8b913a (diff)
stop using SkBitmap::Config
R=scroggo@google.com Author: reed@chromium.org Review URL: https://codereview.chromium.org/338493005
Diffstat (limited to 'src')
-rw-r--r--src/gpu/SkGpuDevice.cpp2
-rw-r--r--src/gpu/SkGr.cpp4
-rw-r--r--src/images/SkImageDecoder.cpp2
-rw-r--r--src/images/SkImageDecoder_libgif.cpp2
-rw-r--r--src/images/SkImageDecoder_libpng.cpp83
-rw-r--r--src/images/SkImageDecoder_libwebp.cpp32
-rw-r--r--src/images/SkImageEncoder_argb.cpp15
-rw-r--r--src/images/SkScaledBitmapSampler.cpp12
-rw-r--r--src/utils/SkTextureCompressor.cpp2
9 files changed, 72 insertions, 82 deletions
diff --git a/src/gpu/SkGpuDevice.cpp b/src/gpu/SkGpuDevice.cpp
index 11a79dbe7d..72b07379f2 100644
--- a/src/gpu/SkGpuDevice.cpp
+++ b/src/gpu/SkGpuDevice.cpp
@@ -1376,7 +1376,7 @@ void SkGpuDevice::internalDrawBitmap(const SkBitmap& bitmap,
// the rest from the SkPaint.
GrPaint grPaint;
grPaint.addColorEffect(effect);
- bool alphaOnly = !(SkBitmap::kA8_Config == bitmap.config());
+ bool alphaOnly = !(kAlpha_8_SkColorType == bitmap.colorType());
GrColor grColor = (alphaOnly) ? SkColor2GrColorJustAlpha(paint.getColor()) :
SkColor2GrColor(paint.getColor());
SkPaint2GrPaintNoShader(this->context(), paint, grColor, false, &grPaint);
diff --git a/src/gpu/SkGr.cpp b/src/gpu/SkGr.cpp
index c4720b58c8..34e5d0fde3 100644
--- a/src/gpu/SkGr.cpp
+++ b/src/gpu/SkGr.cpp
@@ -32,7 +32,7 @@
as the colortable.count says it is.
*/
static void build_compressed_data(void* buffer, const SkBitmap& bitmap) {
- SkASSERT(SkBitmap::kIndex8_Config == bitmap.config());
+ SkASSERT(kIndex_8_SkColorType == bitmap.colorType());
SkAutoLockPixels alp(bitmap);
if (!bitmap.readyToDraw()) {
@@ -203,7 +203,7 @@ static GrTexture* sk_gr_create_bitmap_texture(GrContext* ctx,
GrTextureDesc desc;
generate_bitmap_texture_desc(*bitmap, &desc);
- if (SkBitmap::kIndex8_Config == bitmap->config()) {
+ if (kIndex_8_SkColorType == bitmap->colorType()) {
// build_compressed_data doesn't do npot->pot expansion
// and paletted textures can't be sub-updated
if (ctx->supportsIndex8PixelConfig(params, bitmap->width(), bitmap->height())) {
diff --git a/src/images/SkImageDecoder.cpp b/src/images/SkImageDecoder.cpp
index 3c6ff69982..b124187505 100644
--- a/src/images/SkImageDecoder.cpp
+++ b/src/images/SkImageDecoder.cpp
@@ -209,7 +209,7 @@ bool SkImageDecoder::cropBitmap(SkBitmap *dst, SkBitmap *src, int sampleSize,
int srcX, int srcY) {
int w = width / sampleSize;
int h = height / sampleSize;
- if (src->config() == SkBitmap::kIndex8_Config) {
+ if (src->colorType() == kIndex_8_SkColorType) {
// kIndex8 does not allow drawing via an SkCanvas, as is done below.
// Instead, use extractSubset. Note that this shares the SkPixelRef and
// SkColorTable.
diff --git a/src/images/SkImageDecoder_libgif.cpp b/src/images/SkImageDecoder_libgif.cpp
index 7b6a4741df..0c8461f893 100644
--- a/src/images/SkImageDecoder_libgif.cpp
+++ b/src/images/SkImageDecoder_libgif.cpp
@@ -192,7 +192,7 @@ static bool skip_src_rows(GifFileType* gif, uint8_t* dst, int width, int rowsToS
* fixes it. This makes the output image consistantly deterministic.
*/
static void sanitize_indexed_bitmap(SkBitmap* bm) {
- if ((SkBitmap::kIndex8_Config == bm->config()) && !(bm->empty())) {
+ if ((kIndex_8_SkColorType == bm->colorType()) && !(bm->empty())) {
SkAutoLockPixels alp(*bm);
if (NULL != bm->getPixels()) {
SkColorTable* ct = bm->getColorTable(); // Index8 must have it.
diff --git a/src/images/SkImageDecoder_libpng.cpp b/src/images/SkImageDecoder_libpng.cpp
index 9c911e29fc..7ff15584c4 100644
--- a/src/images/SkImageDecoder_libpng.cpp
+++ b/src/images/SkImageDecoder_libpng.cpp
@@ -100,8 +100,8 @@ private:
bool decodePalette(png_structp png_ptr, png_infop info_ptr,
bool * SK_RESTRICT hasAlphap, bool *reallyHasAlphap,
SkColorTable **colorTablep);
- bool getBitmapConfig(png_structp, png_infop, SkColorType*, bool* hasAlpha,
- SkPMColor* theTranspColor);
+ bool getBitmapColorType(png_structp, png_infop, SkColorType*, bool* hasAlpha,
+ SkPMColor* theTranspColor);
typedef SkImageDecoder INHERITED;
};
@@ -166,7 +166,7 @@ static bool pos_le(int value, int max) {
}
static bool substituteTranspColor(SkBitmap* bm, SkPMColor match) {
- SkASSERT(bm->config() == SkBitmap::kARGB_8888_Config);
+ SkASSERT(bm->colorType() == kN32_SkColorType);
bool reallyHasAlpha = false;
@@ -321,7 +321,7 @@ bool SkPNGImageDecoder::onDecode(SkStream* sk_stream, SkBitmap* decodedBitmap,
bool hasAlpha = false;
SkPMColor theTranspColor = 0; // 0 tells us not to try to match
- if (!this->getBitmapConfig(png_ptr, info_ptr, &colorType, &hasAlpha, &theTranspColor)) {
+ if (!this->getBitmapColorType(png_ptr, info_ptr, &colorType, &hasAlpha, &theTranspColor)) {
return false;
}
@@ -462,14 +462,14 @@ bool SkPNGImageDecoder::onDecode(SkStream* sk_stream, SkBitmap* decodedBitmap,
reallyHasAlpha |= substituteTranspColor(decodedBitmap, theTranspColor);
}
if (reallyHasAlpha && this->getRequireUnpremultipliedColors()) {
- switch (decodedBitmap->config()) {
- case SkBitmap::kIndex8_Config:
+ switch (decodedBitmap->colorType()) {
+ case kIndex_8_SkColorType:
// Fall through.
- case SkBitmap::kARGB_4444_Config:
- // We have chosen not to support unpremul for these configs.
+ case kARGB_4444_SkColorType:
+ // We have chosen not to support unpremul for these colortypes.
return false;
default: {
- // Fall through to finish the decode. This config either
+ // Fall through to finish the decode. This colortype either
// supports unpremul or it is irrelevant because it has no
// alpha (or only alpha).
// These brackets prevent a warning.
@@ -485,10 +485,10 @@ bool SkPNGImageDecoder::onDecode(SkStream* sk_stream, SkBitmap* decodedBitmap,
-bool SkPNGImageDecoder::getBitmapConfig(png_structp png_ptr, png_infop info_ptr,
- SkColorType* colorTypep,
- bool* hasAlphap,
- SkPMColor* SK_RESTRICT theTranspColorp) {
+bool SkPNGImageDecoder::getBitmapColorType(png_structp png_ptr, png_infop info_ptr,
+ SkColorType* colorTypep,
+ bool* hasAlphap,
+ SkPMColor* SK_RESTRICT theTranspColorp) {
png_uint_32 origWidth, origHeight;
int bitDepth, colorType;
png_get_IHDR(png_ptr, info_ptr, &origWidth, &origHeight, &bitDepth,
@@ -513,7 +513,7 @@ bool SkPNGImageDecoder::getBitmapConfig(png_structp png_ptr, png_infop info_ptr,
if (colorType == PNG_COLOR_TYPE_PALETTE) {
bool paletteHasAlpha = hasTransparencyInPalette(png_ptr, info_ptr);
*colorTypep = this->getPrefColorType(kIndex_SrcDepth, paletteHasAlpha);
- // now see if we can upscale to their requested config
+ // now see if we can upscale to their requested colortype
if (!canUpscalePaletteToConfig(*colorTypep, paletteHasAlpha)) {
*colorTypep = kIndex_8_SkColorType;
}
@@ -614,7 +614,7 @@ bool SkPNGImageDecoder::getBitmapConfig(png_structp png_ptr, png_infop info_ptr,
#endif
// If the image has alpha and the decoder wants unpremultiplied
- // colors, the only supported config is 8888.
+ // colors, the only supported colortype is 8888.
if (this->getRequireUnpremultipliedColors() && *hasAlphap) {
*colorTypep = kN32_SkColorType;
}
@@ -622,7 +622,7 @@ bool SkPNGImageDecoder::getBitmapConfig(png_structp png_ptr, png_infop info_ptr,
if (fImageIndex != NULL) {
if (kUnknown_SkColorType == fImageIndex->fColorType) {
// This is the first time for this subset decode. From now on,
- // all decodes must be in the same config.
+ // all decodes must be in the same colortype.
fImageIndex->fColorType = *colorTypep;
} else if (fImageIndex->fColorType != *colorTypep) {
// Requesting a different colortype for a subsequent decode is not
@@ -685,7 +685,7 @@ bool SkPNGImageDecoder::decodePalette(png_structp png_ptr, png_infop info_ptr,
int transLessThanFF = 0;
// Choose which function to use to create the color table. If the final destination's
- // config is unpremultiplied, the color table will store unpremultiplied colors.
+ // colortype is unpremultiplied, the color table will store unpremultiplied colors.
PackColorProc proc;
if (this->getRequireUnpremultipliedColors()) {
proc = &SkPackARGB32NoCheck;
@@ -785,7 +785,7 @@ bool SkPNGImageDecoder::onDecodeSubset(SkBitmap* bm, const SkIRect& region) {
bool hasAlpha = false;
SkPMColor theTranspColor = 0; // 0 tells us not to try to match
- if (!this->getBitmapConfig(png_ptr, info_ptr, &colorType, &hasAlpha, &theTranspColor)) {
+ if (!this->getBitmapColorType(png_ptr, info_ptr, &colorType, &hasAlpha, &theTranspColor)) {
return false;
}
@@ -998,29 +998,28 @@ static void sk_write_fn(png_structp png_ptr, png_bytep data, png_size_t len) {
}
}
-static transform_scanline_proc choose_proc(SkBitmap::Config config,
- bool hasAlpha) {
+static transform_scanline_proc choose_proc(SkColorType ct, bool hasAlpha) {
// we don't care about search on alpha if we're kIndex8, since only the
// colortable packing cares about that distinction, not the pixels
- if (SkBitmap::kIndex8_Config == config) {
+ if (kIndex_8_SkColorType == ct) {
hasAlpha = false; // we store false in the table entries for kIndex8
}
static const struct {
- SkBitmap::Config fConfig;
+ SkColorType fColorType;
bool fHasAlpha;
transform_scanline_proc fProc;
} gMap[] = {
- { SkBitmap::kRGB_565_Config, false, transform_scanline_565 },
- { SkBitmap::kARGB_8888_Config, false, transform_scanline_888 },
- { SkBitmap::kARGB_8888_Config, true, transform_scanline_8888 },
- { SkBitmap::kARGB_4444_Config, false, transform_scanline_444 },
- { SkBitmap::kARGB_4444_Config, true, transform_scanline_4444 },
- { SkBitmap::kIndex8_Config, false, transform_scanline_memcpy },
+ { kRGB_565_SkColorType, false, transform_scanline_565 },
+ { kN32_SkColorType, false, transform_scanline_888 },
+ { kN32_SkColorType, true, transform_scanline_8888 },
+ { kARGB_4444_SkColorType, false, transform_scanline_444 },
+ { kARGB_4444_SkColorType, true, transform_scanline_4444 },
+ { kIndex_8_SkColorType, false, transform_scanline_memcpy },
};
for (int i = SK_ARRAY_COUNT(gMap) - 1; i >= 0; --i) {
- if (gMap[i].fConfig == config && gMap[i].fHasAlpha == hasAlpha) {
+ if (gMap[i].fColorType == ct && gMap[i].fHasAlpha == hasAlpha) {
return gMap[i].fProc;
}
}
@@ -1107,38 +1106,37 @@ protected:
private:
bool doEncode(SkWStream* stream, const SkBitmap& bm,
const bool& hasAlpha, int colorType,
- int bitDepth, SkBitmap::Config config,
+ int bitDepth, SkColorType ct,
png_color_8& sig_bit);
typedef SkImageEncoder INHERITED;
};
-bool SkPNGImageEncoder::onEncode(SkWStream* stream, const SkBitmap& bitmap,
- int /*quality*/) {
- SkBitmap::Config config = bitmap.config();
+bool SkPNGImageEncoder::onEncode(SkWStream* stream, const SkBitmap& bitmap, int /*quality*/) {
+ SkColorType ct = bitmap.colorType();
const bool hasAlpha = !bitmap.isOpaque();
int colorType = PNG_COLOR_MASK_COLOR;
int bitDepth = 8; // default for color
png_color_8 sig_bit;
- switch (config) {
- case SkBitmap::kIndex8_Config:
+ switch (ct) {
+ case kIndex_8_SkColorType:
colorType |= PNG_COLOR_MASK_PALETTE;
// fall through to the ARGB_8888 case
- case SkBitmap::kARGB_8888_Config:
+ case kN32_SkColorType:
sig_bit.red = 8;
sig_bit.green = 8;
sig_bit.blue = 8;
sig_bit.alpha = 8;
break;
- case SkBitmap::kARGB_4444_Config:
+ case kARGB_4444_SkColorType:
sig_bit.red = 4;
sig_bit.green = 4;
sig_bit.blue = 4;
sig_bit.alpha = 4;
break;
- case SkBitmap::kRGB_565_Config:
+ case kRGB_565_SkColorType:
sig_bit.red = 5;
sig_bit.green = 6;
sig_bit.blue = 5;
@@ -1173,13 +1171,12 @@ bool SkPNGImageEncoder::onEncode(SkWStream* stream, const SkBitmap& bitmap,
bitDepth = computeBitDepth(ctable->count());
}
- return doEncode(stream, bitmap, hasAlpha, colorType,
- bitDepth, config, sig_bit);
+ return doEncode(stream, bitmap, hasAlpha, colorType, bitDepth, ct, sig_bit);
}
bool SkPNGImageEncoder::doEncode(SkWStream* stream, const SkBitmap& bitmap,
const bool& hasAlpha, int colorType,
- int bitDepth, SkBitmap::Config config,
+ int bitDepth, SkColorType ct,
png_color_8& sig_bit) {
png_structp png_ptr;
@@ -1224,7 +1221,7 @@ bool SkPNGImageEncoder::doEncode(SkWStream* stream, const SkBitmap& bitmap,
// set our colortable/trans arrays if needed
png_color paletteColors[256];
png_byte trans[256];
- if (SkBitmap::kIndex8_Config == config) {
+ if (kIndex_8_SkColorType == ct) {
SkColorTable* ct = bitmap.getColorTable();
int numTrans = pack_palette(ct, paletteColors, trans, hasAlpha);
png_set_PLTE(png_ptr, info_ptr, paletteColors, ct->count());
@@ -1239,7 +1236,7 @@ bool SkPNGImageEncoder::doEncode(SkWStream* stream, const SkBitmap& bitmap,
const char* srcImage = (const char*)bitmap.getPixels();
SkAutoSMalloc<1024> rowStorage(bitmap.width() << 2);
char* storage = (char*)rowStorage.get();
- transform_scanline_proc proc = choose_proc(config, hasAlpha);
+ transform_scanline_proc proc = choose_proc(ct, hasAlpha);
for (int y = 0; y < bitmap.height(); y++) {
png_bytep row_ptr = (png_bytep)storage;
diff --git a/src/images/SkImageDecoder_libwebp.cpp b/src/images/SkImageDecoder_libwebp.cpp
index 7a3c65875c..f7cfa8b4cc 100644
--- a/src/images/SkImageDecoder_libwebp.cpp
+++ b/src/images/SkImageDecoder_libwebp.cpp
@@ -169,9 +169,9 @@ static bool return_false(const SkBitmap& bm, const char msg[]) {
static WEBP_CSP_MODE webp_decode_mode(const SkBitmap* decodedBitmap, bool premultiply) {
WEBP_CSP_MODE mode = MODE_LAST;
- SkBitmap::Config config = decodedBitmap->config();
+ const SkColorType ct = decodedBitmap->colorType();
- if (config == SkBitmap::kARGB_8888_Config) {
+ if (ct == kN32_SkColorType) {
#if SK_PMCOLOR_BYTE_ORDER(B,G,R,A)
mode = premultiply ? MODE_bgrA : MODE_BGRA;
#elif SK_PMCOLOR_BYTE_ORDER(R,G,B,A)
@@ -179,9 +179,9 @@ static WEBP_CSP_MODE webp_decode_mode(const SkBitmap* decodedBitmap, bool premul
#else
#error "Skia uses BGRA or RGBA byte order"
#endif
- } else if (config == SkBitmap::kARGB_4444_Config) {
+ } else if (ct == kARGB_4444_SkColorType) {
mode = premultiply ? MODE_rgbA_4444 : MODE_RGBA_4444;
- } else if (config == SkBitmap::kRGB_565_Config) {
+ } else if (ct == kRGB_565_SkColorType) {
mode = MODE_RGB_565;
}
SkASSERT(MODE_LAST != mode);
@@ -333,10 +333,8 @@ bool SkWEBPImageDecoder::onBuildTileIndex(SkStreamRewindable* stream,
}
static bool is_config_compatible(const SkBitmap& bitmap) {
- SkBitmap::Config config = bitmap.config();
- return config == SkBitmap::kARGB_4444_Config ||
- config == SkBitmap::kRGB_565_Config ||
- config == SkBitmap::kARGB_8888_Config;
+ const SkColorType ct = bitmap.colorType();
+ return ct == kARGB_4444_SkColorType || ct == kRGB_565_SkColorType || ct == kN32_SkColorType;
}
bool SkWEBPImageDecoder::onDecodeSubset(SkBitmap* decodedBitmap,
@@ -556,11 +554,9 @@ static void Index8_To_RGB(const uint8_t* in, uint8_t* rgb, int width,
}
}
-static ScanlineImporter ChooseImporter(const SkBitmap::Config& config,
- bool hasAlpha,
- int* bpp) {
- switch (config) {
- case SkBitmap::kARGB_8888_Config:
+static ScanlineImporter ChooseImporter(SkColorType ct, bool hasAlpha, int* bpp) {
+ switch (ct) {
+ case kN32_SkColorType:
if (hasAlpha) {
*bpp = 4;
return ARGB_8888_To_RGBA;
@@ -568,7 +564,7 @@ static ScanlineImporter ChooseImporter(const SkBitmap::Config& config,
*bpp = 3;
return ARGB_8888_To_RGB;
}
- case SkBitmap::kARGB_4444_Config:
+ case kARGB_4444_SkColorType:
if (hasAlpha) {
*bpp = 4;
return ARGB_4444_To_RGBA;
@@ -576,10 +572,10 @@ static ScanlineImporter ChooseImporter(const SkBitmap::Config& config,
*bpp = 3;
return ARGB_4444_To_RGB;
}
- case SkBitmap::kRGB_565_Config:
+ case kRGB_565_SkColorType:
*bpp = 3;
return RGB_565_To_RGB;
- case SkBitmap::kIndex8_Config:
+ case kIndex_8_SkColorType:
*bpp = 3;
return Index8_To_RGB;
default:
@@ -603,11 +599,9 @@ private:
bool SkWEBPImageEncoder::onEncode(SkWStream* stream, const SkBitmap& bm,
int quality) {
- const SkBitmap::Config config = bm.config();
const bool hasAlpha = !bm.isOpaque();
int bpp = -1;
- const ScanlineImporter scanline_import = ChooseImporter(config, hasAlpha,
- &bpp);
+ const ScanlineImporter scanline_import = ChooseImporter(bm.colorType(), hasAlpha, &bpp);
if (NULL == scanline_import) {
return false;
}
diff --git a/src/images/SkImageEncoder_argb.cpp b/src/images/SkImageEncoder_argb.cpp
index 97b741b8bf..296491eef8 100644
--- a/src/images/SkImageEncoder_argb.cpp
+++ b/src/images/SkImageEncoder_argb.cpp
@@ -71,15 +71,15 @@ static void Index8_To_ARGB(const uint8_t* in, uint8_t* argb, int width,
}
}
-static ScanlineImporter ChooseImporter(const SkBitmap::Config& config) {
- switch (config) {
- case SkBitmap::kARGB_8888_Config:
+static ScanlineImporter ChooseImporter(SkColorType ct) {
+ switch (ct) {
+ case kN32_SkColorType:
return ARGB_8888_To_ARGB;
- case SkBitmap::kRGB_565_Config:
+ case kRGB_565_SkColorType:
return RGB_565_To_ARGB;
- case SkBitmap::kARGB_4444_Config:
+ case kARGB_4444_SkColorType:
return ARGB_4444_To_ARGB;
- case SkBitmap::kIndex8_Config:
+ case kIndex_8_SkColorType:
return Index8_To_ARGB;
default:
return NULL;
@@ -87,8 +87,7 @@ static ScanlineImporter ChooseImporter(const SkBitmap::Config& config) {
}
bool SkARGBImageEncoder::onEncode(SkWStream* stream, const SkBitmap& bitmap, int) {
- const SkBitmap::Config config = bitmap.config();
- const ScanlineImporter scanline_import = ChooseImporter(config);
+ const ScanlineImporter scanline_import = ChooseImporter(bitmap.colorType());
if (NULL == scanline_import) {
return false;
}
diff --git a/src/images/SkScaledBitmapSampler.cpp b/src/images/SkScaledBitmapSampler.cpp
index 7fd8718beb..d78502d2bb 100644
--- a/src/images/SkScaledBitmapSampler.cpp
+++ b/src/images/SkScaledBitmapSampler.cpp
@@ -696,20 +696,20 @@ bool SkScaledBitmapSampler::begin(SkBitmap* dst, SrcConfig sc,
return false;
}
- switch (dst->config()) {
- case SkBitmap::kARGB_8888_Config:
+ switch (dst->colorType()) {
+ case kN32_SkColorType:
index += 0 * gProcDstConfigSpan;
break;
- case SkBitmap::kRGB_565_Config:
+ case kRGB_565_SkColorType:
index += 1 * gProcDstConfigSpan;
break;
- case SkBitmap::kARGB_4444_Config:
+ case kARGB_4444_SkColorType:
index += 2 * gProcDstConfigSpan;
break;
- case SkBitmap::kIndex8_Config:
+ case kIndex_8_SkColorType:
index += 3 * gProcDstConfigSpan;
break;
- case SkBitmap::kA8_Config:
+ case kAlpha_8_SkColorType:
index += 4 * gProcDstConfigSpan;
break;
default:
diff --git a/src/utils/SkTextureCompressor.cpp b/src/utils/SkTextureCompressor.cpp
index 5ef1ae39fc..fb41928269 100644
--- a/src/utils/SkTextureCompressor.cpp
+++ b/src/utils/SkTextureCompressor.cpp
@@ -197,7 +197,7 @@ SkData *CompressBitmapToFormat(const SkBitmap &bitmap, Format format) {
memset(kProcMap, 0, sizeof(kProcMap));
// Map available bitmap configs to compression functions
- kProcMap[SkBitmap::kA8_Config][kLATC_Format] = compress_a8_to_latc;
+ kProcMap[kAlpha_8_SkColorType][kLATC_Format] = compress_a8_to_latc;
CompressBitmapProc proc = kProcMap[bitmap.colorType()][format];
if (NULL != proc) {