File: il__wdp_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 (209 lines) | stat: -rw-r--r-- 16,625 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
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
<!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_wdp.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_wdp.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-2008 by Denton Woods</span>
<a name="l00005"></a>00005 <span class="comment">// Last modified: 09/26/2008</span>
<a name="l00006"></a>00006 <span class="comment">//</span>
<a name="l00007"></a>00007 <span class="comment">// Filename: src-IL/include/il_hdr.h</span>
<a name="l00008"></a>00008 <span class="comment">//</span>
<a name="l00009"></a>00009 <span class="comment">// Description: Reads a Microsoft HD Photo (.wdp)</span>
<a name="l00010"></a>00010 <span class="comment">//</span>
<a name="l00011"></a>00011 <span class="comment">//-----------------------------------------------------------------------------</span>
<a name="l00012"></a>00012 
<a name="l00013"></a>00013 
<a name="l00014"></a>00014 <span class="preprocessor">#ifndef WDP_H</span>
<a name="l00015"></a>00015 <span class="preprocessor"></span><span class="preprocessor">#define WDP_H</span>
<a name="l00016"></a>00016 <span class="preprocessor"></span>
<a name="l00017"></a>00017 <span class="preprocessor">#include "il_internal.h"</span>
<a name="l00018"></a>00018 
<a name="l00019"></a>00019 
<a name="l00020"></a>00020 <span class="comment">//</span>
<a name="l00021"></a>00021 <span class="comment">// Structures</span>
<a name="l00022"></a>00022 <span class="comment">//</span>
<a name="l00023"></a>00023 <span class="keyword">typedef</span> <span class="keyword">struct </span>WDPHEAD
<a name="l00024"></a>00024 {
<a name="l00025"></a>00025         ILubyte         Encoding[2];
<a name="l00026"></a>00026         ILubyte         UniqueID;
<a name="l00027"></a>00027         ILubyte         Version;
<a name="l00028"></a>00028         ILuint          Offset;
<a name="l00029"></a>00029 } WDPHEAD;
<a name="l00030"></a>00030 
<a name="l00031"></a>00031 <span class="keyword">typedef</span> <span class="keyword">struct </span>WDPIFD
<a name="l00032"></a>00032 {
<a name="l00033"></a>00033         ILushort        Tag;
<a name="l00034"></a>00034         ILushort        Type;
<a name="l00035"></a>00035         ILuint          Count;
<a name="l00036"></a>00036         ILuint          ValOff;
<a name="l00037"></a>00037         ILuint          NextOff;
<a name="l00038"></a>00038 } WDPIFD;
<a name="l00039"></a>00039 
<a name="l00040"></a>00040 <span class="keyword">typedef</span> <span class="keyword">struct </span>WDPGUID
<a name="l00041"></a>00041 {
<a name="l00042"></a>00042         ILuint          First;
<a name="l00043"></a>00043         ILushort        Second;
<a name="l00044"></a>00044         ILushort        Third;
<a name="l00045"></a>00045         ILuint          Fourth;
<a name="l00046"></a>00046         ILuint          Fifth;
<a name="l00047"></a>00047 } WDPGUID;
<a name="l00048"></a>00048 
<a name="l00049"></a>00049 <span class="keyword">typedef</span> <span class="keyword">struct </span>WDPIMGHEAD
<a name="l00050"></a>00050 {
<a name="l00051"></a>00051         ILuint          GDISignature[2];
<a name="l00052"></a>00052         ILuint          Codec;
<a name="l00053"></a>00053         ILubyte         Flags[2];
<a name="l00054"></a>00054         ILubyte         Format;
<a name="l00055"></a>00055         ILuint          Width, Height;  <span class="comment">// Can either be short or 32-bit int</span>
<a name="l00056"></a>00056         ILuint          VertTiles, HorzTiles;  <span class="comment">// 12-bits each</span>
<a name="l00057"></a>00057         ILushort        *TileWidth, *TileHeight;  <span class="comment">// 8 or 16-bits each</span>
<a name="l00058"></a>00058         ILubyte         *TileStretch;  <span class="comment">// 8-bits each</span>
<a name="l00059"></a>00059         ILubyte         ExtraPixels[3];
<a name="l00060"></a>00060 } WDPIMGHEAD;
<a name="l00061"></a>00061 
<a name="l00062"></a>00062 <span class="keyword">typedef</span> <span class="keyword">struct </span>WDPIMGPLANE
<a name="l00063"></a>00063 {
<a name="l00064"></a>00064         ILubyte         Flags1;
<a name="l00065"></a>00065         ILubyte         Color;
<a name="l00066"></a>00066         ILubyte         Bayer;
<a name="l00067"></a>00067         ILubyte         ShiftBits;
<a name="l00068"></a>00068         ILubyte         Mantissa;
<a name="l00069"></a>00069         ILubyte         Expbias;
<a name="l00070"></a>00070         ILubyte         Flags2;
<a name="l00071"></a>00071 
<a name="l00072"></a>00072         ILubyte         NumChannels;
<a name="l00073"></a>00073 } WDPIMGPLANE;
<a name="l00074"></a>00074 
<a name="l00075"></a>00075 <span class="keyword">typedef</span> <span class="keyword">struct </span>WDPDCQUANT
<a name="l00076"></a>00076 {
<a name="l00077"></a>00077         ILubyte         ChMode;
<a name="l00078"></a>00078         ILubyte         DcQuant;
<a name="l00079"></a>00079         ILubyte         DcQuantY;
<a name="l00080"></a>00080         ILubyte         DcQuantUV;
<a name="l00081"></a>00081         ILubyte         DcQuantChan;
<a name="l00082"></a>00082 } WDPDCQUANT;
<a name="l00083"></a>00083 
<a name="l00084"></a>00084 <span class="keyword">typedef</span> <span class="keyword">struct </span>WDPTILE
<a name="l00085"></a>00085 {
<a name="l00086"></a>00086         ILuint          StartCode;
<a name="l00087"></a>00087         ILubyte         HashAndType;
<a name="l00088"></a>00088 } WDPTILE;
<a name="l00089"></a>00089 
<a name="l00090"></a>00090 <span class="comment">//</span>
<a name="l00091"></a>00091 <span class="comment">// Image header defines</span>
<a name="l00092"></a>00092 <span class="comment">//</span>
<a name="l00093"></a>00093 
<a name="l00094"></a>00094 <span class="comment">// Codec and sub-codec</span>
<a name="l00095"></a>00095 <span class="preprocessor">#define WDP_CODEC                       0xF0</span>
<a name="l00096"></a>00096 <span class="preprocessor"></span><span class="preprocessor">#define WDP_SUBCODEC            0x0F</span>
<a name="l00097"></a>00097 <span class="preprocessor"></span>
<a name="l00098"></a>00098 <span class="comment">// First set of flags</span>
<a name="l00099"></a>00099 <span class="preprocessor">#define WDP_TILING_FLAG         0x80</span>
<a name="l00100"></a>00100 <span class="preprocessor"></span><span class="preprocessor">#define WDP_BITSTREAM_FMT       0x40</span>
<a name="l00101"></a>00101 <span class="preprocessor"></span><span class="preprocessor">#define WDP_ORIENTATION         0x38</span>
<a name="l00102"></a>00102 <span class="preprocessor"></span><span class="preprocessor">#define WDP_INDEXTABLE          0x04</span>
<a name="l00103"></a>00103 <span class="preprocessor"></span><span class="preprocessor">#define WDP_OVERLAP                     0x03</span>
<a name="l00104"></a>00104 <span class="preprocessor"></span>
<a name="l00105"></a>00105 <span class="comment">// Second set of flags</span>
<a name="l00106"></a>00106 <span class="preprocessor">#define WDP_SHORT_HEADER        0x80</span>
<a name="l00107"></a>00107 <span class="preprocessor"></span><span class="preprocessor">#define WDP_LONG_WORD           0x40</span>
<a name="l00108"></a>00108 <span class="preprocessor"></span><span class="preprocessor">#define WDP_WINDOWING           0x20</span>
<a name="l00109"></a>00109 <span class="preprocessor"></span><span class="preprocessor">#define WDP_TRIM_FLEXBITS       0x10</span>
<a name="l00110"></a>00110 <span class="preprocessor"></span><span class="preprocessor">#define WDP_TILE_STRETCH        0x08</span>
<a name="l00111"></a>00111 <span class="preprocessor"></span><span class="preprocessor">#define WDP_ALPHACHANNEL        0x01</span>
<a name="l00112"></a>00112 <span class="preprocessor"></span>
<a name="l00113"></a>00113 <span class="comment">// Format and bit-depth</span>
<a name="l00114"></a>00114 <span class="preprocessor">#define WDP_FORMAT                      0xF0</span>
<a name="l00115"></a>00115 <span class="preprocessor"></span><span class="preprocessor">#define WDP_BITDEPTH            0x0F</span>
<a name="l00116"></a>00116 <span class="preprocessor"></span><span class="preprocessor">#define WDP_Y_ONLY                      0x00</span>
<a name="l00117"></a>00117 <span class="preprocessor"></span><span class="preprocessor">#define WDP_YUV_420                     0x01</span>
<a name="l00118"></a>00118 <span class="preprocessor"></span><span class="preprocessor">#define WDP_YUV_422                     0x02</span>
<a name="l00119"></a>00119 <span class="preprocessor"></span><span class="preprocessor">#define WDP_YUV_444                     0x03</span>
<a name="l00120"></a>00120 <span class="preprocessor"></span><span class="preprocessor">#define WDP_CMYK                        0x04</span>
<a name="l00121"></a>00121 <span class="preprocessor"></span><span class="preprocessor">#define WDP_BAYER                       0x05</span>
<a name="l00122"></a>00122 <span class="preprocessor"></span><span class="preprocessor">#define WDP_N_CHANNEL           0x06</span>
<a name="l00123"></a>00123 <span class="preprocessor"></span><span class="preprocessor">#define WDP_RGB                         0x07</span>
<a name="l00124"></a>00124 <span class="preprocessor"></span><span class="preprocessor">#define WDP_RGBE                        0x08</span>
<a name="l00125"></a>00125 <span class="preprocessor"></span>
<a name="l00126"></a>00126 <span class="comment">// Bitdepth</span>
<a name="l00127"></a>00127 <span class="preprocessor">#define WDP_BD_1_WHITE          0x00</span>
<a name="l00128"></a>00128 <span class="preprocessor"></span><span class="preprocessor">#define WDP_BD_8                        0x01</span>
<a name="l00129"></a>00129 <span class="preprocessor"></span><span class="preprocessor">#define WDP_BD_16                       0x02</span>
<a name="l00130"></a>00130 <span class="preprocessor"></span><span class="preprocessor">#define WDP_BD_16S                      0x03</span>
<a name="l00131"></a>00131 <span class="preprocessor"></span><span class="preprocessor">#define WDP_BD_16F                      0x04</span>
<a name="l00132"></a>00132 <span class="preprocessor"></span><span class="preprocessor">#define WDP_BD_32                       0x05</span>
<a name="l00133"></a>00133 <span class="preprocessor"></span><span class="preprocessor">#define WDP_BD_32S                      0x06</span>
<a name="l00134"></a>00134 <span class="preprocessor"></span><span class="preprocessor">#define WDP_BD_32F                      0x07</span>
<a name="l00135"></a>00135 <span class="preprocessor"></span><span class="preprocessor">#define WDP_BD_5                        0x08</span>
<a name="l00136"></a>00136 <span class="preprocessor"></span><span class="preprocessor">#define WDP_BD_10                       0x09</span>
<a name="l00137"></a>00137 <span class="preprocessor"></span><span class="preprocessor">#define WDP_BD_565                      0x0A</span>
<a name="l00138"></a>00138 <span class="preprocessor"></span><span class="preprocessor">#define WDP_BD_1_BLACK          0x0F</span>
<a name="l00139"></a>00139 <span class="preprocessor"></span>
<a name="l00140"></a>00140 
<a name="l00141"></a>00141 <span class="comment">//</span>
<a name="l00142"></a>00142 <span class="comment">// Image plane header defines</span>
<a name="l00143"></a>00143 <span class="comment">//</span>
<a name="l00144"></a>00144 
<a name="l00145"></a>00145 <span class="comment">// First set of flags</span>
<a name="l00146"></a>00146 <span class="preprocessor">#define WDP_CLR_FMT                     0xE0</span>
<a name="l00147"></a>00147 <span class="preprocessor"></span><span class="preprocessor">#define WDP_NO_SCALED           0x10</span>
<a name="l00148"></a>00148 <span class="preprocessor"></span><span class="preprocessor">#define WDP_BANDS_PRESENT       0x0F</span>
<a name="l00149"></a>00149 <span class="preprocessor"></span>
<a name="l00150"></a>00150 <span class="comment">// Defines for n-channels</span>
<a name="l00151"></a>00151 <span class="preprocessor">#define WDP_NUM_CHANS           0xF0</span>
<a name="l00152"></a>00152 <span class="preprocessor"></span><span class="preprocessor">#define WDP_COLOR_INTERP        0x0F</span>
<a name="l00153"></a>00153 <span class="preprocessor"></span>
<a name="l00154"></a>00154 <span class="comment">// Second set of flags</span>
<a name="l00155"></a>00155 <span class="preprocessor">#define WDP_DC_FRAME            0x80</span>
<a name="l00156"></a>00156 <span class="preprocessor"></span>
<a name="l00157"></a>00157 <span class="comment">// Channel modes</span>
<a name="l00158"></a>00158 <span class="preprocessor">#define WDP_CH_UNIFORM          0x00</span>
<a name="l00159"></a>00159 <span class="preprocessor"></span><span class="preprocessor">#define WDP_CH_SEPARATE         0x01</span>
<a name="l00160"></a>00160 <span class="preprocessor"></span><span class="preprocessor">#define WDP_CH_INDEPENDENT      0x02</span>
<a name="l00161"></a>00161 <span class="preprocessor"></span>
<a name="l00162"></a>00162 <span class="comment">// Tile types</span>
<a name="l00163"></a>00163 <span class="preprocessor">#define WDP_TILE_HASH           0xF8</span>
<a name="l00164"></a>00164 <span class="preprocessor"></span><span class="preprocessor">#define WDP_TILE_TYPE           0x03</span>
<a name="l00165"></a>00165 <span class="preprocessor"></span><span class="preprocessor">#define WDP_SPATIAL_TILE        0x00</span>
<a name="l00166"></a>00166 <span class="preprocessor"></span><span class="preprocessor">#define WDP_DC_TILE                     0x01</span>
<a name="l00167"></a>00167 <span class="preprocessor"></span><span class="preprocessor">#define WDP_LOWPASS_TILE        0x02</span>
<a name="l00168"></a>00168 <span class="preprocessor"></span><span class="preprocessor">#define WDP_HIGHPASS_TILE       0x03</span>
<a name="l00169"></a>00169 <span class="preprocessor"></span><span class="preprocessor">#define WDP_FLEXBITS_TILE       0x04</span>
<a name="l00170"></a>00170 <span class="preprocessor"></span>
<a name="l00171"></a>00171 <span class="comment">// Bands present</span>
<a name="l00172"></a>00172 <span class="preprocessor">#define WDP_SB_ALL                      0x00</span>
<a name="l00173"></a>00173 <span class="preprocessor"></span><span class="preprocessor">#define WDP_SB_NO_FLEXBITS      0x01</span>
<a name="l00174"></a>00174 <span class="preprocessor"></span><span class="preprocessor">#define WDP_SB_NO_HIGHPASS      0x02</span>
<a name="l00175"></a>00175 <span class="preprocessor"></span><span class="preprocessor">#define WDP_SB_DC_ONLY          0x03</span>
<a name="l00176"></a>00176 <span class="preprocessor"></span><span class="preprocessor">#define WDP_SB_ISOLATED         0x04</span>
<a name="l00177"></a>00177 <span class="preprocessor"></span>
<a name="l00178"></a>00178 
<a name="l00179"></a>00179 <span class="comment">//</span>
<a name="l00180"></a>00180 <span class="comment">// Internal functions</span>
<a name="l00181"></a>00181 <span class="comment">//</span>
<a name="l00182"></a>00182 ILboolean       iIsValidWdp();
<a name="l00183"></a>00183 ILboolean       iCheckWdp(WDPHEAD *Header);
<a name="l00184"></a>00184 ILboolean       iLoadWdpInternal();
<a name="l00185"></a>00185 ILuint          VLWESC();
<a name="l00186"></a>00186 
<a name="l00187"></a>00187 
<a name="l00188"></a>00188 <span class="preprocessor">#endif//WDP_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>