Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(554)

Side by Side Diff: include/codec/SkEncodedInfo.h

Issue 1911613002: Use SkEncodedInfo in place of SkSwizzler::SrcConfig (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Fix bmp bug Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | src/codec/SkBmpStandardCodec.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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) {
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 ||
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
149 case kBGRA_Color: 153 case kBGRA_Color:
150 case kYUVA_Color: 154 case kYUVA_Color:
151 SkASSERT(kOpaque_Alpha != fAlpha); 155 SkASSERT(kOpaque_Alpha != fAlpha);
152 return SkImageInfo::Make(width, height, kN32_SkColorType, kUnpre mul_SkAlphaType); 156 return SkImageInfo::Make(width, height, kN32_SkColorType, kUnpre mul_SkAlphaType);
153 default: 157 default:
154 SkASSERT(false); 158 SkASSERT(false);
155 return SkImageInfo::MakeUnknown(); 159 return SkImageInfo::MakeUnknown();
156 } 160 }
157 } 161 }
158 162
163 Color color() const { return fColor; }
164 Alpha alpha() const { return fAlpha; }
165 uint8_t bitsPerComponent() const { return fBitsPerComponent; }
166
167 uint8_t bitsPerPixel() const {
168 switch (fColor) {
169 case kGray_Color:
170 return fBitsPerComponent;
171 case kGrayAlpha_Color:
172 return 2 * fBitsPerComponent;
173 case kPalette_Color:
174 return fBitsPerComponent;
175 case kRGB_Color:
176 case kBGR_Color:
177 case kYUV_Color:
178 return 3 * fBitsPerComponent;
179 case kRGBA_Color:
180 case kBGRA_Color:
181 case kBGRX_Color:
182 case kYUVA_Color:
183 case kInvertedCMYK_Color:
184 case kYCCK_Color:
185 return 4 * fBitsPerComponent;
186 default:
187 SkASSERT(false);
188 return 0;
189 }
190 }
191
159 SkEncodedInfo() 192 SkEncodedInfo()
160 : fColor(kUnknown_Color) 193 : fColor(kUnknown_Color)
161 , fAlpha(kUnknown_Alpha) 194 , fAlpha(kUnknown_Alpha)
162 , fBitsPerComponent(0) 195 , fBitsPerComponent(0)
163 {} 196 {}
164 197
165 private: 198 private:
166 199
167 SkEncodedInfo(Color color, Alpha alpha, uint8_t bitsPerComponent) 200 SkEncodedInfo(Color color, Alpha alpha, uint8_t bitsPerComponent)
168 : fColor(color) 201 : fColor(color)
169 , fAlpha(alpha) 202 , fAlpha(alpha)
170 , fBitsPerComponent(bitsPerComponent) 203 , fBitsPerComponent(bitsPerComponent)
171 {} 204 {}
172 205
206 void setColor(Color color) {
207 fColor = color;
208 }
209
173 Color fColor; 210 Color fColor;
174 Alpha fAlpha; 211 Alpha fAlpha;
175 uint8_t fBitsPerComponent; 212 uint8_t fBitsPerComponent;
213
214 friend class SkJpegCodec;
176 }; 215 };
177 216
178 #endif 217 #endif
OLDNEW
« no previous file with comments | « no previous file | src/codec/SkBmpStandardCodec.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698