ETC1
open class ETC1
kotlin.Any | |
↳ | android.opengl.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
Parameters | |
---|---|
header |
Buffer!: native order direct buffer of the header. |
width |
Int: the width of the image in pixels. |
height |
Int: the height of the image in pixels. |
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. |