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