Crate libktx_rs_sys[][src]

Expand description

A low-level Rust wrapper over KhronosGroup/KTX-Software, a library for reading, transcoding and writing Khronos Textures (KTX).

You very likely want to use the high-level wrapper, [libktx_rs] instead of this crate!

Re-exports

pub use self::ktx_error_code_e as ktxResult;

Structs

__BindgenUnionField
ktxBasisParams

@memberof ktxTexture2 @~English @brief Structure for passing extended parameters to ktxTexture2_CompressBasisEx.

ktxFormatSize

@brief Structure for holding size information for a texture format.

ktxKVListEntry
ktxMem
ktxOrientation

@~English @brief Struct describing the logical orientation of an image.

ktxStream

@~English

ktxStream__bindgen_ty_1
ktxStream__bindgen_ty_1__bindgen_ty_1
ktxTexture

@class ktxTexture @~English @brief Base class representing a texture.

ktxTexture1

@class ktxTexture1 @~English @brief Class representing a KTX version 1 format texture.

ktxTexture1_private

< Private data.

ktxTexture2

@class ktxTexture2 @~English @brief Class representing a KTX version 2 format texture.

ktxTexture2_private

< Private data.

ktxTextureCreateInfo

@memberof ktxTexture @~English @brief Structure for passing texture information to ktxTexture[12]_Create().

ktxTexture_protected

@memberof ktxTexture @~English

ktxTexture_vtbl

@memberof ktxTexture @~English @brief Table of virtual ktxTexture methods.

ktxTexture_vtblInt
ktxTexture_vvtbl

Constants

KTX_ANIMDATA_KEY
KTX_ENDIAN_REF
KTX_ENDIAN_REF_REV
KTX_FALSE
KTX_GL_UNPACK_ALIGNMENT
KTX_HEADER_SIZE
KTX_ORIENTATION1_FMT
KTX_ORIENTATION2_FMT
KTX_ORIENTATION3_FMT
KTX_ORIENTATION_KEY
KTX_SWIZZLE_KEY
KTX_TRUE
KTX_WRITER_KEY
KTX_WRITER_SCPARAMS_KEY
class_id_ktxTexture1_c
class_id_ktxTexture2_c
ktxFormatSizeFlagBits_KTX_FORMAT_SIZE_COMPRESSED_BIT
ktxFormatSizeFlagBits_KTX_FORMAT_SIZE_DEPTH_BIT
ktxFormatSizeFlagBits_KTX_FORMAT_SIZE_PACKED_BIT
ktxFormatSizeFlagBits_KTX_FORMAT_SIZE_PALETTIZED_BIT
ktxFormatSizeFlagBits_KTX_FORMAT_SIZE_STENCIL_BIT
ktxFormatVersionEnum_KTX_FORMAT_VERSION_ONE
ktxFormatVersionEnum_KTX_FORMAT_VERSION_TWO
ktxOrientationX_KTX_ORIENT_X_LEFT
ktxOrientationX_KTX_ORIENT_X_RIGHT
ktxOrientationY_KTX_ORIENT_Y_DOWN
ktxOrientationY_KTX_ORIENT_Y_UP
ktxOrientationZ_KTX_ORIENT_Z_IN
ktxOrientationZ_KTX_ORIENT_Z_OUT
ktxSupercmpScheme_KTX_SS_BASIS_LZ

< Basis LZ supercompression.

ktxSupercmpScheme_KTX_SS_BEGIN_RANGE
ktxSupercmpScheme_KTX_SS_BEGIN_RESERVED
ktxSupercmpScheme_KTX_SS_BEGIN_VENDOR_RANGE
ktxSupercmpScheme_KTX_SS_END_RANGE
ktxSupercmpScheme_KTX_SS_END_VENDOR_RANGE
ktxSupercmpScheme_KTX_SS_NONE

< No supercompression.

ktxSupercmpScheme_KTX_SS_ZSTD

< ZStd supercompression.

ktxSupercmpScheme_KTX_SUPERCOMPRESSION_BASIS
ktxSupercmpScheme_KTX_SUPERCOMPRESSION_ZSTD
ktxTextureCreateFlagBits_KTX_TEXTURE_CREATE_LOAD_IMAGE_DATA_BIT
ktxTextureCreateFlagBits_KTX_TEXTURE_CREATE_NO_FLAGS
ktxTextureCreateFlagBits_KTX_TEXTURE_CREATE_RAW_KVDATA_BIT
ktxTextureCreateFlagBits_KTX_TEXTURE_CREATE_SKIP_KVDATA_BIT
ktxTextureCreateStorageEnum_KTX_TEXTURE_CREATE_ALLOC_STORAGE

< Allocate image storage.

ktxTextureCreateStorageEnum_KTX_TEXTURE_CREATE_NO_STORAGE

< Don’t allocate any image storage.

ktx_error_code_e_KTX_ERROR_MAX_ENUM

< For safety checks.

ktx_error_code_e_KTX_FILE_DATA_ERROR

< The data in the file is inconsistent with the spec.

ktx_error_code_e_KTX_FILE_ISPIPE

< The file is a pipe or named pipe.

ktx_error_code_e_KTX_FILE_OPEN_FAILED

< The target file could not be opened.

ktx_error_code_e_KTX_FILE_OVERFLOW

< The operation would exceed the max file size.

ktx_error_code_e_KTX_FILE_READ_ERROR

< An error occurred while reading from the file.

ktx_error_code_e_KTX_FILE_SEEK_ERROR

< An error occurred while seeking in the file.

ktx_error_code_e_KTX_FILE_UNEXPECTED_EOF

< File does not have enough data to satisfy request.

ktx_error_code_e_KTX_FILE_WRITE_ERROR

< An error occurred while writing to the file.

ktx_error_code_e_KTX_GL_ERROR

< GL operations resulted in an error.

ktx_error_code_e_KTX_INVALID_OPERATION

< The operation is not allowed in the current state.

ktx_error_code_e_KTX_INVALID_VALUE

< A parameter value was not valid

ktx_error_code_e_KTX_LIBRARY_NOT_LINKED

< Library dependency (OpenGL or Vulkan) not linked into application.

ktx_error_code_e_KTX_NOT_FOUND

< Requested key was not found

ktx_error_code_e_KTX_OUT_OF_MEMORY

< Not enough memory to complete the operation.

ktx_error_code_e_KTX_SUCCESS

< Operation was successful.

ktx_error_code_e_KTX_TRANSCODE_FAILED

< Transcoding of block compressed texture failed.

ktx_error_code_e_KTX_UNKNOWN_FILE_FORMAT

< The file not a KTX file

ktx_error_code_e_KTX_UNSUPPORTED_FEATURE

< Feature not included in in-use library or not yet implemented.

ktx_error_code_e_KTX_UNSUPPORTED_TEXTURE_TYPE

< The KTX file specifies an unsupported texture type.

ktx_pack_uastc_flag_bits_e_KTX_PACK_UASTC_ETC1_FASTER_HINTS
ktx_pack_uastc_flag_bits_e_KTX_PACK_UASTC_ETC1_FASTEST_HINTS
ktx_pack_uastc_flag_bits_e_KTX_PACK_UASTC_FAVOR_BC7_ERROR
ktx_pack_uastc_flag_bits_e_KTX_PACK_UASTC_FAVOR_UASTC_ERROR
ktx_pack_uastc_flag_bits_e_KTX_PACK_UASTC_LEVEL_DEFAULT
ktx_pack_uastc_flag_bits_e_KTX_PACK_UASTC_LEVEL_FASTER
ktx_pack_uastc_flag_bits_e_KTX_PACK_UASTC_LEVEL_FASTEST
ktx_pack_uastc_flag_bits_e_KTX_PACK_UASTC_LEVEL_MASK
ktx_pack_uastc_flag_bits_e_KTX_PACK_UASTC_LEVEL_SLOWER
ktx_pack_uastc_flag_bits_e_KTX_PACK_UASTC_LEVEL_VERYSLOW
ktx_pack_uastc_flag_bits_e_KTX_PACK_UASTC_MAX_LEVEL
ktx_pack_uastc_flag_bits_e_KTX_PACK_UASTC__ETC1_DISABLE_FLIP_AND_INDIVIDUAL
ktx_transcode_flag_bits_e_KTX_TF_HIGH_QUALITY
ktx_transcode_flag_bits_e_KTX_TF_PVRTC_DECODE_TO_NEXT_POW2
ktx_transcode_flag_bits_e_KTX_TF_TRANSCODE_ALPHA_DATA_TO_OPAQUE_FORMATS
ktx_transcode_fmt_e_KTX_TF_BC1
ktx_transcode_fmt_e_KTX_TF_BC3
ktx_transcode_fmt_e_KTX_TF_BC4
ktx_transcode_fmt_e_KTX_TF_BC5
ktx_transcode_fmt_e_KTX_TF_BC7_M6_OPAQUE_ONLY
ktx_transcode_fmt_e_KTX_TF_ETC1

Old enums for compatibility with code compiled against previous versions of libktx.

ktx_transcode_fmt_e_KTX_TF_ETC2
ktx_transcode_fmt_e_KTX_TF_PVRTC1_4_OPAQUE_ONLY
ktx_transcode_fmt_e_KTX_TTF_ASTC_4x4_RGBA

ASTC (mobile, Intel devices, hopefully all desktop GPU’s one day)

ktx_transcode_fmt_e_KTX_TTF_BC1_OR_3
ktx_transcode_fmt_e_KTX_TTF_BC1_RGB

BC1-5, BC7 (desktop, some mobile devices)

ktx_transcode_fmt_e_KTX_TTF_BC3_RGBA
ktx_transcode_fmt_e_KTX_TTF_BC4_R
ktx_transcode_fmt_e_KTX_TTF_BC5_RG
ktx_transcode_fmt_e_KTX_TTF_BC7_M5_RGBA
ktx_transcode_fmt_e_KTX_TTF_BC7_M6_RGB
ktx_transcode_fmt_e_KTX_TTF_BC7_RGBA
ktx_transcode_fmt_e_KTX_TTF_BGR565
ktx_transcode_fmt_e_KTX_TTF_ETC

Values for automatic selection of RGB or RGBA depending if alpha present.

ktx_transcode_fmt_e_KTX_TTF_ETC1_RGB

ETC1-2

ktx_transcode_fmt_e_KTX_TTF_ETC2_EAC_R11
ktx_transcode_fmt_e_KTX_TTF_ETC2_EAC_RG11
ktx_transcode_fmt_e_KTX_TTF_ETC2_RGBA
ktx_transcode_fmt_e_KTX_TTF_NOSELECTION
ktx_transcode_fmt_e_KTX_TTF_PVRTC1_4_RGB

PVRTC1 4bpp (mobile, PowerVR devices)

ktx_transcode_fmt_e_KTX_TTF_PVRTC1_4_RGBA
ktx_transcode_fmt_e_KTX_TTF_PVRTC2_4_RGB

ATC and FXT1 formats are not supported by KTX2 as there are no equivalent VkFormats.

ktx_transcode_fmt_e_KTX_TTF_PVRTC2_4_RGBA
ktx_transcode_fmt_e_KTX_TTF_RGB565
ktx_transcode_fmt_e_KTX_TTF_RGBA32

Uncompressed (raw pixel) formats

ktx_transcode_fmt_e_KTX_TTF_RGBA4444
streamType_eStreamTypeCustom
streamType_eStreamTypeFile
streamType_eStreamTypeMemory

Statics

KTX_ETC1S_DEFAULT_COMPRESSION_LEVEL

Functions

ktxErrorString

Returns a string corresponding to a KTX error code.

ktxFormatSize_initFromDfd
ktxHashListEntry_GetKey

Get the key from a ktxHashListEntry

ktxHashListEntry_GetValue

Get the value from a ktxHashListEntry

ktxHashList_AddKVPair

Adds a key-value pair to a hash list.

ktxHashList_Construct
ktxHashList_ConstructCopy
ktxHashList_Create
ktxHashList_CreateCopy
ktxHashList_DeleteEntry

Deletes a ktxHashListEntry from a ktxHashList.

ktxHashList_DeleteKVPair

Finds the entry for a key in a ktxHashList and deletes it.

ktxHashList_Deserialize

Creates a hash table from the serialized data read from a a KTX file.

ktxHashList_Destroy
ktxHashList_Destruct
ktxHashList_FindEntry

Looks up a key and returns the ktxHashListEntry.

ktxHashList_FindValue

Looks up a key and returns the value.

ktxHashList_Next

Return the next entry in a ktxHashList.

ktxHashList_Serialize

Serializes a ktxHashList to a block of memory suitable for writing to a KTX file.

ktxHashList_Sort

Sorts a ktxHashList into order of the key codepoints.

ktxPrintInfoForMemory
ktxPrintInfoForNamedFile
ktxPrintInfoForStdioStream

===========================================================* Utilities for printing info about a KTX file. *

ktxSupercompressionSchemeString

Returns a string corresponding to a supercompression scheme.

ktxTexture1_Create

Create a new ktxTexture1.

ktxTexture1_CreateFromMemory
ktxTexture1_CreateFromNamedFile
ktxTexture1_CreateFromStdioStream

These four create a ktxTexture1 provided the data is in KTX format.

ktxTexture1_CreateFromStream
ktxTexture1_NeedsTranscoding
ktxTexture1_WriteKTX2ToMemory

Write a ktxTexture object to a block of memory in KTX format.

ktxTexture1_WriteKTX2ToNamedFile

Write a ktxTexture object to a named file in KTX format.

ktxTexture1_WriteKTX2ToStdioStream

Write a ktxTexture object to a stdio stream in KTX format.

ktxTexture1_WriteKTX2ToStream

Write a ktxTexture object to a ktxStream in KTX format.

ktxTexture2_CompressBasis
ktxTexture2_CompressBasisEx
ktxTexture2_Create

Create a new ktxTexture2.

ktxTexture2_CreateCopy

Create a new ktxTexture2 as a copy of an existing texture.

ktxTexture2_CreateFromMemory
ktxTexture2_CreateFromNamedFile
ktxTexture2_CreateFromStdioStream

These four create a ktxTexture2 provided the data is in KTX2 format.

ktxTexture2_CreateFromStream
ktxTexture2_DeflateZstd
ktxTexture2_GetComponentInfo
ktxTexture2_GetNumComponents
ktxTexture2_GetOETF
ktxTexture2_GetPremultipliedAlpha
ktxTexture2_NeedsTranscoding
ktxTexture2_TranscodeBasis
ktxTexture_CreateFromMemory
ktxTexture_CreateFromNamedFile
ktxTexture_CreateFromStdioStream

These four create a ktxTexture1 or ktxTexture2 according to the data header, and return a pointer to the base ktxTexture class.

ktxTexture_CreateFromStream
ktxTexture_GLUpload

Uploads a texture to OpenGL {,ES}.

ktxTexture_GetData

Returns a pointer to the image data of a ktxTexture object.

ktxTexture_GetDataSize

Returns the size of all the image data of a ktxTexture object in bytes.

ktxTexture_GetElementSize

Return the element size of the texture’s images.

ktxTexture_GetRowPitch

Returns the pitch of a row of an image at the specified level. Similar to the rowPitch in a VkSubResourceLayout.

ktxTexture_IterateLevelFaces

Iterate over the levels or faces in a ktxTexture object.

ktxTexture_calcDataSizeTexture
ktxTexture_calcImageSize
ktxTexture_calcLevelSize
ktxTexture_construct
ktxTexture_constructFromStream
ktxTexture_destruct
ktxTexture_doCalcFaceLodSize
ktxTexture_isActiveStream
ktxTexture_iterateLoadedImages
ktxTexture_iterateSourceImages
ktxTexture_layerSize
ktxTexture_rowInfo
ktxTranscodeFormatString

Returns a string corresponding to a transcode target format.

Type Definitions

FILE
GLenum
GLuint
PFNCALCDATASIZELEVELS
PFNCALCFACELODSIZE
PFNCALCLEVELOFFSET
PFNKTEXDESTROY

Don’t use KTX_APIENTRYP to avoid a Doxygen bug.

PFNKTEXGETDATASIZEUNCOMPRESSED
PFNKTEXGETIMAGEOFFSET
PFNKTEXGETIMAGESIZE
PFNKTEXITERATELEVELS
PFNKTEXITERATELOADLEVELFACES
PFNKTEXLOADIMAGEDATA
PFNKTEXNEEDSTRANSCODING
PFNKTEXSETIMAGEFROMMEMORY
PFNKTEXSETIMAGEFROMSTDIOSTREAM
PFNKTEXWRITETOMEMORY
PFNKTEXWRITETONAMEDFILE
PFNKTEXWRITETOSTDIOSTREAM
PFNKTEXWRITETOSTREAM
PFNKTXITERCB

@memberof ktxTexture @~English @brief Signature of function called by the ktxTexture_Iterate* functions to receive image data.

__int16_t
__int32_t
__int64_t
__off_t
__uint16_t
__uint32_t
__uint64_t
class_id
ktxFormatSizeFlagBits
ktxFormatSizeFlags
ktxFormatVersionEnum
ktxHashList

@class ktxHashList @~English @brief Opaque handle to a ktxHashList.

ktxHashListEntry

@class ktxHashListEntry @~English @brief Opaque handle to an entry in a @ref ktxHashList.

ktxOrientationX
ktxOrientationY
ktxOrientationZ
ktxStream__custom_ptr
ktxStream__data
ktxStream_destruct

@~English @brief Destruct a stream

ktxStream_getpos

@~English @brief type for a pointer to a stream position query function

ktxStream_getsize

@~English @brief type for a pointer to a stream size query function

ktxStream_read

@~English @brief type for a pointer to a stream reading function

ktxStream_setpos

@~English @brief type for a pointer to a stream position query function

ktxStream_skip

@~English @brief type for a pointer to a stream skipping function

ktxStream_write

@~English @brief type for a pointer to a stream reading function

ktxSupercmpScheme

@~English @brief Enumerators identifying the supercompression scheme.

ktxTextureCreateFlagBits

@memberof ktxTexture @~English @brief Flags for requesting services during creation.

ktxTextureCreateFlags

@memberof ktxTexture @~English @brief Type for TextureCreateFlags parameters.

ktxTextureCreateStorageEnum

@memberof ktxTexture @~English @brief Enum for requesting, or not, allocation of storage for images.

ktx_bool_t
ktx_error_code_e

@~English @brief Error codes returned by library functions.

ktx_int16_t
ktx_int32_t
ktx_int64_t
ktx_off_t
ktx_pack_uastc_flag_bits_e

@~English @brief Flags specifiying UASTC encoding options.

ktx_pack_uastc_flags
ktx_size_t
ktx_transcode_flag_bits_e

@~English @brief Flags guiding transcoding of Basis Universal compressed textures.

ktx_transcode_flags
ktx_transcode_fmt_e

@~English @brief Enumerators for specifying the transcode target format.

ktx_uint8_t

To avoid including <KHR/khrplatform.h> define our own types.

ktx_uint16_t
ktx_uint32_t
ktx_uint32_t_SIZE_ASSERT

This will cause compilation to fail if size of uint32 != 4.

ktx_uint64_t
off_t
size_t
streamType