Matteo Bruni (@Mystral) commented about dlls/d3dx9_36/surface.c:
const POINT pt = { x, y }; if (!is_dst)
fetch_dxt_texel(tmp_pitch, slice_data, x + pixels->unaligned_rect.left,
y + pixels->unaligned_rect.top, ptr);
d3dx_fetch_bcn_texel(&context, x + pixels->unaligned_rect.left, y + pixels->unaligned_rect.top, z, ptr);
I think it's probably better to rework `d3dx_pixels_decompress()` to make use of the bcdec API more naturally, instead of essentially introducing an adapter for bcdec offering the old txc_dxtn interface. I haven't thought it through by any means but I imagine we could iterate block by block, decompressing directly into `uncompressed_mem` if it fits, or into a temporary buffer if we only need a part (and then copy the subset we want).