DDS - очень плохая оболочка для данных DXT (или BTC). Заголовок вам не поможет.
Обычный оригинальный DXT1 не имел никакой альфы. Я считаю, что в настоящее время d3d действительно декодирует DXT1 с помощью альфы. Каждый блок DXT1 выглядит следующим образом: индексы color1 (16 бит), color2 (16 бит) (32 бита). Если 16-битное значение color1 меньше, чем color2 (просто сравнение с uint16, ничего особенного!), У блока нет альфа. В противном случае это так. Итак, чтобы ответить на ваш вопрос: пропустите заголовок, прочитайте 16 бит a, прочитайте 16 бит b, если a> b, то есть альфа. в противном случае пропустите 32 бита и повторите до eof. Другие форматы DXT, такие как DXT5, всегда имеют альфа. Очень редко люди полагаются на альфа-трюк DXT1, потому что некоторые hw (intel ..) не поддерживают его надежно.