00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 #ifndef WDP_H
00015 #define WDP_H
00016 
00017 #include "il_internal.h"
00018 
00019 
00020 
00021 
00022 
00023 typedef struct WDPHEAD
00024 {
00025         ILubyte         Encoding[2];
00026         ILubyte         UniqueID;
00027         ILubyte         Version;
00028         ILuint          Offset;
00029 } WDPHEAD;
00030 
00031 typedef struct WDPIFD
00032 {
00033         ILushort        Tag;
00034         ILushort        Type;
00035         ILuint          Count;
00036         ILuint          ValOff;
00037         ILuint          NextOff;
00038 } WDPIFD;
00039 
00040 typedef struct WDPGUID
00041 {
00042         ILuint          First;
00043         ILushort        Second;
00044         ILushort        Third;
00045         ILuint          Fourth;
00046         ILuint          Fifth;
00047 } WDPGUID;
00048 
00049 typedef struct WDPIMGHEAD
00050 {
00051         ILuint          GDISignature[2];
00052         ILuint          Codec;
00053         ILubyte         Flags[2];
00054         ILubyte         Format;
00055         ILuint          Width, Height;  
00056         ILuint          VertTiles, HorzTiles;  
00057         ILushort        *TileWidth, *TileHeight;  
00058         ILubyte         *TileStretch;  
00059         ILubyte         ExtraPixels[3];
00060 } WDPIMGHEAD;
00061 
00062 typedef struct WDPIMGPLANE
00063 {
00064         ILubyte         Flags1;
00065         ILubyte         Color;
00066         ILubyte         Bayer;
00067         ILubyte         ShiftBits;
00068         ILubyte         Mantissa;
00069         ILubyte         Expbias;
00070         ILubyte         Flags2;
00071 
00072         ILubyte         NumChannels;
00073 } WDPIMGPLANE;
00074 
00075 typedef struct WDPDCQUANT
00076 {
00077         ILubyte         ChMode;
00078         ILubyte         DcQuant;
00079         ILubyte         DcQuantY;
00080         ILubyte         DcQuantUV;
00081         ILubyte         DcQuantChan;
00082 } WDPDCQUANT;
00083 
00084 typedef struct WDPTILE
00085 {
00086         ILuint          StartCode;
00087         ILubyte         HashAndType;
00088 } WDPTILE;
00089 
00090 
00091 
00092 
00093 
00094 
00095 #define WDP_CODEC                       0xF0
00096 #define WDP_SUBCODEC            0x0F
00097 
00098 
00099 #define WDP_TILING_FLAG         0x80
00100 #define WDP_BITSTREAM_FMT       0x40
00101 #define WDP_ORIENTATION         0x38
00102 #define WDP_INDEXTABLE          0x04
00103 #define WDP_OVERLAP                     0x03
00104 
00105 
00106 #define WDP_SHORT_HEADER        0x80
00107 #define WDP_LONG_WORD           0x40
00108 #define WDP_WINDOWING           0x20
00109 #define WDP_TRIM_FLEXBITS       0x10
00110 #define WDP_TILE_STRETCH        0x08
00111 #define WDP_ALPHACHANNEL        0x01
00112 
00113 
00114 #define WDP_FORMAT                      0xF0
00115 #define WDP_BITDEPTH            0x0F
00116 #define WDP_Y_ONLY                      0x00
00117 #define WDP_YUV_420                     0x01
00118 #define WDP_YUV_422                     0x02
00119 #define WDP_YUV_444                     0x03
00120 #define WDP_CMYK                        0x04
00121 #define WDP_BAYER                       0x05
00122 #define WDP_N_CHANNEL           0x06
00123 #define WDP_RGB                         0x07
00124 #define WDP_RGBE                        0x08
00125 
00126 
00127 #define WDP_BD_1_WHITE          0x00
00128 #define WDP_BD_8                        0x01
00129 #define WDP_BD_16                       0x02
00130 #define WDP_BD_16S                      0x03
00131 #define WDP_BD_16F                      0x04
00132 #define WDP_BD_32                       0x05
00133 #define WDP_BD_32S                      0x06
00134 #define WDP_BD_32F                      0x07
00135 #define WDP_BD_5                        0x08
00136 #define WDP_BD_10                       0x09
00137 #define WDP_BD_565                      0x0A
00138 #define WDP_BD_1_BLACK          0x0F
00139 
00140 
00141 
00142 
00143 
00144 
00145 
00146 #define WDP_CLR_FMT                     0xE0
00147 #define WDP_NO_SCALED           0x10
00148 #define WDP_BANDS_PRESENT       0x0F
00149 
00150 
00151 #define WDP_NUM_CHANS           0xF0
00152 #define WDP_COLOR_INTERP        0x0F
00153 
00154 
00155 #define WDP_DC_FRAME            0x80
00156 
00157 
00158 #define WDP_CH_UNIFORM          0x00
00159 #define WDP_CH_SEPARATE         0x01
00160 #define WDP_CH_INDEPENDENT      0x02
00161 
00162 
00163 #define WDP_TILE_HASH           0xF8
00164 #define WDP_TILE_TYPE           0x03
00165 #define WDP_SPATIAL_TILE        0x00
00166 #define WDP_DC_TILE                     0x01
00167 #define WDP_LOWPASS_TILE        0x02
00168 #define WDP_HIGHPASS_TILE       0x03
00169 #define WDP_FLEXBITS_TILE       0x04
00170 
00171 
00172 #define WDP_SB_ALL                      0x00
00173 #define WDP_SB_NO_FLEXBITS      0x01
00174 #define WDP_SB_NO_HIGHPASS      0x02
00175 #define WDP_SB_DC_ONLY          0x03
00176 #define WDP_SB_ISOLATED         0x04
00177 
00178 
00179 
00180 
00181 
00182 ILboolean       iIsValidWdp();
00183 ILboolean       iCheckWdp(WDPHEAD *Header);
00184 ILboolean       iLoadWdpInternal();
00185 ILuint          VLWESC();
00186 
00187 
00188 #endif//WDP_H