Added in API level 8

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

Public methods
open static Unit
decodeBlock(in: Buffer!, out: Buffer!)

Decode a block of pixels.

open static Unit
decodeImage(in: Buffer!, out: Buffer!, width: Int, height: Int, pixelSize: Int, stride: Int)

Decode an entire image.

open static Unit
encodeBlock(in: Buffer!, validPixelMask: Int, out: Buffer!)

Encode a block of pixels.

open static Unit
encodeImage(in: Buffer!, width: Int, height: Int, pixelSize: Int, stride: Int, out: Buffer!)

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
getHeight(header: Buffer!)

Read the image height from a PKM header

open static Int
getWidth(header: Buffer!)

Read the image width from a PKM header

open static Boolean
isValid(header: Buffer!)

Check if a PKM header is correctly formatted.

Constants

DECODED_BLOCK_SIZE

Added in API level 8
static val DECODED_BLOCK_SIZE: Int

Size in bytes of a decoded block.

Value: 48

ENCODED_BLOCK_SIZE

Added in API level 8
static val ENCODED_BLOCK_SIZE: Int

Size in bytes of an encoded block.

Value: 8

ETC1_RGB8_OES

Added in API level 8
static val ETC1_RGB8_OES: Int

Accepted by the internalformat parameter of glCompressedTexImage2D.

Value: 36196

ETC_PKM_HEADER_SIZE

Added in API level 8
static val ETC_PKM_HEADER_SIZE: Int

Size of a PKM file header, in bytes.

Value: 16

Public constructors

ETC1

ETC1()

Public methods

decodeBlock

Added in API level 8
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

Added in API level 8
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

Added in API level 8
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

Added in API level 8
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

Added in API level 8
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

Added in API level 8
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

Added in API level 8
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

Added in API level 8
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

Added in API level 8
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.