Index: include/codec/SkEncodedInfo.h |
diff --git a/include/codec/SkEncodedInfo.h b/include/codec/SkEncodedInfo.h |
index 8c5f51305634865347bb779eb550b7837b88d0f4..5dbdac1c7837c2844e7b4ff786b57a161d02ed8d 100644 |
--- a/include/codec/SkEncodedInfo.h |
+++ b/include/codec/SkEncodedInfo.h |
@@ -110,12 +110,10 @@ public: |
SkASSERT(8 == bitsPerComponent); |
break; |
case kRGBA_Color: |
- SkASSERT(kOpaque_Alpha != alpha); |
SkASSERT(bitsPerComponent >= 8); |
break; |
case kBGRA_Color: |
case kYUVA_Color: |
- SkASSERT(kOpaque_Alpha != alpha); |
SkASSERT(8 == bitsPerComponent); |
break; |
default: |
@@ -165,6 +163,43 @@ public: |
int width() const { return fWidth; } |
int height() const { return fHeight; } |
+ Color color() const { return fColor; } |
+ Alpha alpha() const { return fAlpha; } |
+ uint8_t bitsPerComponent() const { return fBitsPerComponent; } |
+ |
+ SkEncodedInfo makeColor(Color color) const { |
+ return SkEncodedInfo::Make(fWidth, fHeight, color, fAlpha, fBitsPerComponent); |
+ } |
+ |
+ uint8_t bitsPerPixel() const { |
+ switch (fColor) { |
+ case kGray_Color: |
+ return fBitsPerComponent; |
+ case kGrayAlpha_Color: |
+ return 2 * fBitsPerComponent; |
+ case kPalette_Color: |
+ return fBitsPerComponent; |
+ case kRGB_Color: |
+ case kBGR_Color: |
+ case kYUV_Color: |
+ return 3 * fBitsPerComponent; |
+ case kRGBA_Color: |
+ case kBGRA_Color: |
+ case kBGRX_Color: |
+ case kYUVA_Color: |
+ case kInvertedCMYK_Color: |
+ case kYCCK_Color: |
+ return 4 * fBitsPerComponent; |
+ default: |
+ SkASSERT(false); |
+ return 0; |
+ } |
+ } |
+ |
+ uint8_t bytesPerPixel() const { |
+ SkASSERT(SkIsAlign8(this->bitsPerPixel())); |
+ return this->bitsPerPixel() >> 3; |
+ } |
SkEncodedInfo() |
: fWidth(0) |