TEX/v0: Difference between revisions

From wowdev
Jump to navigation Jump to search
mNo edit summary
Line 15: Line 15:
   uint32_t txmdOffset; // TXMD-chunk offset relative to end of TXFN-chunk.
   uint32_t txmdOffset; // TXMD-chunk offset relative to end of TXFN-chunk.
   uint8_t sizex;
   uint8_t sizex;
   uint8_t sizey;
   uint8_t sizey; // special case: sizex = sizey * 6
   uint8_t type; // 0x80 already loaded (set on runtime)
   uint7_t m_numLevels; // mipmaps
   uint8_t flags;
  uint1_t loaded;
  uint4_t dxt_type; // 0  = Dxt1, 1 = Dxt3, 2 = Dxt5
   uint4_t flags; // 1 = if dxt_type = Dxt1, prefer Argb1555 over Rgb565, if Dxt1 unavailable
  } entries[];
  } entries[];



Revision as of 03:21, 24 September 2014

This is storing really low resolution textures for use if the real file is not yet loaded or streamed. One per continent (e.g. Azeroth.tex). Chunked structure. Internally called 'TextureBlob'.

structure

TXVR

uint32_t version;

As of 4.0.12479, 0

Rev 13329: 8 Byte of Data, actual only containing a 4 in the first Byte. (CataclysmCTF.tex)

TXBT

struct SBlobTexture {
  uint32_t filenameOffset;
  uint32_t txmdOffset; // TXMD-chunk offset relative to end of TXFN-chunk.
  uint8_t sizex;
  uint8_t sizey; // special case: sizex = sizey * 6
  uint7_t m_numLevels; // mipmaps
  uint1_t loaded;
  uint4_t dxt_type; // 0  = Dxt1, 1 = Dxt3, 2 = Dxt5
  uint4_t flags; // 1 = if dxt_type = Dxt1, prefer Argb1555 over Rgb565, if Dxt1 unavailable
} entries[];

TXFN

char filenames[]; // zero-terminated, no file ending

TXMD[]

char textureData[]; // length depends on size, type and flags.