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

Side by Side Diff: include/gpu/GrTypes.h

Issue 1789663002: sRGB support in Ganesh. Several pieces: (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Squelch assert when blurring sRGB Created 4 years, 9 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 | « include/gpu/GrTextureParams.h ('k') | include/gpu/SkGr.h » ('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 2010 Google Inc. 2 * Copyright 2010 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 GrTypes_DEFINED 8 #ifndef GrTypes_DEFINED
9 #define GrTypes_DEFINED 9 #define GrTypes_DEFINED
10 10
(...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after
211 kRGBA_8888_GrPixelConfig, 211 kRGBA_8888_GrPixelConfig,
212 /** 212 /**
213 * Premultiplied. Byte order is b,g,r,a. 213 * Premultiplied. Byte order is b,g,r,a.
214 */ 214 */
215 kBGRA_8888_GrPixelConfig, 215 kBGRA_8888_GrPixelConfig,
216 /** 216 /**
217 * Premultiplied and sRGB. Byte order is r,g,b,a. 217 * Premultiplied and sRGB. Byte order is r,g,b,a.
218 */ 218 */
219 kSRGBA_8888_GrPixelConfig, 219 kSRGBA_8888_GrPixelConfig,
220 /** 220 /**
221 * Premultiplied and sRGB. Byte order is b,g,r,a.
222 */
223 kSBGRA_8888_GrPixelConfig,
224 /**
221 * ETC1 Compressed Data 225 * ETC1 Compressed Data
222 */ 226 */
223 kETC1_GrPixelConfig, 227 kETC1_GrPixelConfig,
224 /** 228 /**
225 * LATC/RGTC/3Dc/BC4 Compressed Data 229 * LATC/RGTC/3Dc/BC4 Compressed Data
226 */ 230 */
227 kLATC_GrPixelConfig, 231 kLATC_GrPixelConfig,
228 /** 232 /**
229 * R11 EAC Compressed Data 233 * R11 EAC Compressed Data
230 * (Corresponds to section C.3.5 of the OpenGL 4.4 core profile spec) 234 * (Corresponds to section C.3.5 of the OpenGL 4.4 core profile spec)
(...skipping 30 matching lines...) Expand all
261 kLast_GrPixelConfig = kRGBA_half_GrPixelConfig 265 kLast_GrPixelConfig = kRGBA_half_GrPixelConfig
262 }; 266 };
263 static const int kGrPixelConfigCnt = kLast_GrPixelConfig + 1; 267 static const int kGrPixelConfigCnt = kLast_GrPixelConfig + 1;
264 268
265 // Aliases for pixel configs that match skia's byte order. 269 // Aliases for pixel configs that match skia's byte order.
266 #ifndef SK_CPU_LENDIAN 270 #ifndef SK_CPU_LENDIAN
267 #error "Skia gpu currently assumes little endian" 271 #error "Skia gpu currently assumes little endian"
268 #endif 272 #endif
269 #if SK_PMCOLOR_BYTE_ORDER(B,G,R,A) 273 #if SK_PMCOLOR_BYTE_ORDER(B,G,R,A)
270 static const GrPixelConfig kSkia8888_GrPixelConfig = kBGRA_8888_GrPixelConfi g; 274 static const GrPixelConfig kSkia8888_GrPixelConfig = kBGRA_8888_GrPixelConfi g;
275 static const GrPixelConfig kSkiaGamma8888_GrPixelConfig = kSBGRA_8888_GrPixe lConfig;
271 #elif SK_PMCOLOR_BYTE_ORDER(R,G,B,A) 276 #elif SK_PMCOLOR_BYTE_ORDER(R,G,B,A)
272 static const GrPixelConfig kSkia8888_GrPixelConfig = kRGBA_8888_GrPixelConfi g; 277 static const GrPixelConfig kSkia8888_GrPixelConfig = kRGBA_8888_GrPixelConfi g;
278 static const GrPixelConfig kSkiaGamma8888_GrPixelConfig = kSRGBA_8888_GrPixe lConfig;
273 #else 279 #else
274 #error "SK_*32_SHIFT values must correspond to GL_BGRA or GL_RGBA format." 280 #error "SK_*32_SHIFT values must correspond to GL_BGRA or GL_RGBA format."
275 #endif 281 #endif
276 282
277 // Returns true if the pixel config is a GPU-specific compressed format 283 // Returns true if the pixel config is a GPU-specific compressed format
278 // representation. 284 // representation.
279 static inline bool GrPixelConfigIsCompressed(GrPixelConfig config) { 285 static inline bool GrPixelConfigIsCompressed(GrPixelConfig config) {
280 switch (config) { 286 switch (config) {
281 case kIndex_8_GrPixelConfig: 287 case kIndex_8_GrPixelConfig:
282 case kETC1_GrPixelConfig: 288 case kETC1_GrPixelConfig:
(...skipping 21 matching lines...) Expand all
304 return config; 310 return config;
305 } 311 }
306 } 312 }
307 313
308 // Returns true if the pixel config is 32 bits per pixel 314 // Returns true if the pixel config is 32 bits per pixel
309 static inline bool GrPixelConfigIs8888(GrPixelConfig config) { 315 static inline bool GrPixelConfigIs8888(GrPixelConfig config) {
310 switch (config) { 316 switch (config) {
311 case kRGBA_8888_GrPixelConfig: 317 case kRGBA_8888_GrPixelConfig:
312 case kBGRA_8888_GrPixelConfig: 318 case kBGRA_8888_GrPixelConfig:
313 case kSRGBA_8888_GrPixelConfig: 319 case kSRGBA_8888_GrPixelConfig:
320 case kSBGRA_8888_GrPixelConfig:
314 return true; 321 return true;
315 default: 322 default:
316 return false; 323 return false;
317 } 324 }
318 } 325 }
319 326
320 // Returns true if the color (non-alpha) components represent sRGB values. It do es NOT indicate that 327 // Returns true if the color (non-alpha) components represent sRGB values. It do es NOT indicate that
321 // all three color components are present in the config or anything about their order. 328 // all three color components are present in the config or anything about their order.
322 static inline bool GrPixelConfigIsSRGB(GrPixelConfig config) { 329 static inline bool GrPixelConfigIsSRGB(GrPixelConfig config) {
323 switch (config) { 330 switch (config) {
324 case kSRGBA_8888_GrPixelConfig: 331 case kSRGBA_8888_GrPixelConfig:
332 case kSBGRA_8888_GrPixelConfig:
325 return true; 333 return true;
326 default: 334 default:
327 return false; 335 return false;
328 } 336 }
329 } 337 }
330 338
331 // Takes a config and returns the equivalent config with the R and B order 339 // Takes a config and returns the equivalent config with the R and B order
332 // swapped if such a config exists. Otherwise, kUnknown_GrPixelConfig 340 // swapped if such a config exists. Otherwise, kUnknown_GrPixelConfig
333 static inline GrPixelConfig GrPixelConfigSwapRAndB(GrPixelConfig config) { 341 static inline GrPixelConfig GrPixelConfigSwapRAndB(GrPixelConfig config) {
334 switch (config) { 342 switch (config) {
335 case kBGRA_8888_GrPixelConfig: 343 case kBGRA_8888_GrPixelConfig:
336 return kRGBA_8888_GrPixelConfig; 344 return kRGBA_8888_GrPixelConfig;
337 case kRGBA_8888_GrPixelConfig: 345 case kRGBA_8888_GrPixelConfig:
338 return kBGRA_8888_GrPixelConfig; 346 return kBGRA_8888_GrPixelConfig;
347 case kSBGRA_8888_GrPixelConfig:
348 return kSRGBA_8888_GrPixelConfig;
349 case kSRGBA_8888_GrPixelConfig:
350 return kSBGRA_8888_GrPixelConfig;
339 default: 351 default:
340 return kUnknown_GrPixelConfig; 352 return kUnknown_GrPixelConfig;
341 } 353 }
342 } 354 }
343 355
344 static inline size_t GrBytesPerPixel(GrPixelConfig config) { 356 static inline size_t GrBytesPerPixel(GrPixelConfig config) {
345 SkASSERT(!GrPixelConfigIsCompressed(config)); 357 SkASSERT(!GrPixelConfigIsCompressed(config));
346 switch (config) { 358 switch (config) {
347 case kAlpha_8_GrPixelConfig: 359 case kAlpha_8_GrPixelConfig:
348 return 1; 360 return 1;
349 case kRGB_565_GrPixelConfig: 361 case kRGB_565_GrPixelConfig:
350 case kRGBA_4444_GrPixelConfig: 362 case kRGBA_4444_GrPixelConfig:
351 case kAlpha_half_GrPixelConfig: 363 case kAlpha_half_GrPixelConfig:
352 return 2; 364 return 2;
353 case kRGBA_8888_GrPixelConfig: 365 case kRGBA_8888_GrPixelConfig:
354 case kBGRA_8888_GrPixelConfig: 366 case kBGRA_8888_GrPixelConfig:
355 case kSRGBA_8888_GrPixelConfig: 367 case kSRGBA_8888_GrPixelConfig:
368 case kSBGRA_8888_GrPixelConfig:
356 return 4; 369 return 4;
357 case kRGBA_half_GrPixelConfig: 370 case kRGBA_half_GrPixelConfig:
358 return 8; 371 return 8;
359 case kRGBA_float_GrPixelConfig: 372 case kRGBA_float_GrPixelConfig:
360 return 16; 373 return 16;
361 default: 374 default:
362 return 0; 375 return 0;
363 } 376 }
364 } 377 }
365 378
(...skipping 13 matching lines...) Expand all
379 case kLATC_GrPixelConfig: 392 case kLATC_GrPixelConfig:
380 case kASTC_12x12_GrPixelConfig: 393 case kASTC_12x12_GrPixelConfig:
381 case kAlpha_8_GrPixelConfig: 394 case kAlpha_8_GrPixelConfig:
382 case kAlpha_half_GrPixelConfig: 395 case kAlpha_half_GrPixelConfig:
383 return true; 396 return true;
384 default: 397 default:
385 return false; 398 return false;
386 } 399 }
387 } 400 }
388 401
402 static inline bool GrAllowSRGBForDestinationPixelConfig(GrPixelConfig config) {
403 switch (config) {
404 case kRGBA_8888_GrPixelConfig:
405 case kBGRA_8888_GrPixelConfig:
406 return false;
407 default:
408 return true;
409 }
410 }
411
389 /** 412 /**
390 * Optional bitfield flags that can be set on GrSurfaceDesc (below). 413 * Optional bitfield flags that can be set on GrSurfaceDesc (below).
391 */ 414 */
392 enum GrSurfaceFlags { 415 enum GrSurfaceFlags {
393 kNone_GrSurfaceFlags = 0x0, 416 kNone_GrSurfaceFlags = 0x0,
394 /** 417 /**
395 * Creates a texture that can be rendered to as a GrRenderTarget. Use 418 * Creates a texture that can be rendered to as a GrRenderTarget. Use
396 * GrTexture::asRenderTarget() to access. 419 * GrTexture::asRenderTarget() to access.
397 */ 420 */
398 kRenderTarget_GrSurfaceFlag = 0x1, 421 kRenderTarget_GrSurfaceFlag = 0x1,
(...skipping 285 matching lines...) Expand 10 before | Expand all | Expand 10 after
684 return 4 * width * height; 707 return 4 * width * height;
685 } 708 }
686 } 709 }
687 710
688 /** 711 /**
689 * This value translates to reseting all the context state for any backend. 712 * This value translates to reseting all the context state for any backend.
690 */ 713 */
691 static const uint32_t kAll_GrBackendState = 0xffffffff; 714 static const uint32_t kAll_GrBackendState = 0xffffffff;
692 715
693 #endif 716 #endif
OLDNEW
« no previous file with comments | « include/gpu/GrTextureParams.h ('k') | include/gpu/SkGr.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698