private void UnpackDXTAlpha( DXTExplicitAlphaBlock block, ColorEx[] pCol ) { // Note - we assume all values have already been endian swapped int colorIndex = 0; // This is an explicit alpha block, 4 bits per pixel, LSB first for (int row = 0; row < 4; ++row) { for (int x = 0; x < 4; ++x) { // Shift and mask off to 4 bits int val = (block.AlphaRow[row] >> (x * 4) & 0xF); // Convert to [0,1] pCol[colorIndex++].a = (Real)val / 0xF; } } }