Assimp v5.2.2 (January 2022)
The Asset-Importer-Lib API documentation.
aiTexture Struct Reference

Helper structure to describe an embedded texture. More...

#include <texture.h>

Public Member Functions

 aiTexture () AI_NO_EXCEPT
 
bool CheckFormat (const char *s) const
 For compressed textures (mHeight == 0): compare the format hint against a given string. More...
 
 ~aiTexture ()
 

Public Attributes

char achFormatHint [HINTMAXTEXTURELEN]
 A hint from the loader to make it easier for applications to determine the type of embedded textures. More...
 
C_STRUCT aiString mFilename
 Texture original filename. More...
 
unsigned int mHeight
 Height of the texture, in pixels. More...
 
unsigned int mWidth
 Width of the texture, in pixels. More...
 
C_STRUCT aiTexelpcData
 Data of the texture. More...
 

Detailed Description

Helper structure to describe an embedded texture.

Normally textures are contained in external files but some file formats embed them directly in the model file. There are two types of embedded textures:

  1. Uncompressed textures. The color data is given in an uncompressed format.
  2. Compressed textures stored in a file format like png or jpg. The raw file bytes are given so the application must utilize an image decoder (e.g. DevIL) to get access to the actual color data.

Embedded textures are referenced from materials using strings like "*0", "*1", etc. as the texture paths (a single asterisk character followed by the zero-based index of the texture in the aiScene::mTextures array).

Constructor & Destructor Documentation

◆ aiTexture()

aiTexture::aiTexture ( )
inline

◆ ~aiTexture()

aiTexture::~aiTexture ( )
inline

Member Function Documentation

◆ CheckFormat()

bool aiTexture::CheckFormat ( const char *  s) const
inline

For compressed textures (mHeight == 0): compare the format hint against a given string.

Parameters
sInput string. 3 characters are maximally processed. Example values: "jpg", "png"
Returns
true if the given string matches the format hint

Member Data Documentation

◆ achFormatHint

char aiTexture::achFormatHint[HINTMAXTEXTURELEN]

A hint from the loader to make it easier for applications to determine the type of embedded textures.

If mHeight != 0 this member is show how data is packed. Hint will consist of two parts: channel order and channel bitness (count of the bits for every color channel). For simple parsing by the viewer it's better to not omit absent color channel and just use 0 for bitness. For example:

  1. Image contain RGBA and 8 bit per channel, achFormatHint == "rgba8888";
  2. Image contain ARGB and 8 bit per channel, achFormatHint == "argb8888";
  3. Image contain RGB and 5 bit for R and B channels and 6 bit for G channel, achFormatHint == "rgba5650";
  4. One color image with B channel and 1 bit for it, achFormatHint == "rgba0010"; If mHeight == 0 then achFormatHint is set set to '\0\0\0\0' if the loader has no additional information about the texture file format used OR the file extension of the format without a trailing dot. If there are multiple file extensions for a format, the shortest extension is chosen (JPEG maps to 'jpg', not to 'jpeg'). E.g. 'dds\0', 'pcx\0', 'jpg\0'. All characters are lower-case. The fourth character will always be '\0'.

◆ mFilename

C_STRUCT aiString aiTexture::mFilename

Texture original filename.

Used to get the texture reference

◆ mHeight

unsigned int aiTexture::mHeight

Height of the texture, in pixels.

If this value is zero, pcData points to an compressed texture in any format (e.g. JPEG).

◆ mWidth

unsigned int aiTexture::mWidth

Width of the texture, in pixels.

If mHeight is zero the texture is compressed in a format like JPEG. In this case mWidth specifies the size of the memory area pcData is pointing to, in bytes.

◆ pcData

C_STRUCT aiTexel* aiTexture::pcData

Data of the texture.

Points to an array of mWidth * mHeight aiTexel's. The format of the texture data is always ARGB8888 to make the implementation for user of the library as easy as possible. If mHeight = 0 this is a pointer to a memory buffer of size mWidth containing the compressed texture data. Good luck, have fun!


The documentation for this struct was generated from the following file: