MCPcopy Create free account
hub / github.com/TheRealMJP/BakingLab / GetAlphaMode

Function GetAlphaMode

SampleFramework11/v1.02/Graphics/DDSTextureLoader.cpp:1486–1511  ·  view source on GitHub ↗

--------------------------------------------------------------------------------------

Source from the content-addressed store, hash-verified

1484
1485//--------------------------------------------------------------------------------------
1486static 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//--------------------------------------------------------------------------------------

Callers 2

Calls

no outgoing calls

Tested by

no test coverage detected