ETC1
Stay organized with collections
Save and categorize content based on your preferences.
open class ETC1
Methods for encoding and decoding ETC1 textures.
The standard for the ETC1 texture format can be found at http://www.khronos.org/registry/gles/extensions/OES/OES_compressed_ETC1_RGB8_texture.txt
The PKM file format is of a 16-byte header that describes the image bounds followed by the encoded ETC1 texture data.
Summary
Constants | |
---|---|
static Int |
Size in bytes of a decoded block. |
static Int |
Size in bytes of an encoded block. |
static Int |
Accepted by the internalformat parameter of glCompressedTexImage2D. |
static Int |
Size of a PKM file header, in bytes. |
Public constructors | |
---|---|
ETC1() |
Public methods | |
---|---|
open static Unit |
decodeBlock(in: Buffer!, out: Buffer!) Decode a block of pixels. |
open static Unit |
Decode an entire image. |
open static Unit |
encodeBlock(in: Buffer!, validPixelMask: Int, out: Buffer!) Encode a block of pixels. |
open static Unit |
Encode an entire image. |
open static Unit |
formatHeader(header: Buffer!, width: Int, height: Int) Format a PKM header |
open static Int |
getEncodedDataSize(width: Int, height: Int) Return the size of the encoded image data (does not include size of PKM header). |
open static Int |
Read the image height from a PKM header |
open static Int |
Read the image width from a PKM header |
open static Boolean |
Check if a PKM header is correctly formatted. |
Constants
DECODED_BLOCK_SIZE
static val DECODED_BLOCK_SIZE: Int
Size in bytes of a decoded block.
Value: 48
ENCODED_BLOCK_SIZE
static val ENCODED_BLOCK_SIZE: Int
Size in bytes of an encoded block.
Value: 8
ETC1_RGB8_OES
static val ETC1_RGB8_OES: Int
Accepted by the internalformat parameter of glCompressedTexImage2D.
Value: 36196
ETC_PKM_HEADER_SIZE
static val ETC_PKM_HEADER_SIZE: Int
Size of a PKM file header, in bytes.
Value: 16
Public constructors
ETC1
ETC1()
Public methods
decodeBlock
open static fun decodeBlock(
in: Buffer!,
out: Buffer!
): Unit
Decode a block of pixels.
Parameters | |
---|---|
in |
Buffer!: a native order direct buffer of size ENCODED_BLOCK_SIZE that contains the ETC1 compressed version of the data. |
out |
Buffer!: a native order direct buffer of size DECODED_BLOCK_SIZE that will receive the decoded data. The data represents a 4 x 4 square of 3-byte pixels in form R, G, B. Byte (3 * (x + 4 * y) is the R value of pixel (x, y). |
decodeImage
open static fun decodeImage(
in: Buffer!,
out: Buffer!,
width: Int,
height: Int,
pixelSize: Int,
stride: Int
): Unit
Decode an entire image.
Parameters | |
---|---|
in |
Buffer!: native order direct buffer of the encoded data. |
out |
Buffer!: native order direct buffer of the image data. Will be written such that pixel (x,y) is at pIn + pixelSize * x + stride * y. Must be large enough to store entire image. |
pixelSize |
Int: must be 2 or 3. 2 is an GL_UNSIGNED_SHORT_5_6_5 image, 3 is a GL_BYTE RGB image. |
encodeBlock
open static fun encodeBlock(
in: Buffer!,
validPixelMask: Int,
out: Buffer!
): Unit
Encode a block of pixels.
Parameters | |
---|---|
in |
Buffer!: a native order direct buffer of size DECODED_BLOCK_SIZE that represent a 4 x 4 square of 3-byte pixels in form R, G, B. Byte (3 * (x + 4 * y) is the R value of pixel (x, y). |
validPixelMask |
Int: is a 16-bit mask where bit (1 << (x + y * 4)) indicates whether the corresponding (x,y) pixel is valid. Invalid pixel color values are ignored when compressing. |
out |
Buffer!: a native order direct buffer of size ENCODED_BLOCK_SIZE that receives the ETC1 compressed version of the data. |
encodeImage
open static fun encodeImage(
in: Buffer!,
width: Int,
height: Int,
pixelSize: Int,
stride: Int,
out: Buffer!
): Unit
Encode an entire image.
Parameters | |
---|---|
in |
Buffer!: a native order direct buffer of the image data. Formatted such that pixel (x,y) is at pIn + pixelSize * x + stride * y; |
out |
Buffer!: a native order direct buffer of the encoded data. Must be large enough to store entire encoded image. |
pixelSize |
Int: must be 2 or 3. 2 is an GL_UNSIGNED_SHORT_5_6_5 image, 3 is a GL_BYTE RGB image. |
formatHeader
open static fun formatHeader(
header: Buffer!,
width: Int,
height: Int
): Unit
Format a PKM header
getEncodedDataSize
open static fun getEncodedDataSize(
width: Int,
height: Int
): Int
Return the size of the encoded image data (does not include size of PKM header).
getHeight
open static fun getHeight(header: Buffer!): Int
Read the image height from a PKM header
Parameters | |
---|---|
header |
Buffer!: native order direct buffer of the header. |
getWidth
open static fun getWidth(header: Buffer!): Int
Read the image width from a PKM header
Parameters | |
---|---|
header |
Buffer!: native order direct buffer of the header. |
isValid
open static fun isValid(header: Buffer!): Boolean
Check if a PKM header is correctly formatted.
Parameters | |
---|---|
header |
Buffer!: native order direct buffer of the header. |