Class Bc1Decoder
- Namespace
- LansMap.Core.TileCodecs.Bc1
Decodes BC1 (DXT1) blocks to RGBA8888 for tests and cache-format migration.
public static class Bc1Decoder
- Inheritance
-
objectBc1Decoder
Remarks
Handles both four-color (opaque) and three-color plus transparent-black modes. Alpha is always 255: this project's encoder never emits alpha.
Fields
BlockBytes
BC1 block size, 8 bytes.
public const int BlockBytes = 8
Field Value
BlockPixels
Texels along one edge of a block, 4.
public const int BlockPixels = 4
Field Value
Methods
Decode(byte[], int, int, int, byte[], int)
Decodes a whole mip level of BC1 blocks to RGBA8888.
public static void Decode(byte[] blocks, int offset, int width, int height, byte[] outRgba, int outOffset)
Parameters
blocksbyte[]Compressed blocks, RequiredBlockBufferBytes(int, int) readable from
offset.offsetintStart of this level in
blocks, in bytes.widthintLevel width in texels, a positive multiple of 4.
heightintLevel height in texels, a positive multiple of 4.
outRgbabyte[]Destination, widthheight4 RGBA8888 bytes row-major from
outOffset.outOffsetintStart write index in
outRgba, in bytes.
DecodeBlock(byte[], int, byte[], int)
Decodes one 4x4 BC1 block to 64 bytes of RGBA8888.
public static void DecodeBlock(byte[] blocks, int offset, byte[] outRgba, int outOffset)
Parameters
blocksbyte[]At least BlockBytes readable from
offset.offsetintStart of this block in
blocks, in bytes.outRgbabyte[]One 4x4 texel block, 64 bytes RGBA8888 row-major from
outOffset.outOffsetintStart write index in
outRgba, in bytes.