Table of Contents

Class Etc2Decoder

Decodes ETC1 individual-mode blocks (the subset Etc2Encoder emits) to RGBA8888 for tests and cache-format migration.

public static class Etc2Decoder
Inheritance
object
Etc2Decoder

Remarks

Differential mode and the T/H/planar ETC2 modes are never written by this project's encoder, so this decoder only inverts individual mode. Alpha is always 255.

Fields

BlockBytes

ETC2 RGB block size, 8 bytes.

public const int BlockBytes = 8

Field Value

int

BlockPixels

Texels along one edge of a block, 4.

public const int BlockPixels = 4

Field Value

int

Methods

Decode(byte[], int, int, int, byte[], int)

Decodes a whole mip level of ETC2 individual-mode blocks to RGBA8888.

public static void Decode(byte[] blocks, int offset, int width, int height, byte[] outRgba, int outOffset)

Parameters

blocks byte[]

Compressed blocks, RequiredBlockBufferBytes(int, int) readable from offset.

offset int

Start of this level in blocks, in bytes.

width int

Level width in texels, a positive multiple of 4.

height int

Level height in texels, a positive multiple of 4.

outRgba byte[]

Destination, widthheight4 RGBA8888 bytes row-major from outOffset.

outOffset int

Start write index in outRgba, in bytes.

DecodeBlock(byte[], int, byte[], int)

Decodes one 4x4 ETC2 individual-mode block to 64 bytes of RGBA8888.

public static void DecodeBlock(byte[] blocks, int offset, byte[] outRgba, int outOffset)

Parameters

blocks byte[]

At least BlockBytes readable from offset.

offset int

Start of this block in blocks, in bytes.

outRgba byte[]

One 4x4 texel block, 64 bytes RGBA8888 row-major from outOffset.

outOffset int

Start write index in outRgba, in bytes.