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 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_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
<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>
|