OLD | NEW |
---|---|
1 /* | 1 /* |
2 * Copyright 2016 Google Inc. | 2 * Copyright 2016 Google Inc. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
6 */ | 6 */ |
7 | 7 |
8 #ifndef SkEncodedInfo_DEFINED | 8 #ifndef SkEncodedInfo_DEFINED |
9 #define SkEncodedInfo_DEFINED | 9 #define SkEncodedInfo_DEFINED |
10 | 10 |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
61 | 61 |
62 // JPEG | 62 // JPEG |
63 // Photoshop actually writes inverted CMYK data into JPEGs, where zero | 63 // Photoshop actually writes inverted CMYK data into JPEGs, where zero |
64 // represents 100% ink coverage. For this reason, we treat CMYK JPEGs | 64 // represents 100% ink coverage. For this reason, we treat CMYK JPEGs |
65 // as having inverted CMYK. libjpeg-turbo warns that this may break | 65 // as having inverted CMYK. libjpeg-turbo warns that this may break |
66 // other applications, but the CMYK JPEGs we see on the web expect to | 66 // other applications, but the CMYK JPEGs we see on the web expect to |
67 // be treated as inverted CMYK. | 67 // be treated as inverted CMYK. |
68 kInvertedCMYK_Color, | 68 kInvertedCMYK_Color, |
69 kYCCK_Color, | 69 kYCCK_Color, |
70 | 70 |
71 // Used internally to indicate that the decoding library has | |
72 // pre-swizzled to the desired output format. | |
73 kPreSwizzled_Color, | |
74 | |
71 // Allows us to have a default constructor. Should be treated as | 75 // Allows us to have a default constructor. Should be treated as |
72 // invalid. | 76 // invalid. |
73 kUnknown_Color, | 77 kUnknown_Color, |
74 }; | 78 }; |
75 | 79 |
76 static SkEncodedInfo Make(Color color, Alpha alpha, int bitsPerComponent) { | 80 static SkEncodedInfo Make(Color color, Alpha alpha, int bitsPerComponent) { |
reed1
2016/04/22 15:08:35
Do we need to allow the public to create EncodedIn
msarett
2016/04/22 16:13:26
Agreed that is weird.
We already disallow kUnknow
| |
77 SkASSERT(1 == bitsPerComponent || | 81 SkASSERT(1 == bitsPerComponent || |
78 2 == bitsPerComponent || | 82 2 == bitsPerComponent || |
79 4 == bitsPerComponent || | 83 4 == bitsPerComponent || |
80 8 == bitsPerComponent || | 84 8 == bitsPerComponent || |
81 16 == bitsPerComponent); | 85 16 == bitsPerComponent); |
82 | 86 |
83 switch (color) { | 87 switch (color) { |
84 case kGray_Color: | 88 case kGray_Color: |
85 SkASSERT(kOpaque_Alpha == alpha); | 89 SkASSERT(kOpaque_Alpha == alpha); |
86 break; | 90 break; |
(...skipping 17 matching lines...) Expand all Loading... | |
104 break; | 108 break; |
105 case kRGBA_Color: | 109 case kRGBA_Color: |
106 SkASSERT(kOpaque_Alpha != alpha); | 110 SkASSERT(kOpaque_Alpha != alpha); |
107 SkASSERT(bitsPerComponent >= 8); | 111 SkASSERT(bitsPerComponent >= 8); |
108 break; | 112 break; |
109 case kBGRA_Color: | 113 case kBGRA_Color: |
110 case kYUVA_Color: | 114 case kYUVA_Color: |
111 SkASSERT(kOpaque_Alpha != alpha); | 115 SkASSERT(kOpaque_Alpha != alpha); |
112 SkASSERT(8 == bitsPerComponent); | 116 SkASSERT(8 == bitsPerComponent); |
113 break; | 117 break; |
118 case kPreSwizzled_Color: | |
119 break; | |
114 default: | 120 default: |
115 SkASSERT(false); | 121 SkASSERT(false); |
116 break; | 122 break; |
117 } | 123 } |
118 | 124 |
119 return SkEncodedInfo(color, alpha, bitsPerComponent); | 125 return SkEncodedInfo(color, alpha, bitsPerComponent); |
120 } | 126 } |
121 | 127 |
122 /* | 128 /* |
123 * Returns an SkImageInfo with Skia color and alpha types that are the | 129 * Returns an SkImageInfo with Skia color and alpha types that are the |
(...skipping 25 matching lines...) Expand all Loading... | |
149 case kBGRA_Color: | 155 case kBGRA_Color: |
150 case kYUVA_Color: | 156 case kYUVA_Color: |
151 SkASSERT(kOpaque_Alpha != fAlpha); | 157 SkASSERT(kOpaque_Alpha != fAlpha); |
152 return SkImageInfo::Make(width, height, kN32_SkColorType, kUnpre mul_SkAlphaType); | 158 return SkImageInfo::Make(width, height, kN32_SkColorType, kUnpre mul_SkAlphaType); |
153 default: | 159 default: |
154 SkASSERT(false); | 160 SkASSERT(false); |
155 return SkImageInfo::MakeUnknown(); | 161 return SkImageInfo::MakeUnknown(); |
156 } | 162 } |
157 } | 163 } |
158 | 164 |
165 Color color() const { return fColor; } | |
166 Alpha alpha() const { return fAlpha; } | |
167 uint8_t bitsPerComponent() const { return fBitsPerComponent; } | |
168 | |
169 SkEncodedInfo makeColor(Color color) const { | |
170 return SkEncodedInfo::Make(color, fAlpha, fBitsPerComponent); | |
171 } | |
172 | |
173 uint8_t bitsPerPixel() const { | |
174 switch (fColor) { | |
175 case kGray_Color: | |
176 return fBitsPerComponent; | |
177 case kGrayAlpha_Color: | |
178 return 2 * fBitsPerComponent; | |
179 case kPalette_Color: | |
180 return fBitsPerComponent; | |
181 case kRGB_Color: | |
182 case kBGR_Color: | |
183 case kYUV_Color: | |
184 return 3 * fBitsPerComponent; | |
185 case kRGBA_Color: | |
186 case kBGRA_Color: | |
187 case kBGRX_Color: | |
188 case kYUVA_Color: | |
189 case kInvertedCMYK_Color: | |
190 case kYCCK_Color: | |
191 return 4 * fBitsPerComponent; | |
192 default: | |
193 SkASSERT(false); | |
194 return 0; | |
195 } | |
196 } | |
197 | |
159 SkEncodedInfo() | 198 SkEncodedInfo() |
160 : fColor(kUnknown_Color) | 199 : fColor(kUnknown_Color) |
161 , fAlpha(kUnknown_Alpha) | 200 , fAlpha(kUnknown_Alpha) |
162 , fBitsPerComponent(0) | 201 , fBitsPerComponent(0) |
163 {} | 202 {} |
164 | 203 |
165 private: | 204 private: |
166 | 205 |
167 SkEncodedInfo(Color color, Alpha alpha, uint8_t bitsPerComponent) | 206 SkEncodedInfo(Color color, Alpha alpha, uint8_t bitsPerComponent) |
168 : fColor(color) | 207 : fColor(color) |
169 , fAlpha(alpha) | 208 , fAlpha(alpha) |
170 , fBitsPerComponent(bitsPerComponent) | 209 , fBitsPerComponent(bitsPerComponent) |
171 {} | 210 {} |
172 | 211 |
173 Color fColor; | 212 Color fColor; |
174 Alpha fAlpha; | 213 Alpha fAlpha; |
175 uint8_t fBitsPerComponent; | 214 uint8_t fBitsPerComponent; |
176 }; | 215 }; |
177 | 216 |
178 #endif | 217 #endif |
OLD | NEW |