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