File: il__vtf_8h-source.html

package info (click to toggle)
devil 1.7.8-10
  • links: PTS
  • area: main
  • in suites: bookworm, bullseye, buster, stretch
  • size: 9,796 kB
  • sloc: ansic: 45,835; sh: 15,558; cpp: 4,009; python: 1,300; pascal: 792; makefile: 307; cs: 192; fortran: 5
file content (153 lines) | stat: -rw-r--r-- 12,362 bytes parent folder | download | duplicates (5)
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&nbsp;Page</span></a></li>
      <li><a href="annotated.html"><span>Data&nbsp;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&nbsp;
<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>