--------------------------------------------------------------------------------------
| 1484 | |
| 1485 | //-------------------------------------------------------------------------------------- |
| 1486 | static DDS_ALPHA_MODE GetAlphaMode( _In_ const DDS_HEADER* header ) |
| 1487 | { |
| 1488 | if ( header->ddspf.flags & DDS_FOURCC ) |
| 1489 | { |
| 1490 | if ( MAKEFOURCC( 'D', 'X', '1', '0' ) == header->ddspf.fourCC ) |
| 1491 | { |
| 1492 | auto d3d10ext = reinterpret_cast<const DDS_HEADER_DXT10*>( (const char*)header + sizeof(DDS_HEADER) ); |
| 1493 | auto mode = static_cast<DDS_ALPHA_MODE>( d3d10ext->miscFlags2 & DDS_MISC_FLAGS2_ALPHA_MODE_MASK ); |
| 1494 | switch( mode ) |
| 1495 | { |
| 1496 | case DDS_ALPHA_MODE_STRAIGHT: |
| 1497 | case DDS_ALPHA_MODE_PREMULTIPLIED: |
| 1498 | case DDS_ALPHA_MODE_OPAQUE: |
| 1499 | case DDS_ALPHA_MODE_CUSTOM: |
| 1500 | return mode; |
| 1501 | } |
| 1502 | } |
| 1503 | else if ( ( MAKEFOURCC( 'D', 'X', 'T', '2' ) == header->ddspf.fourCC ) |
| 1504 | || ( MAKEFOURCC( 'D', 'X', 'T', '4' ) == header->ddspf.fourCC ) ) |
| 1505 | { |
| 1506 | return DDS_ALPHA_MODE_PREMULTIPLIED; |
| 1507 | } |
| 1508 | } |
| 1509 | |
| 1510 | return DDS_ALPHA_MODE_UNKNOWN; |
| 1511 | } |
| 1512 | |
| 1513 | |
| 1514 | //-------------------------------------------------------------------------------------- |
no outgoing calls
no test coverage detected