Get supported type. We currently support 10 different types.
| 223 | |
| 224 | // Get supported type. We currently support 10 different types. |
| 225 | static DDSType GetType( const DDSHeader & header ) |
| 226 | { |
| 227 | if( header.pf.flags & DDPF_RGB ) { |
| 228 | if( header.pf.flags & DDPF_ALPHAPIXELS ) { |
| 229 | switch( header.pf.bitcount ) { |
| 230 | case 16: |
| 231 | return (header.pf.amask == 0x8000) ? DDS_A1R5G5B5 : DDS_A4R4G4B4; |
| 232 | case 32: |
| 233 | return DDS_A8R8G8B8; |
| 234 | } |
| 235 | } else { |
| 236 | switch( header.pf.bitcount ) { |
| 237 | case 16: |
| 238 | return DDS_R5G6B5; |
| 239 | case 24: |
| 240 | return DDS_R8G8B8; |
| 241 | } |
| 242 | } |
| 243 | } else if( header.pf.flags & DDPF_FOURCC ) { |
| 244 | switch( header.pf.fourcc ) { |
| 245 | case FOURCC_DXT1: |
| 246 | return DDS_DXT1; |
| 247 | case FOURCC_DXT2: |
| 248 | return DDS_DXT2; |
| 249 | case FOURCC_DXT3: |
| 250 | return DDS_DXT3; |
| 251 | case FOURCC_DXT4: |
| 252 | return DDS_DXT4; |
| 253 | case FOURCC_DXT5: |
| 254 | return DDS_DXT5; |
| 255 | case FOURCC_RXGB: |
| 256 | return DDS_RXGB; |
| 257 | case FOURCC_ATI2: |
| 258 | return DDS_ATI2; |
| 259 | } |
| 260 | } |
| 261 | return DDS_UNKNOWN; |
| 262 | } |
| 263 | |
| 264 | static bool HasAlpha( const DDSHeader & header ) |
| 265 | { |
no outgoing calls
no test coverage detected