summaryrefslogtreecommitdiffstats
path: root/chromium/third_party/skia/src/pdf/SkPDFImage.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/skia/src/pdf/SkPDFImage.cpp')
-rw-r--r--chromium/third_party/skia/src/pdf/SkPDFImage.cpp62
1 files changed, 30 insertions, 32 deletions
diff --git a/chromium/third_party/skia/src/pdf/SkPDFImage.cpp b/chromium/third_party/skia/src/pdf/SkPDFImage.cpp
index 81adcc20d6b..77fd84eff94 100644
--- a/chromium/third_party/skia/src/pdf/SkPDFImage.cpp
+++ b/chromium/third_party/skia/src/pdf/SkPDFImage.cpp
@@ -27,16 +27,17 @@ static bool skip_compression(SkPDFCatalog* catalog) {
static size_t get_uncompressed_size(const SkBitmap& bitmap,
const SkIRect& srcRect) {
- switch (bitmap.config()) {
- case SkBitmap::kIndex8_Config:
+ switch (bitmap.colorType()) {
+ case kIndex_8_SkColorType:
return srcRect.width() * srcRect.height();
- case SkBitmap::kARGB_4444_Config:
+ case kARGB_4444_SkColorType:
return ((srcRect.width() * 3 + 1) / 2) * srcRect.height();
- case SkBitmap::kRGB_565_Config:
+ case kRGB_565_SkColorType:
return srcRect.width() * 3 * srcRect.height();
- case SkBitmap::kARGB_8888_Config:
+ case kRGBA_8888_SkColorType:
+ case kBGRA_8888_SkColorType:
return srcRect.width() * 3 * srcRect.height();
- case SkBitmap::kA8_Config:
+ case kAlpha_8_SkColorType:
return 1;
default:
SkASSERT(false);
@@ -208,9 +209,9 @@ static SkStream* create_black_image() {
static SkStream* extract_image_data(const SkBitmap& bitmap,
const SkIRect& srcRect,
bool extractAlpha, bool* isTransparent) {
- SkBitmap::Config config = bitmap.config();
- if (extractAlpha && (config == SkBitmap::kIndex8_Config ||
- config == SkBitmap::kRGB_565_Config)) {
+ SkColorType colorType = bitmap.colorType();
+ if (extractAlpha && (kIndex_8_SkColorType == colorType ||
+ kRGB_565_SkColorType == colorType)) {
if (isTransparent != NULL) {
*isTransparent = false;
}
@@ -221,26 +222,26 @@ static SkStream* extract_image_data(const SkBitmap& bitmap,
SkStream* stream = NULL;
bitmap.lockPixels();
- switch (config) {
- case SkBitmap::kIndex8_Config:
+ switch (colorType) {
+ case kIndex_8_SkColorType:
if (!extractAlpha) {
stream = extract_index8_image(bitmap, srcRect);
}
break;
- case SkBitmap::kARGB_4444_Config:
+ case kARGB_4444_SkColorType:
stream = extract_argb4444_data(bitmap, srcRect, extractAlpha,
&isOpaque, &transparent);
break;
- case SkBitmap::kRGB_565_Config:
+ case kRGB_565_SkColorType:
if (!extractAlpha) {
stream = extract_rgb565_image(bitmap, srcRect);
}
break;
- case SkBitmap::kARGB_8888_Config:
+ case kN32_SkColorType:
stream = extract_argb8888_data(bitmap, srcRect, extractAlpha,
&isOpaque, &transparent);
break;
- case SkBitmap::kA8_Config:
+ case kAlpha_8_SkColorType:
if (!extractAlpha) {
stream = create_black_image();
} else {
@@ -373,14 +374,13 @@ static uint16_t get_argb4444_neighbor_avg_color(const SkBitmap& bitmap,
static SkBitmap unpremultiply_bitmap(const SkBitmap& bitmap,
const SkIRect& srcRect) {
SkBitmap outBitmap;
- outBitmap.setConfig(bitmap.config(), srcRect.width(), srcRect.height());
- outBitmap.allocPixels();
+ outBitmap.allocPixels(bitmap.info().makeWH(srcRect.width(), srcRect.height()));
int dstRow = 0;
outBitmap.lockPixels();
bitmap.lockPixels();
- switch (bitmap.config()) {
- case SkBitmap::kARGB_4444_Config: {
+ switch (bitmap.colorType()) {
+ case kARGB_4444_SkColorType: {
for (int y = srcRect.fTop; y < srcRect.fBottom; y++) {
uint16_t* dst = outBitmap.getAddr16(0, dstRow);
uint16_t* src = bitmap.getAddr16(0, y);
@@ -408,7 +408,7 @@ static SkBitmap unpremultiply_bitmap(const SkBitmap& bitmap,
}
break;
}
- case SkBitmap::kARGB_8888_Config: {
+ case kN32_SkColorType: {
for (int y = srcRect.fTop; y < srcRect.fBottom; y++) {
uint32_t* dst = outBitmap.getAddr32(0, dstRow);
uint32_t* src = bitmap.getAddr32(0, y);
@@ -440,7 +440,7 @@ static SkBitmap unpremultiply_bitmap(const SkBitmap& bitmap,
SkPDFImage* SkPDFImage::CreateImage(const SkBitmap& bitmap,
const SkIRect& srcRect,
SkPicture::EncodeBitmap encoder) {
- if (bitmap.config() == SkBitmap::kNo_Config) {
+ if (bitmap.colorType() == kUnknown_SkColorType) {
return NULL;
}
@@ -459,9 +459,9 @@ SkPDFImage* SkPDFImage::CreateImage(const SkBitmap& bitmap,
}
SkPDFImage* image;
- SkBitmap::Config config = bitmap.config();
- if (alphaData.get() != NULL && (config == SkBitmap::kARGB_8888_Config ||
- config == SkBitmap::kARGB_4444_Config)) {
+ SkColorType colorType = bitmap.colorType();
+ if (alphaData.get() != NULL && (kN32_SkColorType == colorType ||
+ kARGB_4444_SkColorType == colorType)) {
SkBitmap unpremulBitmap = unpremultiply_bitmap(bitmap, srcRect);
image = SkNEW_ARGS(SkPDFImage, (NULL, unpremulBitmap, false,
SkIRect::MakeWH(srcRect.width(), srcRect.height()),
@@ -507,7 +507,7 @@ SkPDFImage::SkPDFImage(SkStream* stream,
if (bitmap.isImmutable()) {
fBitmap = bitmap;
} else {
- bitmap.deepCopyTo(&fBitmap, bitmap.config());
+ bitmap.deepCopyTo(&fBitmap);
fBitmap.setImmutable();
}
@@ -518,12 +518,12 @@ SkPDFImage::SkPDFImage(SkStream* stream,
fStreamValid = false;
}
- SkBitmap::Config config = fBitmap.config();
+ SkColorType colorType = fBitmap.colorType();
insertName("Type", "XObject");
insertName("Subtype", "Image");
- bool alphaOnly = (config == SkBitmap::kA8_Config);
+ bool alphaOnly = (kAlpha_8_SkColorType == colorType);
if (!isAlpha && alphaOnly) {
// For alpha only images, we stretch a single pixel of black for
@@ -538,7 +538,7 @@ SkPDFImage::SkPDFImage(SkStream* stream,
if (isAlpha || alphaOnly) {
insertName("ColorSpace", "DeviceGray");
- } else if (config == SkBitmap::kIndex8_Config) {
+ } else if (kIndex_8_SkColorType == colorType) {
SkAutoLockPixels alp(fBitmap);
insert("ColorSpace",
make_indexed_color_space(fBitmap.getColorTable()))->unref();
@@ -547,12 +547,12 @@ SkPDFImage::SkPDFImage(SkStream* stream,
}
int bitsPerComp = 8;
- if (config == SkBitmap::kARGB_4444_Config) {
+ if (kARGB_4444_SkColorType == colorType) {
bitsPerComp = 4;
}
insertInt("BitsPerComponent", bitsPerComp);
- if (config == SkBitmap::kRGB_565_Config) {
+ if (kRGB_565_SkColorType == colorType) {
SkASSERT(!isAlpha);
SkAutoTUnref<SkPDFInt> zeroVal(new SkPDFInt(0));
SkAutoTUnref<SkPDFScalar> scale5Val(
@@ -592,8 +592,6 @@ bool SkPDFImage::populate(SkPDFCatalog* catalog) {
SkBitmap subset;
// Extract subset
if (!fBitmap.extractSubset(&subset, fSrcRect)) {
- // TODO(edisonn) It fails only for kA1_Config, if that is a
- // major concern we will fix it later, so far it is NYI.
return false;
}
size_t pixelRefOffset = 0;