34 #ifndef VTFLIB_VTFFORMAT_H
35 #define VTFLIB_VTFFORMAT_H
45 #define VTF_MAJOR_VERSION 7
46 #define VTF_MINOR_VERSION 5
47 #define VTF_MINOR_VERSION_DEFAULT 3
49 #define VTF_MINOR_VERSION_MIN_SPHERE_MAP 1
50 #define VTF_MINOR_VERSION_MIN_VOLUME 2
51 #define VTF_MINOR_VERSION_MIN_RESOURCE 3
52 #define VTF_MINOR_VERSION_MIN_NO_SPHERE_MAP 5
60 typedef enum tagVTFImageFormat
92 IMAGE_FORMAT_NV_DST16,
93 IMAGE_FORMAT_NV_DST24,
96 IMAGE_FORMAT_ATI_DST16,
97 IMAGE_FORMAT_ATI_DST24,
120 IMAGE_FORMAT_NONE = -1
125 typedef enum tagVTFImageFlag
127 TEXTUREFLAGS_POINTSAMPLE = 0x00000001,
128 TEXTUREFLAGS_TRILINEAR = 0x00000002,
129 TEXTUREFLAGS_CLAMPS = 0x00000004,
130 TEXTUREFLAGS_CLAMPT = 0x00000008,
131 TEXTUREFLAGS_ANISOTROPIC = 0x00000010,
132 TEXTUREFLAGS_HINT_DXT5 = 0x00000020,
133 TEXTUREFLAGS_SRGB = 0x00000040,
134 TEXTUREFLAGS_DEPRECATED_NOCOMPRESS = 0x00000040,
135 TEXTUREFLAGS_NORMAL = 0x00000080,
136 TEXTUREFLAGS_NOMIP = 0x00000100,
137 TEXTUREFLAGS_NOLOD = 0x00000200,
138 TEXTUREFLAGS_MINMIP = 0x00000400,
139 TEXTUREFLAGS_PROCEDURAL = 0x00000800,
142 TEXTUREFLAGS_ENVMAP = 0x00004000,
143 TEXTUREFLAGS_RENDERTARGET = 0x00008000,
144 TEXTUREFLAGS_DEPTHRENDERTARGET = 0x00010000,
145 TEXTUREFLAGS_NODEBUGOVERRIDE = 0x00020000,
146 TEXTUREFLAGS_SINGLECOPY = 0x00040000,
148 TEXTUREFLAGS_DEPRECATED_ONEOVERMIPLEVELINALPHA = 0x00080000,
150 TEXTUREFLAGS_DEPRECATED_PREMULTCOLORBYONEOVERMIPLEVEL = 0x00100000,
152 TEXTUREFLAGS_DEPRECATED_NORMALTODUDV = 0x00200000,
154 TEXTUREFLAGS_DEPRECATED_ALPHATESTMIPGENERATION = 0x00400000,
155 TEXTUREFLAGS_NODEPTHBUFFER = 0x00800000,
157 TEXTUREFLAGS_DEPRECATED_NICEFILTERED = 0x01000000,
158 TEXTUREFLAGS_CLAMPU = 0x02000000,
159 TEXTUREFLAGS_VERTEXTEXTURE = 0x04000000,
160 TEXTUREFLAGS_SSBUMP = 0x08000000,
162 TEXTUREFLAGS_DEPRECATED_UNFILTERABLE_OK = 0x10000000,
163 TEXTUREFLAGS_BORDER = 0x20000000,
164 TEXTUREFLAGS_DEPRECATED_SPECVAR_RED = 0x40000000,
165 TEXTUREFLAGS_DEPRECATED_SPECVAR_ALPHA = 0x80000000,
166 TEXTUREFLAGS_LAST = 0x20000000,
167 TEXTUREFLAGS_COUNT = 30
171 typedef enum tagVTFCubeMapFace
173 CUBEMAP_FACE_RIGHT = 0,
179 CUBEMAP_FACE_SphereMap,
184 typedef enum tagVTFMipmapFilter
186 MIPMAP_FILTER_POINT = 0,
188 MIPMAP_FILTER_TRIANGLE,
189 MIPMAP_FILTER_QUADRATIC,
191 MIPMAP_FILTER_CATROM,
192 MIPMAP_FILTER_MITCHELL,
193 MIPMAP_FILTER_GAUSSIAN,
195 MIPMAP_FILTER_BESSEL,
196 MIPMAP_FILTER_HANNING,
197 MIPMAP_FILTER_HAMMING,
198 MIPMAP_FILTER_BLACKMAN,
199 MIPMAP_FILTER_KAISER,
204 typedef enum tagVTFSharpenFilter
206 SHARPEN_FILTER_NONE = 0,
207 SHARPEN_FILTER_NEGATIVE,
208 SHARPEN_FILTER_LIGHTER,
209 SHARPEN_FILTER_DARKER,
210 SHARPEN_FILTER_CONTRASTMORE,
211 SHARPEN_FILTER_CONTRASTLESS,
212 SHARPEN_FILTER_SMOOTHEN,
213 SHARPEN_FILTER_SHARPENSOFT,
214 SHARPEN_FILTER_SHARPENMEDIUM,
215 SHARPEN_FILTER_SHARPENSTRONG,
216 SHARPEN_FILTER_FINDEDGES,
217 SHARPEN_FILTER_CONTOUR,
218 SHARPEN_FILTER_EDGEDETECT,
219 SHARPEN_FILTER_EDGEDETECTSOFT,
220 SHARPEN_FILTER_EMBOSS,
221 SHARPEN_FILTER_MEANREMOVAL,
222 SHARPEN_FILTER_UNSHARP,
223 SHARPEN_FILTER_XSHARPEN,
224 SHARPEN_FILTER_WARPSHARP,
228 #define DXT_QUALITY_BASE 68
230 typedef enum tagDXTQuality
239 #define KERNEL_FILTER_BASE 1040
242 typedef enum tagVTFKernelFilter
244 KERNEL_FILTER_4X = 0,
253 #define HEIGHT_CONVERSION_METHOD_BASE 1009
256 typedef enum tagVTFHeightConversionMethod
258 HEIGHT_CONVERSION_METHOD_ALPHA = 0,
259 HEIGHT_CONVERSION_METHOD_AVERAGE_RGB,
260 HEIGHT_CONVERSION_METHOD_BIASED_RGB,
261 HEIGHT_CONVERSION_METHOD_RED,
262 HEIGHT_CONVERSION_METHOD_GREEN,
263 HEIGHT_CONVERSION_METHOD_BLUE,
264 HEIGHT_CONVERSION_METHOD_MAX_RGB,
265 HEIGHT_CONVERSION_METHOD_COLORSPACE,
267 HEIGHT_CONVERSION_METHOD_COUNT
270 #define NORMAL_ALPHA_RESULT_BASE 1033
273 typedef enum tagVTFNormalAlphaResult
275 NORMAL_ALPHA_RESULT_NOCHANGE = 0,
276 NORMAL_ALPHA_RESULT_HEIGHT,
277 NORMAL_ALPHA_RESULT_BLACK,
278 NORMAL_ALPHA_RESULT_WHITE,
279 NORMAL_ALPHA_RESULT_COUNT
283 typedef enum tagVTFResizeMethod
285 RESIZE_NEAREST_POWER2 = 0,
286 RESIZE_BIGGEST_POWER2,
287 RESIZE_SMALLEST_POWER2,
294 typedef enum tagVTFLookDir
304 #define MAKE_VTF_RSRC_ID(a, b, c) ((vlUInt)(((vlByte)a) | ((vlByte)b << 8) | ((vlByte)c << 16)))
305 #define MAKE_VTF_RSRC_IDF(a, b, c, d) ((vlUInt)(((vlByte)a) | ((vlByte)b << 8) | ((vlByte)c << 16) | ((vlByte)d << 24)))
309 typedef enum tagVTFResourceEntryTypeFlag
311 RSRCF_HAS_NO_DATA_CHUNK = 0x02
316 typedef enum tagVTFResourceEntryType
318 VTF_LEGACY_RSRC_LOW_RES_IMAGE = MAKE_VTF_RSRC_ID(0x01, 0, 0),
319 VTF_LEGACY_RSRC_IMAGE = MAKE_VTF_RSRC_ID(0x30, 0, 0),
320 VTF_RSRC_SHEET = MAKE_VTF_RSRC_ID(0x10, 0, 0),
321 VTF_RSRC_CRC = MAKE_VTF_RSRC_IDF(
'C',
'R',
'C', RSRCF_HAS_NO_DATA_CHUNK),
322 VTF_RSRC_TEXTURE_LOD_SETTINGS = MAKE_VTF_RSRC_IDF(
'L',
'O',
'D', RSRCF_HAS_NO_DATA_CHUNK),
323 VTF_RSRC_TEXTURE_SETTINGS_EX = MAKE_VTF_RSRC_IDF(
'T',
'S',
'O', RSRCF_HAS_NO_DATA_CHUNK),
324 VTF_RSRC_KEY_VALUE_DATA = MAKE_VTF_RSRC_ID(
'K',
'V',
'D'),
325 VTF_RSRC_MAX_DICTIONARY_ENTRIES = 32
473 struct SVTFResourceData
479 typedef struct tagSVTFTextureLODControlResource
484 } SVTFTextureLODControlResource;
486 typedef struct tagSVTFTextureSettingsExResource
492 } SVTFTextureSettingsExResource;
497 SVTFResource Resources[VTF_RSRC_MAX_DICTIONARY_ENTRIES];
498 SVTFResourceData Data[VTF_RSRC_MAX_DICTIONARY_ENTRIES];
507 #endif // VTFFORMAT_H
unsigned char vlByte
Single unsigned byte.
Definition: stdafx.h:52
char vlChar
Single signed character.
Definition: stdafx.h:51
unsigned int vlUInt
Unsigned integer value.
Definition: stdafx.h:56
Application framework header plus VTFLib custom data types.
unsigned short vlUShort
Unsigned short floating point value.
Definition: stdafx.h:54
float vlSingle
Floating point number.
Definition: stdafx.h:59