decodeUniversalBlock function
The sixteen texels of block index, row-major — what the legs with no
structural shortcut start from, and what a test compares against.
Implementation
List<(int, int, int, int)> decodeUniversalBlock(Uint8List blocks, int index) {
final at = index * kUniversalBlockBytes;
final e0 = (blocks[at], blocks[at + 1], blocks[at + 2]);
final e1 = (blocks[at + 3], blocks[at + 4], blocks[at + 5]);
final a0 = blocks[at + _kAlphaHigh];
final a1 = blocks[at + _kAlphaLow];
return <(int, int, int, int)>[
for (var i = 0; i < 16; i++)
_texel(
e0,
e1,
a0,
a1,
_weight(blocks, at + _kColorWeights, i),
_weight(blocks, at + _kAlphaWeights, i),
),
];
}