1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>DevIL: /home/dwoods/DevIL/src-IL/include/il_vtf.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.6 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main Page</span></a></li>
<li><a href="annotated.html"><span>Data Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<h1>/home/dwoods/DevIL/src-IL/include/il_vtf.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">//-----------------------------------------------------------------------------</span>
<a name="l00002"></a>00002 <span class="comment">//</span>
<a name="l00003"></a>00003 <span class="comment">// ImageLib Sources</span>
<a name="l00004"></a>00004 <span class="comment">// Copyright (C) 2000-2009 by Denton Woods</span>
<a name="l00005"></a>00005 <span class="comment">// Last modified: 02/28/2009</span>
<a name="l00006"></a>00006 <span class="comment">//</span>
<a name="l00007"></a>00007 <span class="comment">// Filename: src-IL/include/il_vtf.h</span>
<a name="l00008"></a>00008 <span class="comment">//</span>
<a name="l00009"></a>00009 <span class="comment">// Description: Reads from and writes to a Valve Texture Format (.vtf) file.</span>
<a name="l00010"></a>00010 <span class="comment">// These are used in Valve's Source games. VTF specs available</span>
<a name="l00011"></a>00011 <span class="comment">// from http://developer.valvesoftware.com/wiki/VTF.</span>
<a name="l00012"></a>00012 <span class="comment">//</span>
<a name="l00013"></a>00013 <span class="comment">//-----------------------------------------------------------------------------</span>
<a name="l00014"></a>00014
<a name="l00015"></a>00015
<a name="l00016"></a>00016 <span class="preprocessor">#ifndef VTF_H</span>
<a name="l00017"></a>00017 <span class="preprocessor"></span><span class="preprocessor">#define VTF_H</span>
<a name="l00018"></a>00018 <span class="preprocessor"></span>
<a name="l00019"></a>00019 <span class="preprocessor">#include "il_internal.h"</span>
<a name="l00020"></a>00020
<a name="l00021"></a>00021 <span class="preprocessor">#ifdef _MSC_VER</span>
<a name="l00022"></a>00022 <span class="preprocessor"></span><span class="preprocessor">#pragma pack(push, vtf_struct, 1)</span>
<a name="l00023"></a>00023 <span class="preprocessor"></span><span class="preprocessor">#elif defined(MACOSX) || defined(__GNUC__)</span>
<a name="l00024"></a>00024 <span class="preprocessor"></span><span class="preprocessor">#pragma pack(1)</span>
<a name="l00025"></a>00025 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l00026"></a>00026 <span class="preprocessor"></span>
<a name="l00027"></a>00027 <span class="keyword">typedef</span> <span class="keyword">struct </span>VTFHEAD
<a name="l00028"></a>00028 {
<a name="l00029"></a>00029 ILubyte Signature[4]; <span class="comment">// File signature ("VTF\0").</span>
<a name="l00030"></a>00030 ILuint Version[2]; <span class="comment">// version[0].version[1] (currently 7.2).</span>
<a name="l00031"></a>00031 ILuint HeaderSize; <span class="comment">// Size of the header struct (16 byte aligned; currently 80 bytes).</span>
<a name="l00032"></a>00032 ILushort Width; <span class="comment">// Width of the largest mipmap in pixels. Must be a power of 2.</span>
<a name="l00033"></a>00033 ILushort Height; <span class="comment">// Height of the largest mipmap in pixels. Must be a power of 2.</span>
<a name="l00034"></a>00034 ILuint Flags; <span class="comment">// VTF flags.</span>
<a name="l00035"></a>00035 ILushort Frames; <span class="comment">// Number of frames, if animated (1 for no animation).</span>
<a name="l00036"></a>00036 ILushort FirstFrame; <span class="comment">// First frame in animation (0 based).</span>
<a name="l00037"></a>00037 ILubyte Padding0[4]; <span class="comment">// reflectivity padding (16 byte alignment).</span>
<a name="l00038"></a>00038 ILfloat Reflectivity[3]; <span class="comment">// reflectivity vector.</span>
<a name="l00039"></a>00039 ILubyte Padding1[4]; <span class="comment">// reflectivity padding (8 byte packing).</span>
<a name="l00040"></a>00040 ILfloat BumpmapScale; <span class="comment">// Bumpmap scale.</span>
<a name="l00041"></a>00041 ILuint HighResImageFormat; <span class="comment">// High resolution image format.</span>
<a name="l00042"></a>00042 ILubyte MipmapCount; <span class="comment">// Number of mipmaps.</span>
<a name="l00043"></a>00043 ILuint LowResImageFormat; <span class="comment">// Low resolution image format (always DXT1).</span>
<a name="l00044"></a>00044 ILubyte LowResImageWidth; <span class="comment">// Low resolution image width.</span>
<a name="l00045"></a>00045 ILubyte LowResImageHeight; <span class="comment">// Low resolution image height.</span>
<a name="l00046"></a>00046 ILushort Depth; <span class="comment">// Depth of the largest mipmap in pixels.</span>
<a name="l00047"></a>00047 <span class="comment">// Must be a power of 2. Can be 0 or 1 for a 2D texture (v7.2 only).</span>
<a name="l00048"></a>00048 } IL_PACKSTRUCT VTFHEAD;
<a name="l00049"></a>00049
<a name="l00050"></a>00050 <span class="preprocessor">#if defined(MACOSX) || defined(__GNUC__)</span>
<a name="l00051"></a>00051 <span class="preprocessor"></span><span class="preprocessor">#pragma pack()</span>
<a name="l00052"></a>00052 <span class="preprocessor"></span><span class="preprocessor">#elif _MSC_VER</span>
<a name="l00053"></a>00053 <span class="preprocessor"></span><span class="preprocessor">#pragma pack(pop, vtf_struct)</span>
<a name="l00054"></a>00054 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l00055"></a>00055 <span class="preprocessor"></span>
<a name="l00056"></a>00056 <span class="keyword">enum</span>
<a name="l00057"></a>00057 {
<a name="l00058"></a>00058 IMAGE_FORMAT_NONE = -1,
<a name="l00059"></a>00059 IMAGE_FORMAT_RGBA8888 = 0,
<a name="l00060"></a>00060 IMAGE_FORMAT_ABGR8888,
<a name="l00061"></a>00061 IMAGE_FORMAT_RGB888,
<a name="l00062"></a>00062 IMAGE_FORMAT_BGR888,
<a name="l00063"></a>00063 IMAGE_FORMAT_RGB565,
<a name="l00064"></a>00064 IMAGE_FORMAT_I8,
<a name="l00065"></a>00065 IMAGE_FORMAT_IA88,
<a name="l00066"></a>00066 IMAGE_FORMAT_P8,
<a name="l00067"></a>00067 IMAGE_FORMAT_A8,
<a name="l00068"></a>00068 IMAGE_FORMAT_RGB888_BLUESCREEN,
<a name="l00069"></a>00069 IMAGE_FORMAT_BGR888_BLUESCREEN,
<a name="l00070"></a>00070 IMAGE_FORMAT_ARGB8888,
<a name="l00071"></a>00071 IMAGE_FORMAT_BGRA8888,
<a name="l00072"></a>00072 IMAGE_FORMAT_DXT1,
<a name="l00073"></a>00073 IMAGE_FORMAT_DXT3,
<a name="l00074"></a>00074 IMAGE_FORMAT_DXT5,
<a name="l00075"></a>00075 IMAGE_FORMAT_BGRX8888,
<a name="l00076"></a>00076 IMAGE_FORMAT_BGR565,
<a name="l00077"></a>00077 IMAGE_FORMAT_BGRX5551,
<a name="l00078"></a>00078 IMAGE_FORMAT_BGRA4444,
<a name="l00079"></a>00079 IMAGE_FORMAT_DXT1_ONEBITALPHA,
<a name="l00080"></a>00080 IMAGE_FORMAT_BGRA5551,
<a name="l00081"></a>00081 IMAGE_FORMAT_UV88,
<a name="l00082"></a>00082 IMAGE_FORMAT_UVWQ8888,
<a name="l00083"></a>00083 IMAGE_FORMAT_RGBA16161616F,
<a name="l00084"></a>00084 IMAGE_FORMAT_RGBA16161616,
<a name="l00085"></a>00085 IMAGE_FORMAT_UVLX8888
<a name="l00086"></a>00086 };
<a name="l00087"></a>00087
<a name="l00088"></a>00088 <span class="keyword">enum</span>
<a name="l00089"></a>00089 {
<a name="l00090"></a>00090 TEXTUREFLAGS_POINTSAMPLE = 0x00000001,
<a name="l00091"></a>00091 TEXTUREFLAGS_TRILINEAR = 0x00000002,
<a name="l00092"></a>00092 TEXTUREFLAGS_CLAMPS = 0x00000004,
<a name="l00093"></a>00093 TEXTUREFLAGS_CLAMPT = 0x00000008,
<a name="l00094"></a>00094 TEXTUREFLAGS_ANISOTROPIC = 0x00000010,
<a name="l00095"></a>00095 TEXTUREFLAGS_HINT_DXT5 = 0x00000020,
<a name="l00096"></a>00096 TEXTUREFLAGS_NOCOMPRESS = 0x00000040,
<a name="l00097"></a>00097 TEXTUREFLAGS_NORMAL = 0x00000080,
<a name="l00098"></a>00098 TEXTUREFLAGS_NOMIP = 0x00000100,
<a name="l00099"></a>00099 TEXTUREFLAGS_NOLOD = 0x00000200,
<a name="l00100"></a>00100 TEXTUREFLAGS_MINMIP = 0x00000400,
<a name="l00101"></a>00101 TEXTUREFLAGS_PROCEDURAL = 0x00000800,
<a name="l00102"></a>00102 TEXTUREFLAGS_ONEBITALPHA = 0x00001000,
<a name="l00103"></a>00103 TEXTUREFLAGS_EIGHTBITALPHA = 0x00002000,
<a name="l00104"></a>00104 TEXTUREFLAGS_ENVMAP = 0x00004000,
<a name="l00105"></a>00105 TEXTUREFLAGS_RENDERTARGET = 0x00008000,
<a name="l00106"></a>00106 TEXTUREFLAGS_DEPTHRENDERTARGET = 0x00010000,
<a name="l00107"></a>00107 TEXTUREFLAGS_NODEBUGOVERRIDE = 0x00020000,
<a name="l00108"></a>00108 TEXTUREFLAGS_SINGLECOPY = 0x00040000,
<a name="l00109"></a>00109 TEXTUREFLAGS_ONEOVERMIPLEVELINALPHA = 0x00080000,
<a name="l00110"></a>00110 TEXTUREFLAGS_PREMULTCOLORBYONEOVERMIPLEVEL = 0x00100000,
<a name="l00111"></a>00111 TEXTUREFLAGS_NORMALTODUDV = 0x00200000,
<a name="l00112"></a>00112 TEXTUREFLAGS_ALPHATESTMIPGENERATION = 0x00400000,
<a name="l00113"></a>00113 TEXTUREFLAGS_NODEPTHBUFFER = 0x00800000,
<a name="l00114"></a>00114 TEXTUREFLAGS_NICEFILTERED = 0x01000000,
<a name="l00115"></a>00115 TEXTUREFLAGS_CLAMPU = 0x02000000
<a name="l00116"></a>00116 };
<a name="l00117"></a>00117
<a name="l00118"></a>00118
<a name="l00119"></a>00119
<a name="l00120"></a>00120 <span class="comment">// Internal functions</span>
<a name="l00121"></a>00121 ILboolean iIsValidVtf(<span class="keywordtype">void</span>);
<a name="l00122"></a>00122 ILboolean iGetVtfHead(VTFHEAD *Header);
<a name="l00123"></a>00123 ILboolean iCheckVtf(VTFHEAD *Header);
<a name="l00124"></a>00124 ILboolean iLoadVtfInternal(<span class="keywordtype">void</span>);
<a name="l00125"></a>00125 ILboolean VtfInitFacesMipmaps(<a class="code" href="structILimage.html" title="The Fundamental Image structure.">ILimage</a> *BaseImage, ILuint NumFaces, VTFHEAD *Header);
<a name="l00126"></a>00126 ILboolean VtfInitMipmaps(<a class="code" href="structILimage.html" title="The Fundamental Image structure.">ILimage</a> *BaseImage, VTFHEAD *Header);
<a name="l00127"></a>00127 ILboolean VtfReadData(<span class="keywordtype">void</span>);
<a name="l00128"></a>00128 ILboolean VtfDecompressDXT1(<a class="code" href="structILimage.html" title="The Fundamental Image structure.">ILimage</a> *Image);
<a name="l00129"></a>00129 ILboolean VtfDecompressDXT5(<a class="code" href="structILimage.html" title="The Fundamental Image structure.">ILimage</a> *Image);
<a name="l00130"></a>00130 ILboolean iSaveVtfInternal(<span class="keywordtype">void</span>);
<a name="l00131"></a>00131
<a name="l00132"></a>00132 <span class="preprocessor">#endif//VTF_H</span>
</pre></div></div>
<hr size="1"><address style="text-align: right;"><small>Generated on Sun Mar 8 20:01:41 2009 for DevIL by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
</body>
</html>
|