OLD | NEW |
1 | 1 |
2 /* | 2 /* |
3 * Copyright 2010 Google Inc. | 3 * Copyright 2010 Google Inc. |
4 * | 4 * |
5 * Use of this source code is governed by a BSD-style license that can be | 5 * Use of this source code is governed by a BSD-style license that can be |
6 * found in the LICENSE file. | 6 * found in the LICENSE file. |
7 */ | 7 */ |
8 | 8 |
9 | 9 |
10 | 10 |
(...skipping 401 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
412 case kLATC_GrPixelConfig: | 412 case kLATC_GrPixelConfig: |
413 case kASTC_12x12_GrPixelConfig: | 413 case kASTC_12x12_GrPixelConfig: |
414 case kAlpha_8_GrPixelConfig: | 414 case kAlpha_8_GrPixelConfig: |
415 return true; | 415 return true; |
416 default: | 416 default: |
417 return false; | 417 return false; |
418 } | 418 } |
419 } | 419 } |
420 | 420 |
421 /** | 421 /** |
422 * Optional bitfield flags that can be passed to createTexture. | 422 * Optional bitfield flags that can be set on GrSurfaceDesc (below). |
423 */ | 423 */ |
424 enum GrTextureFlags { | 424 enum GrSurfaceFlags { |
425 kNone_GrTextureFlags = 0x0, | 425 kNone_GrSurfaceFlags = 0x0, |
426 /** | 426 /** |
427 * Creates a texture that can be rendered to as a GrRenderTarget. Use | 427 * Creates a texture that can be rendered to as a GrRenderTarget. Use |
428 * GrTexture::asRenderTarget() to access. | 428 * GrTexture::asRenderTarget() to access. |
429 */ | 429 */ |
430 kRenderTarget_GrTextureFlagBit = 0x1, | 430 kRenderTarget_GrSurfaceFlag = 0x1, |
431 /** | 431 /** |
432 * By default all render targets have an associated stencil buffer that | 432 * By default all render targets have an associated stencil buffer that |
433 * may be required for path filling. This flag overrides stencil buffer | 433 * may be required for path filling. This flag overrides stencil buffer |
434 * creation. | 434 * creation. |
435 * MAKE THIS PRIVATE? | 435 * MAKE THIS PRIVATE? |
436 */ | 436 */ |
437 kNoStencil_GrTextureFlagBit = 0x2, | 437 kNoStencil_GrSurfaceFlag = 0x2, |
438 /** | |
439 * Hint that the CPU may modify this texture after creation. | |
440 */ | |
441 kDynamicUpdate_GrTextureFlagBit = 0x4, | |
442 /** | 438 /** |
443 * Indicates that all allocations (color buffer, FBO completeness, etc) | 439 * Indicates that all allocations (color buffer, FBO completeness, etc) |
444 * should be verified. | 440 * should be verified. |
445 */ | 441 */ |
446 kCheckAllocation_GrTextureFlagBit = 0x8, | 442 kCheckAllocation_GrSurfaceFlag = 0x4, |
447 }; | 443 }; |
448 | 444 |
449 GR_MAKE_BITFIELD_OPS(GrTextureFlags) | 445 GR_MAKE_BITFIELD_OPS(GrSurfaceFlags) |
| 446 |
| 447 // Legacy aliases |
| 448 typedef GrSurfaceFlags GrTextureFlags; |
| 449 static const GrSurfaceFlags kNone_GrTextureFlags = kNone_GrSurfaceFlags; |
| 450 static const GrSurfaceFlags kRenderTarget_GrTExtureFlagBit = kRenderTarget_GrSur
faceFlag; |
| 451 static const GrSurfaceFlags kNoStencil_GrTextureFlagBit = kNoStencil_GrSurfaceFl
ag; |
| 452 static const GrSurfaceFlags kCheckAllocation_GrTextureFlagBit = kCheckAllocation
_GrSurfaceFlag; |
450 | 453 |
451 /** | 454 /** |
452 * Some textures will be stored such that the upper and left edges of the conten
t meet at the | 455 * Some textures will be stored such that the upper and left edges of the conten
t meet at the |
453 * the origin (in texture coord space) and for other textures the lower and left
edges meet at | 456 * the origin (in texture coord space) and for other textures the lower and left
edges meet at |
454 * the origin. kDefault_GrSurfaceOrigin sets textures to TopLeft, and render tar
gets | 457 * the origin. kDefault_GrSurfaceOrigin sets textures to TopLeft, and render tar
gets |
455 * to BottomLeft. | 458 * to BottomLeft. |
456 */ | 459 */ |
457 | 460 |
458 enum GrSurfaceOrigin { | 461 enum GrSurfaceOrigin { |
459 kDefault_GrSurfaceOrigin, // DEPRECATED; to be removed | 462 kDefault_GrSurfaceOrigin, // DEPRECATED; to be removed |
460 kTopLeft_GrSurfaceOrigin, | 463 kTopLeft_GrSurfaceOrigin, |
461 kBottomLeft_GrSurfaceOrigin, | 464 kBottomLeft_GrSurfaceOrigin, |
462 }; | 465 }; |
463 | 466 |
464 /** | 467 /** |
465 * Describes a texture to be created. | 468 * Describes a surface to be created. |
466 */ | 469 */ |
467 struct GrTextureDesc { | 470 struct GrSurfaceDesc { |
468 GrTextureDesc() | 471 GrSurfaceDesc() |
469 : fFlags(kNone_GrTextureFlags) | 472 : fFlags(kNone_GrSurfaceFlags) |
470 , fOrigin(kDefault_GrSurfaceOrigin) | 473 , fOrigin(kDefault_GrSurfaceOrigin) |
471 , fWidth(0) | 474 , fWidth(0) |
472 , fHeight(0) | 475 , fHeight(0) |
473 , fConfig(kUnknown_GrPixelConfig) | 476 , fConfig(kUnknown_GrPixelConfig) |
474 , fSampleCnt(0) { | 477 , fSampleCnt(0) { |
475 } | 478 } |
476 | 479 |
477 GrTextureFlags fFlags; //!< bitfield of TextureFlags | 480 GrSurfaceFlags fFlags; //!< bitfield of TextureFlags |
478 GrSurfaceOrigin fOrigin; //!< origin of the texture | 481 GrSurfaceOrigin fOrigin; //!< origin of the texture |
479 int fWidth; //!< Width of the texture | 482 int fWidth; //!< Width of the texture |
480 int fHeight; //!< Height of the texture | 483 int fHeight; //!< Height of the texture |
481 | 484 |
482 /** | 485 /** |
483 * Format of source data of the texture. Not guaranteed to be the same as | 486 * Format of source data of the texture. Not guaranteed to be the same as |
484 * internal format used by 3D API. | 487 * internal format used by 3D API. |
485 */ | 488 */ |
486 GrPixelConfig fConfig; | 489 GrPixelConfig fConfig; |
487 | 490 |
488 /** | 491 /** |
489 * The number of samples per pixel or 0 to disable full scene AA. This only | 492 * The number of samples per pixel or 0 to disable full scene AA. This only |
490 * applies if the kRenderTarget_GrTextureFlagBit is set. The actual number | 493 * applies if the kRenderTarget_GrSurfaceFlag is set. The actual number |
491 * of samples may not exactly match the request. The request will be rounded | 494 * of samples may not exactly match the request. The request will be rounded |
492 * up to the next supported sample count, or down if it is larger than the | 495 * up to the next supported sample count, or down if it is larger than the |
493 * max supported count. | 496 * max supported count. |
494 */ | 497 */ |
495 int fSampleCnt; | 498 int fSampleCnt; |
496 }; | 499 }; |
497 | 500 |
| 501 // Legacy alias |
| 502 typedef GrSurfaceDesc GrTextureDesc; |
| 503 |
498 /** | 504 /** |
499 * GrCacheID is used create and find cached GrResources (e.g. GrTextures). The I
D has two parts: | 505 * GrCacheID is used create and find cached GrResources (e.g. GrTextures). The I
D has two parts: |
500 * the domain and the key. Domains simply allow multiple clients to use 0-based
indices as their | 506 * the domain and the key. Domains simply allow multiple clients to use 0-based
indices as their |
501 * cache key without colliding. The key uniquely identifies a GrResource within
the domain. | 507 * cache key without colliding. The key uniquely identifies a GrResource within
the domain. |
502 * Users of the cache must obtain a domain via GenerateDomain(). | 508 * Users of the cache must obtain a domain via GenerateDomain(). |
503 */ | 509 */ |
504 struct GrCacheID { | 510 struct GrCacheID { |
505 public: | 511 public: |
506 typedef uint8_t Domain; | 512 typedef uint8_t Domain; |
507 | 513 |
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
578 * resolves when it reads from the texture. The client can explictly resolve | 584 * resolves when it reads from the texture. The client can explictly resolve |
579 * using the GrRenderTarget interface. | 585 * using the GrRenderTarget interface. |
580 * | 586 * |
581 * Note: These flags currently form a subset of GrTexture's flags. | 587 * Note: These flags currently form a subset of GrTexture's flags. |
582 */ | 588 */ |
583 | 589 |
584 enum GrBackendTextureFlags { | 590 enum GrBackendTextureFlags { |
585 /** | 591 /** |
586 * No flags enabled | 592 * No flags enabled |
587 */ | 593 */ |
588 kNone_GrBackendTextureFlag = kNone_GrTextureFlags, | 594 kNone_GrBackendTextureFlag = 0, |
589 /** | 595 /** |
590 * Indicates that the texture is also a render target, and thus should have | 596 * Indicates that the texture is also a render target, and thus should have |
591 * a GrRenderTarget object. | 597 * a GrRenderTarget object. |
592 * | |
593 * D3D (future): client must have created the texture with flags that allow | |
594 * it to be used as a render target. | |
595 */ | 598 */ |
596 kRenderTarget_GrBackendTextureFlag = kRenderTarget_GrTextureFlagBit, | 599 kRenderTarget_GrBackendTextureFlag = kRenderTarget_GrSurfaceFlag, |
597 }; | 600 }; |
598 GR_MAKE_BITFIELD_OPS(GrBackendTextureFlags) | 601 GR_MAKE_BITFIELD_OPS(GrBackendTextureFlags) |
599 | 602 |
600 struct GrBackendTextureDesc { | 603 struct GrBackendTextureDesc { |
601 GrBackendTextureDesc() { memset(this, 0, sizeof(*this)); } | 604 GrBackendTextureDesc() { memset(this, 0, sizeof(*this)); } |
602 GrBackendTextureFlags fFlags; | 605 GrBackendTextureFlags fFlags; |
603 GrSurfaceOrigin fOrigin; | 606 GrSurfaceOrigin fOrigin; |
604 int fWidth; //<! width in pixels | 607 int fWidth; //<! width in pixels |
605 int fHeight; //<! height in pixels | 608 int fHeight; //<! height in pixels |
606 GrPixelConfig fConfig; //<! color format | 609 GrPixelConfig fConfig; //<! color format |
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
717 public: | 720 public: |
718 GrAutoMalloc() : INHERITED() {} | 721 GrAutoMalloc() : INHERITED() {} |
719 explicit GrAutoMalloc(size_t size) : INHERITED(size) {} | 722 explicit GrAutoMalloc(size_t size) : INHERITED(size) {} |
720 virtual ~GrAutoMalloc() {} | 723 virtual ~GrAutoMalloc() {} |
721 private: | 724 private: |
722 typedef GrAutoMallocBaseType INHERITED; | 725 typedef GrAutoMallocBaseType INHERITED; |
723 }; | 726 }; |
724 | 727 |
725 #undef GrAutoMallocBaseType | 728 #undef GrAutoMallocBaseType |
726 #endif | 729 #endif |
OLD | NEW |