Index: include/codec/SkEncodedInfo.h |
diff --git a/include/codec/SkEncodedInfo.h b/include/codec/SkEncodedInfo.h |
index f91660529e05a26194fdf8b5084f211133298ab5..5d996e137e12bb8362b90b5bca62fd69a875738d 100644 |
--- a/include/codec/SkEncodedInfo.h |
+++ b/include/codec/SkEncodedInfo.h |
@@ -68,6 +68,10 @@ public: |
kInvertedCMYK_Color, |
kYCCK_Color, |
+ // Used internally to indicate that the decoding library has |
+ // pre-swizzled to the desired output format. |
+ kPreSwizzled_Color, |
+ |
// Allows us to have a default constructor. Should be treated as |
// invalid. |
kUnknown_Color, |
@@ -111,6 +115,8 @@ public: |
SkASSERT(kOpaque_Alpha != alpha); |
SkASSERT(8 == bitsPerComponent); |
break; |
+ case kPreSwizzled_Color: |
+ break; |
default: |
SkASSERT(false); |
break; |
@@ -156,6 +162,39 @@ public: |
} |
} |
+ Color color() const { return fColor; } |
+ Alpha alpha() const { return fAlpha; } |
+ uint8_t bitsPerComponent() const { return fBitsPerComponent; } |
+ |
+ SkEncodedInfo makeColor(Color color) const { |
+ return SkEncodedInfo::Make(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; |
+ } |
+ } |
+ |
SkEncodedInfo() |
: fColor(kUnknown_Color) |
, fAlpha(kUnknown_Alpha) |