| 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 |
| 11 #include "SkImageInfo.h" | 11 #include "SkImageInfo.h" |
| 12 #include "../private/SkImageInfoPriv.h" | 12 #include "../private/SkImageInfoPriv.h" |
| 13 | 13 |
| 14 struct SkEncodedInfo { | 14 struct SkEncodedInfo { |
| 15 public: | 15 public: |
| 16 | 16 |
| 17 enum Alpha { | 17 enum Alpha { |
| 18 kOpaque_Alpha, | 18 kOpaque_Alpha, |
| 19 kUnpremul_Alpha, | 19 kUnpremul_Alpha, |
| 20 | 20 |
| 21 // Each pixel is either fully opaque or fully transparent. | 21 // Each pixel is either fully opaque or fully transparent. |
| 22 // There is no difference between requesting kPremul or kUnpremul. | 22 // There is no difference between requesting kPremul or kUnpremul. |
| 23 kBinary_Alpha, | 23 kBinary_Alpha, |
| 24 | |
| 25 // Allows us to have a default constructor. Should be treated as | |
| 26 // invalid. | |
| 27 kUnknown_Alpha, | |
| 28 }; | 24 }; |
| 29 | 25 |
| 30 /* | 26 /* |
| 31 * We strive to make the number of components per pixel obvious through | 27 * We strive to make the number of components per pixel obvious through |
| 32 * our naming conventions. | 28 * our naming conventions. |
| 33 * Ex: kRGB has 3 components. kRGBA has 4 components. | 29 * Ex: kRGB has 3 components. kRGBA has 4 components. |
| 34 * | 30 * |
| 35 * This sometimes results in redundant Alpha and Color information. | 31 * This sometimes results in redundant Alpha and Color information. |
| 36 * Ex: kRGB images must also be kOpaque. | 32 * Ex: kRGB images must also be kOpaque. |
| 37 */ | 33 */ |
| (...skipping 27 matching lines...) Expand all Loading... |
| 65 // represents 100% ink coverage. For this reason, we treat CMYK JPEGs | 61 // represents 100% ink coverage. For this reason, we treat CMYK JPEGs |
| 66 // as having inverted CMYK. libjpeg-turbo warns that this may break | 62 // as having inverted CMYK. libjpeg-turbo warns that this may break |
| 67 // other applications, but the CMYK JPEGs we see on the web expect to | 63 // other applications, but the CMYK JPEGs we see on the web expect to |
| 68 // be treated as inverted CMYK. | 64 // be treated as inverted CMYK. |
| 69 kInvertedCMYK_Color, | 65 kInvertedCMYK_Color, |
| 70 kYCCK_Color, | 66 kYCCK_Color, |
| 71 | 67 |
| 72 // Used internally to indicate that the decoding library has | 68 // Used internally to indicate that the decoding library has |
| 73 // pre-swizzled to the desired output format. | 69 // pre-swizzled to the desired output format. |
| 74 kPreSwizzled_Color, | 70 kPreSwizzled_Color, |
| 75 | |
| 76 // Allows us to have a default constructor. Should be treated as | |
| 77 // invalid. | |
| 78 kUnknown_Color, | |
| 79 }; | 71 }; |
| 80 | 72 |
| 81 static SkEncodedInfo Make(Color color, Alpha alpha, int bitsPerComponent) { | 73 static SkEncodedInfo Make(Color color, Alpha alpha, int bitsPerComponent) { |
| 82 SkASSERT(1 == bitsPerComponent || | 74 SkASSERT(1 == bitsPerComponent || |
| 83 2 == bitsPerComponent || | 75 2 == bitsPerComponent || |
| 84 4 == bitsPerComponent || | 76 4 == bitsPerComponent || |
| 85 8 == bitsPerComponent || | 77 8 == bitsPerComponent || |
| 86 16 == bitsPerComponent); | 78 16 == bitsPerComponent); |
| 87 | 79 |
| 88 switch (color) { | 80 switch (color) { |
| (...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 188 case kYUVA_Color: | 180 case kYUVA_Color: |
| 189 case kInvertedCMYK_Color: | 181 case kInvertedCMYK_Color: |
| 190 case kYCCK_Color: | 182 case kYCCK_Color: |
| 191 return 4 * fBitsPerComponent; | 183 return 4 * fBitsPerComponent; |
| 192 default: | 184 default: |
| 193 SkASSERT(false); | 185 SkASSERT(false); |
| 194 return 0; | 186 return 0; |
| 195 } | 187 } |
| 196 } | 188 } |
| 197 | 189 |
| 198 SkEncodedInfo() | |
| 199 : fColor(kUnknown_Color) | |
| 200 , fAlpha(kUnknown_Alpha) | |
| 201 , fBitsPerComponent(0) | |
| 202 {} | |
| 203 | |
| 204 private: | 190 private: |
| 205 | 191 |
| 206 SkEncodedInfo(Color color, Alpha alpha, uint8_t bitsPerComponent) | 192 SkEncodedInfo(Color color, Alpha alpha, uint8_t bitsPerComponent) |
| 207 : fColor(color) | 193 : fColor(color) |
| 208 , fAlpha(alpha) | 194 , fAlpha(alpha) |
| 209 , fBitsPerComponent(bitsPerComponent) | 195 , fBitsPerComponent(bitsPerComponent) |
| 210 {} | 196 {} |
| 211 | 197 |
| 212 void setColor(Color color) { | 198 void setColor(Color color) { |
| 213 fColor = color; | 199 fColor = color; |
| 214 } | 200 } |
| 215 | 201 |
| 216 Color fColor; | 202 Color fColor; |
| 217 Alpha fAlpha; | 203 Alpha fAlpha; |
| 218 uint8_t fBitsPerComponent; | 204 uint8_t fBitsPerComponent; |
| 219 | 205 |
| 220 friend class SkJpegCodec; | 206 friend class SkJpegCodec; |
| 221 }; | 207 }; |
| 222 | 208 |
| 223 #endif | 209 #endif |
| OLD | NEW |