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 | 13 |
13 struct SkEncodedInfo { | 14 struct SkEncodedInfo { |
14 public: | 15 public: |
15 | 16 |
16 enum Alpha { | 17 enum Alpha { |
17 kOpaque_Alpha, | 18 kOpaque_Alpha, |
18 kUnpremul_Alpha, | 19 kUnpremul_Alpha, |
19 | 20 |
20 // Each pixel is either fully opaque or fully transparent. | 21 // Each pixel is either fully opaque or fully transparent. |
21 // There is no difference between requesting kPremul or kUnpremul. | 22 // There is no difference between requesting kPremul or kUnpremul. |
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
117 } | 118 } |
118 | 119 |
119 return SkEncodedInfo(color, alpha, bitsPerComponent); | 120 return SkEncodedInfo(color, alpha, bitsPerComponent); |
120 } | 121 } |
121 | 122 |
122 /* | 123 /* |
123 * Returns an SkImageInfo with Skia color and alpha types that are the | 124 * Returns an SkImageInfo with Skia color and alpha types that are the |
124 * closest possible match to the encoded info. | 125 * closest possible match to the encoded info. |
125 */ | 126 */ |
126 SkImageInfo makeImageInfo(int width, int height) const { | 127 SkImageInfo makeImageInfo(int width, int height) const { |
| 128 SkColorProfileType profileType = SkDefaultColorProfile(); |
127 switch (fColor) { | 129 switch (fColor) { |
128 case kGray_Color: | 130 case kGray_Color: |
129 SkASSERT(kOpaque_Alpha == fAlpha); | 131 SkASSERT(kOpaque_Alpha == fAlpha); |
130 return SkImageInfo::Make(width, height, kGray_8_SkColorType, kOp
aque_SkAlphaType); | 132 return SkImageInfo::Make(width, height, kGray_8_SkColorType, |
| 133 kOpaque_SkAlphaType, profileType); |
131 case kGrayAlpha_Color: | 134 case kGrayAlpha_Color: |
132 SkASSERT(kOpaque_Alpha != fAlpha); | 135 SkASSERT(kOpaque_Alpha != fAlpha); |
133 return SkImageInfo::Make(width, height, kN32_SkColorType, | 136 return SkImageInfo::Make(width, height, kN32_SkColorType, |
134 kUnpremul_SkAlphaType); | 137 kUnpremul_SkAlphaType, profileType); |
135 case kPalette_Color: { | 138 case kPalette_Color: { |
136 SkAlphaType alphaType = (kOpaque_Alpha == fAlpha) ? kOpaque_SkAl
phaType : | 139 SkAlphaType alphaType = (kOpaque_Alpha == fAlpha) ? kOpaque_SkAl
phaType : |
137 kUnpremul_SkAlphaType; | 140 kUnpremul_SkAlphaType; |
138 return SkImageInfo::Make(width, height, kIndex_8_SkColorType, al
phaType); | 141 return SkImageInfo::Make(width, height, kIndex_8_SkColorType, |
| 142 alphaType, profileType); |
139 } | 143 } |
140 case kRGB_Color: | 144 case kRGB_Color: |
141 case kBGR_Color: | 145 case kBGR_Color: |
142 case kBGRX_Color: | 146 case kBGRX_Color: |
143 case kYUV_Color: | 147 case kYUV_Color: |
144 case kInvertedCMYK_Color: | 148 case kInvertedCMYK_Color: |
145 case kYCCK_Color: | 149 case kYCCK_Color: |
146 SkASSERT(kOpaque_Alpha == fAlpha); | 150 SkASSERT(kOpaque_Alpha == fAlpha); |
147 return SkImageInfo::Make(width, height, kN32_SkColorType, kOpaqu
e_SkAlphaType); | 151 return SkImageInfo::Make(width, height, kN32_SkColorType, |
| 152 kOpaque_SkAlphaType, profileType); |
148 case kRGBA_Color: | 153 case kRGBA_Color: |
149 case kBGRA_Color: | 154 case kBGRA_Color: |
150 case kYUVA_Color: | 155 case kYUVA_Color: |
151 SkASSERT(kOpaque_Alpha != fAlpha); | 156 SkASSERT(kOpaque_Alpha != fAlpha); |
152 return SkImageInfo::Make(width, height, kN32_SkColorType, kUnpre
mul_SkAlphaType); | 157 return SkImageInfo::Make(width, height, kN32_SkColorType, |
| 158 kUnpremul_SkAlphaType, profileType); |
153 default: | 159 default: |
154 SkASSERT(false); | 160 SkASSERT(false); |
155 return SkImageInfo::MakeUnknown(); | 161 return SkImageInfo::MakeUnknown(); |
156 } | 162 } |
157 } | 163 } |
158 | 164 |
159 SkEncodedInfo() | 165 SkEncodedInfo() |
160 : fColor(kUnknown_Color) | 166 : fColor(kUnknown_Color) |
161 , fAlpha(kUnknown_Alpha) | 167 , fAlpha(kUnknown_Alpha) |
162 , fBitsPerComponent(0) | 168 , fBitsPerComponent(0) |
163 {} | 169 {} |
164 | 170 |
165 private: | 171 private: |
166 | 172 |
167 SkEncodedInfo(Color color, Alpha alpha, uint8_t bitsPerComponent) | 173 SkEncodedInfo(Color color, Alpha alpha, uint8_t bitsPerComponent) |
168 : fColor(color) | 174 : fColor(color) |
169 , fAlpha(alpha) | 175 , fAlpha(alpha) |
170 , fBitsPerComponent(bitsPerComponent) | 176 , fBitsPerComponent(bitsPerComponent) |
171 {} | 177 {} |
172 | 178 |
173 Color fColor; | 179 Color fColor; |
174 Alpha fAlpha; | 180 Alpha fAlpha; |
175 uint8_t fBitsPerComponent; | 181 uint8_t fBitsPerComponent; |
176 }; | 182 }; |
177 | 183 |
178 #endif | 184 #endif |
OLD | NEW |