Chromium Code Reviews| 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 |