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

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: Cleanup 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) {
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
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
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
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