{.deadCodeElim: on.} import streams , glformat const KTX_GL_UNPACK_ALIGNMENT* = 4 type BlockCount* = ref object x*,y*,z*: uint32 KtxTextureCreateFlagBits* = enum TextureCreateNoFlags = 0 TextureCreateLoadImageData = 1 # Load the images from the KTX source TextureCreateRawKVData = 2 # Load the raw key-value data instead of creating a @c ktxHashList from it TextureCreateSkipKVData = 4 # Skip any key-value data. This overrides the RAW_KVDATA_BIT KtxExtraInfo* = ref object compressed*: uint8 generateMipmaps*: uint8 textureDimension*: uint16 KtxHeader* = ref object identifier*: array[12,uint8] endianness*: uint32 glType*: uint32 glTypeSize*: uint32 glFormat*: uint32 glInternalformat*: uint32 glBaseInternalformat*: uint32 pixelWidth*: uint32 pixelHeight*: uint32 pixelDepth*: uint32 numberOfArrayElements*: uint32 numberOfFaces*: uint32 numberOfMipmapLevels*: uint32 bytesOfKeyValueData*: uint32 KtxTextureObj = object of RootObj glFormat*: cuint # Format of the texture data, e.g., GL_RGB. glInternalformat*: cuint # Internal format of the texture data, e.g., GL_RGB8. glBaseInternalformat*: cuint # Base format of the texture data, e.g., GL_RGB. glType*: cuint # Type of the texture data, e.g, GL_UNSIGNED_BYTE. isArray*: bool # true if the texture is an array texture, i.e, a GL_TEXTURE_*_ARRAY target is to be used. isCubemap*: bool # true if the texture is a cubemap or cubemap array. isCompressed*: bool # true if @c glInternalFormat is that of a compressed texture. generateMipmaps*: bool # true if mipmaps should be generated for the texture by ktxTexture_GLUpload() or ktx_Texture_VkUpload(). baseWidth*: uint # Width of the base level of the texture. baseHeight*: uint # Height of the base level of the texture. baseDepth*: uint # Depth of the base level of the texture. numDimensions*: uint # Number of dimensions in the texture: 1, 2 or 3. numLevels*: uint # Number of mip levels in the texture. Should be 1, if @c generateMipmaps is true. Can be less than a full pyramid but always starts at the base level. numLayers*: uint # Number of array layers in the texture. numFaces*: uint # Number of faces, 6 for cube maps, 1 otherw ise. createFlags*: uint32 extraInfo*: KtxExtraInfo formatInfo*: GlFormatSize # Info about the image data format. */ # The following are needed because image data reading can be delayed. glTypeSize*: uint32 # Size of the image data type in bytes. */ stream*: StringStream # Stream connected to KTX source. */ needSwap*: bool # If KTX_TRUE, image data needs byte swapping. */ # kvDataHead: ktxHashList # hash list of metadata. kvDataLen: uint # Length of the metadata, if it has been extracted in its raw form, otherwise 0. # kvData: pointer # Pointer to the metadata, if it has been extracted in its raw form, otherwise NULL. dataSize*: csize_t # Length of the image data in bytes. pData*: pointer # Pointer to the image data. KtxTexture* = ref object of KtxTextureObj