* 1. invalid ImageInfo (e.g. negative dimensions)
* 2. unsupported ImageInfo for a canvas
* - kUnknown_SkColorType, kIndex_8_SkColorType
- * - kIgnore_SkAlphaType
+ * - kUnknown_SkAlphaType
* - this list is not complete, so others may also be unsupported
*
* Note: it is valid to request a supported ImageInfo, but with zero
* Describes how to interpret the alpha compoent of a pixel.
*/
enum SkAlphaType {
- /**
- * All pixels should be treated as opaque, regardless of the value stored
- * in their alpha field. Used for legacy images that wrote 0 or garbarge
- * in their alpha field, but intended the RGB to be treated as opaque.
- */
- kIgnore_SkAlphaType,
+ kUnknown_SkAlphaType,
/**
* All pixels are stored as opaque. This differs slightly from kIgnore in
};
static inline bool SkAlphaTypeIsOpaque(SkAlphaType at) {
- SK_COMPILE_ASSERT(kIgnore_SkAlphaType < kOpaque_SkAlphaType, bad_alphatype_order);
- SK_COMPILE_ASSERT(kPremul_SkAlphaType > kOpaque_SkAlphaType, bad_alphatype_order);
- SK_COMPILE_ASSERT(kUnpremul_SkAlphaType > kOpaque_SkAlphaType, bad_alphatype_order);
-
- return (unsigned)at <= kOpaque_SkAlphaType;
+ return kOpaque_SkAlphaType == at;
}
static inline bool SkAlphaTypeIsValid(unsigned value) {
: fWidth(0)
, fHeight(0)
, fColorType(kUnknown_SkColorType)
- , fAlphaType(kIgnore_SkAlphaType)
+ , fAlphaType(kUnknown_SkAlphaType)
, fProfileType(kLinear_SkColorProfileType)
{}
}
static SkImageInfo MakeUnknown(int width, int height) {
- return SkImageInfo(width, height, kUnknown_SkColorType, kIgnore_SkAlphaType,
+ return SkImageInfo(width, height, kUnknown_SkColorType, kUnknown_SkAlphaType,
kLinear_SkColorProfileType);
}
SkASSERT(fInfo.height() <= prInfo.height());
SkASSERT(fInfo.colorType() == prInfo.colorType());
switch (prInfo.alphaType()) {
- case kIgnore_SkAlphaType:
- SkASSERT(fInfo.alphaType() == kIgnore_SkAlphaType);
+ case kUnknown_SkAlphaType:
+ SkASSERT(fInfo.alphaType() == kUnknown_SkAlphaType);
break;
case kOpaque_SkAlphaType:
case kPremul_SkAlphaType:
// TODO: can we stop supporting kUnknown in SkBitmkapDevice?
if (kUnknown_SkColorType == info.colorType()) {
if (newAlphaType) {
- *newAlphaType = kIgnore_SkAlphaType;
+ *newAlphaType = kUnknown_SkAlphaType;
}
return true;
}
}
static AlphaVerb compute_AlphaVerb(SkAlphaType src, SkAlphaType dst) {
- SkASSERT(kIgnore_SkAlphaType != src);
- SkASSERT(kIgnore_SkAlphaType != dst);
+ SkASSERT(kUnknown_SkAlphaType != src);
+ SkASSERT(kUnknown_SkAlphaType != dst);
if (kOpaque_SkAlphaType == src || kOpaque_SkAlphaType == dst || src == dst) {
return kNothing_AlphaVerb;
SkAlphaType* canonical) {
switch (colorType) {
case kUnknown_SkColorType:
- alphaType = kIgnore_SkAlphaType;
+ alphaType = kUnknown_SkAlphaType;
break;
case kAlpha_8_SkColorType:
if (kUnpremul_SkAlphaType == alphaType) {
case kARGB_4444_SkColorType:
case kRGBA_8888_SkColorType:
case kBGRA_8888_SkColorType:
- if (kIgnore_SkAlphaType == alphaType) {
+ if (kUnknown_SkAlphaType == alphaType) {
return false;
}
break;
static CGBitmapInfo ComputeCGAlphaInfo_RGBA(SkAlphaType at) {
CGBitmapInfo info = kCGBitmapByteOrder32Big;
switch (at) {
+ case kUnknown_SkAlphaType:
+ break;
case kOpaque_SkAlphaType:
- case kIgnore_SkAlphaType:
info |= kCGImageAlphaNoneSkipLast;
break;
case kPremul_SkAlphaType:
static CGBitmapInfo ComputeCGAlphaInfo_BGRA(SkAlphaType at) {
CGBitmapInfo info = kCGBitmapByteOrder32Little;
switch (at) {
+ case kUnknown_SkAlphaType:
+ break;
case kOpaque_SkAlphaType:
- case kIgnore_SkAlphaType:
info |= kCGImageAlphaNoneSkipFirst;
break;
case kPremul_SkAlphaType: