| 202 | } |
| 203 | |
| 204 | static void WriteAlphaBlock7( int alpha0, int alpha1, u8 const* indices, void* block ) |
| 205 | { |
| 206 | // check the relative values of the endpoints |
| 207 | if( alpha0 < alpha1 ) |
| 208 | { |
| 209 | // swap the indices |
| 210 | u8 swapped[16]; |
| 211 | for( int i = 0; i < 16; ++i ) |
| 212 | { |
| 213 | u8 index = indices[i]; |
| 214 | if( index == 0 ) |
| 215 | swapped[i] = 1; |
| 216 | else if( index == 1 ) |
| 217 | swapped[i] = 0; |
| 218 | else |
| 219 | swapped[i] = 9 - index; |
| 220 | } |
| 221 | |
| 222 | // write the block |
| 223 | WriteAlphaBlock( alpha1, alpha0, swapped, block ); |
| 224 | } |
| 225 | else |
| 226 | { |
| 227 | // write the block |
| 228 | WriteAlphaBlock( alpha0, alpha1, indices, block ); |
| 229 | } |
| 230 | } |
| 231 | |
| 232 | void CompressAlphaDxt5( u8 const* rgba, int mask, void* block ) |
| 233 | { |
no test coverage detected