Class representing a texture. More...
#include <ktx.h>
Public Types | |
| enum | ktxTextureCreateStorageEnum |
| Enum for requesting, or not, allocation of storage for images. More... | |
| enum | ktxTextureCreateFlagBits |
| Flags for requesting services during creation. More... | |
| typedef ktx_uint32_t | ktxTextureCreateFlags |
| Type for TextureCreateFlags parameters. More... | |
| typedef KTX_error_code(KTXAPIENTRY * | PFNKTXITERCB) (int miplevel, int face, int width, int height, int depth, ktx_uint32_t faceLodSize, void *pixels, void *userdata) |
Signature of function called by the ktxTexture_Iterate* functions to receive image data. More... | |
Public Member Functions | |
| KTX_error_code | ktxTexture_GLUpload (ktxTexture *This, GLuint *pTexture, GLenum *pTarget, GLenum *pGlerror) |
| Create a GL texture object from a ktxTexture object. More... | |
| KTX_error_code | ktxTexture_Create (ktxTextureCreateInfo *createInfo, ktxTextureCreateStorageEnum storageAllocation, ktxTexture **newTex) |
| Create a new empty ktxTexture. More... | |
| KTX_error_code | ktxTexture_CreateFromStdioStream (FILE *stdioStream, ktxTextureCreateFlags createFlags, ktxTexture **newTex) |
| Create a ktxTexture from a stdio stream reading from a KTX source. More... | |
| KTX_error_code | ktxTexture_CreateFromNamedFile (const char *const filename, ktxTextureCreateFlags createFlags, ktxTexture **newTex) |
| Create a ktxTexture from a named KTX file. More... | |
| KTX_error_code | ktxTexture_CreateFromMemory (const ktx_uint8_t *bytes, ktx_size_t size, ktxTextureCreateFlags createFlags, ktxTexture **newTex) |
| Create a ktxTexture from KTX-formatted data in memory. More... | |
| void | ktxTexture_Destroy (ktxTexture *This) |
| Destroy a ktxTexture object. More... | |
| ktx_uint8_t * | ktxTexture_GetData (ktxTexture *This) |
| Return a pointer to the texture image data. More... | |
| ktx_size_t | ktxTexture_GetSize (ktxTexture *This) |
| Return the size of the texture image data in bytes. More... | |
| KTX_error_code | ktxTexture_LoadImageData (ktxTexture *This, ktx_uint8_t *pBuffer, ktx_size_t bufSize) |
| Load all the image data from the ktxTexture's source. More... | |
| KTX_error_code | ktxTexture_IterateLevelFaces (ktxTexture *This, PFNKTXITERCB iterCb, void *userdata) |
| Iterate over the images in a ktxTexture object. More... | |
| KTX_error_code | ktxTexture_IterateLoadLevelFaces (ktxTexture *This, PFNKTXITERCB iterCb, void *userdata) |
| Iterate over the images in a ktxTexture object while loading the image data. More... | |
| KTX_error_code | ktxTexture_IterateLevels (ktxTexture *This, PFNKTXITERCB iterCb, void *userdata) |
| Iterate over the mip levels in a ktxTexture object. More... | |
| KTX_error_code | ktxTexture_GetImageOffset (ktxTexture *This, ktx_uint32_t level, ktx_uint32_t layer, ktx_uint32_t faceSlice, ktx_size_t *pOffset) |
| Find the offset of an image within a ktxTexture's image data. More... | |
| KTX_error_code | ktxTexture_VkUploadEx (ktxTexture *This, ktxVulkanDeviceInfo *vdi, ktxVulkanTexture *vkTexture, VkImageTiling tiling, VkImageUsageFlags usageFlags, VkImageLayout finalLayout) |
| Create a Vulkan image object from a ktxTexture object. More... | |
| KTX_error_code | ktxTexture_VkUpload (ktxTexture *texture, ktxVulkanDeviceInfo *vdi, ktxVulkanTexture *vkTexture) |
| Create a Vulkan image object from a ktxTexture object. More... | |
| VkFormat | ktxTexture_GetVkFormat (ktxTexture *This) |
| Return the VkFormat enum of a ktxTexture object. More... | |
| KTX_error_code | ktxTexture_SetImageFromStdioStream (ktxTexture *This, ktx_uint32_t level, ktx_uint32_t layer, ktx_uint32_t faceSlice, FILE *src, ktx_size_t srcSize) |
| Set image for level, layer, faceSlice from a stdio stream source. More... | |
| KTX_error_code | ktxTexture_SetImageFromMemory (ktxTexture *This, ktx_uint32_t level, ktx_uint32_t layer, ktx_uint32_t faceSlice, const ktx_uint8_t *src, ktx_size_t srcSize) |
| Set image for level, layer, faceSlice from an image in memory. More... | |
| KTX_error_code | ktxTexture_WriteToStdioStream (ktxTexture *This, FILE *dstsstr) |
| Write a ktxTexture object to a stdio stream in KTX format. More... | |
| KTX_error_code | ktxTexture_WriteToNamedFile (ktxTexture *This, const char *const dstname) |
| Write a ktxTexture object to a named file in KTX format. More... | |
| KTX_error_code | ktxTexture_WriteToMemory (ktxTexture *This, ktx_uint8_t **ppDstBytes, ktx_size_t *pSize) |
| Write a ktxTexture object to block of memory in KTX format. More... | |
Data Fields | |
| ktx_uint32_t | glFormat |
| ktx_uint32_t | glInternalformat |
| ktx_uint32_t | glBaseInternalformat |
| ktx_uint32_t | glType |
| ktx_bool_t | isArray |
| ktx_bool_t | isCubemap |
| ktx_bool_t | isCompressed |
| ktx_bool_t | generateMipmaps |
| ktx_uint32_t | baseWidth |
| ktx_uint32_t | baseHeight |
| ktx_uint32_t | baseDepth |
| ktx_uint32_t | numDimensions |
| ktx_uint32_t | numLevels |
| ktx_uint32_t | numLayers |
| ktx_uint32_t | numFaces |
| ktxHashList | kvDataHead |
| ktx_uint32_t | kvDataLen |
| ktx_uint8_t * | kvData |
| ktx_size_t | dataSize |
| ktx_uint8_t * | pData |
Class representing a texture.
ktxTextures should be created only by one of the ktxTexture_Create* functions and these fields should be considered read-only.
| typedef ktx_uint32_t ktxTextureCreateFlags |
Type for TextureCreateFlags parameters.
| typedef KTX_error_code(KTXAPIENTRY* PFNKTXITERCB) (int miplevel, int face, int width, int height, int depth, ktx_uint32_t faceLodSize, void *pixels, void *userdata) |
Signature of function called by the ktxTexture_Iterate* functions to receive image data.
The function parameters are used to pass values which change for each image. Obtain values which are uniform across all images from the ktxTexture object.
| [in] | miplevel | MIP level from 0 to the max level which is dependent on the texture size. |
| [in] | face | usually 0; for cube maps and cube map arrays, one of the 6 cube faces in the order +X, -X, +Y, -Y, +Z, -Z. |
| [in] | width | width of the image. |
| [in] | height | height of the image or, for 1D textures textures, 1. |
| [in] | depth | depth of the image or, for 1D & 2D textures, 1. |
| [in] | faceLodSize | number of bytes of data pointed at by pixels. |
| [in] | pixels | pointer to the image data. |
| [in,out] | userdata | pointer for the application to pass data to and from the callback function. |
Flags for requesting services during creation.
Enum for requesting, or not, allocation of storage for images.
| ktx_uint32_t ktxTexture::baseDepth |
Depth of the base level of the texture.
| ktx_uint32_t ktxTexture::baseHeight |
Height of the base level of the texture.
| ktx_uint32_t ktxTexture::baseWidth |
Width of the base level of the texture.
| ktx_size_t ktxTexture::dataSize |
Length of the image data in bytes.
| ktx_bool_t ktxTexture::generateMipmaps |
KTX_TRUE if mipmaps should be generated for the texture by ktxTexture_GLUpload() or ktx_Texture_VkUpload().
| ktx_uint32_t ktxTexture::glBaseInternalformat |
Base format of the texture data, e.g., GL_RGB.
| ktx_uint32_t ktxTexture::glFormat |
Format of the texture data, e.g., GL_RGB.
| ktx_uint32_t ktxTexture::glInternalformat |
Internal format of the texture data, e.g., GL_RGB8.
| ktx_uint32_t ktxTexture::glType |
Type of the texture data, e.g, GL_UNSIGNED_BYTE.
| ktx_bool_t ktxTexture::isArray |
KTX_TRUE if the texture is an array texture.
| ktx_bool_t ktxTexture::isCompressed |
KTX_TRUE if glInternalFormat is that of a compressed texture.
| ktx_bool_t ktxTexture::isCubemap |
KTX_TRUE if the texture is a cubemap/
| ktx_uint8_t* ktxTexture::kvData |
Pointer to the metadata, if it has been extracted in its raw form, otherwise NULL.
| ktxHashList ktxTexture::kvDataHead |
Head of the hash list of metadata.
| ktx_uint32_t ktxTexture::kvDataLen |
Length of the metadata, if it has been extracted in its raw form, otherwise 0.
| ktx_uint32_t ktxTexture::numDimensions |
Number of dimensions in the texture: 1, 2 or 3.
| ktx_uint32_t ktxTexture::numFaces |
Number of faces, 6 for cube maps, 1 otherwise.
| ktx_uint32_t ktxTexture::numLayers |
Number of array layers in the texture.
| ktx_uint32_t ktxTexture::numLevels |
Number of mip levels in the texture. Should be 1, if generateMipmaps is KTX_TRUE. Can be less than a full pyramid but always starts at the base level.
| ktx_uint8_t* ktxTexture::pData |
Pointer to the image data.