Parcourir la source

[*] Format hint for embedded textures improvement.

Alexandr Arutjunov il y a 9 ans
Parent
commit
9069ea20fa
1 fichiers modifiés avec 11 ajouts et 4 suppressions
  1. 11 4
      include/assimp/texture.h

+ 11 - 4
include/assimp/texture.h

@@ -147,10 +147,17 @@ struct aiTexture
     unsigned int mHeight;
 
     /** A hint from the loader to make it easier for applications
-     *  to determine the type of embedded compressed textures.
+     *  to determine the type of embedded textures.
      *
-     * If mHeight != 0 this member is undefined. Otherwise it
-     * is set set to '\\0\\0\\0\\0' if the loader has no additional
+     * 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";
+     * 2. Image contain RGB and 5 bit for R and B channels and 6 bit for G channel, achFormatHint == "rgba5650";
+     * 3. 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
@@ -158,7 +165,7 @@ struct aiTexture
      * E.g. 'dds\\0', 'pcx\\0', 'jpg\\0'.  All characters are lower-case.
      * The fourth character will always be '\\0'.
      */
-    char achFormatHint[4];
+    char achFormatHint[9];// 8 for string + 1 for terminator.
 
     /** Data of the texture.
      *