17 #ifndef __IMG_RasterTypes__
18 #define __IMG_RasterTypes__
26 #define IMG_SMALL_IMAGE 100 // Default size for scaled loading
28 #define IMG_COMPOSITE_CLEAR 0x100
109 #define CHANNEL_BITS 8
110 #define BIG_CHANNEL_BITS 16
111 #define HUE_CHANNEL_BITS 15
112 #define SAT_CHANNEL_BITS 15
113 #define VAL_CHANNEL_BITS 16
114 #define ALP_CHANNEL_BITS 16 // HSVA alpha
116 #define CHANNEL_MAX 0xFF
117 #define BIG_CHANNEL_MAX 0xFFFF
118 #define HUE_CHANNEL_MAX 0x7FFF
119 #define SAT_CHANNEL_MAX 0x7FFF
120 #define VAL_CHANNEL_MAX 0xFFFF
121 #define ALP_CHANNEL_MAX 0xFFFF // HSVA alpha
123 #define POINT_FIVE 0x80
124 #define BIG_POINT_FIVE 0x8000
126 #define CHANNEL_SHIFT (BIG_CHANNEL_BITS - CHANNEL_BITS)
129 #define HUE_SHIFT (HUE_CHANNEL_BITS - CHANNEL_BITS)
130 #define SAT_SHIFT (SAT_CHANNEL_BITS - CHANNEL_BITS)
131 #define VAL_SHIFT (VAL_CHANNEL_BITS - CHANNEL_BITS)
132 #define HUE_POINT_FIVE (1 << (HUE_SHIFT - 1))
133 #define SAT_POINT_FIVE (1 << (SAT_SHIFT - 1))
134 #define VAL_POINT_FIVE (1 << (VAL_SHIFT - 1))
135 #define HUE_TO_SMALL_CHANNEL(v) (((v) + HUE_POINT_FIVE) >> HUE_SHIFT)
136 #define SAT_TO_SMALL_CHANNEL(v) (((v) + SAT_POINT_FIVE) >> SAT_SHIFT)
137 #define VAL_TO_SMALL_CHANNEL(v) (((v) + VAL_POINT_FIVE) >> VAL_SHIFT)
140 #define BIG_HUE_SHIFT (BIG_CHANNEL_BITS - HUE_CHANNEL_BITS)
141 #define BIG_SAT_SHIFT (BIG_CHANNEL_BITS - SAT_CHANNEL_BITS)
142 #define BIG_VAL_SHIFT (BIG_CHANNEL_BITS - VAL_CHANNEL_BITS)
143 #define HUE_ROUND(v) ((v) >>((HUE_CHANNEL_BITS<<1)-BIG_CHANNEL_BITS))
144 #define SAT_ROUND(v) ((v) >>((SAT_CHANNEL_BITS<<1)-BIG_CHANNEL_BITS))
145 #define VAL_ROUND(v) ((v) >>((VAL_CHANNEL_BITS<<1)-BIG_CHANNEL_BITS))
146 #define HUE_TO_BIG_CHANNEL(v) (((v) << BIG_HUE_SHIFT) | HUE_ROUND(v))
147 #define SAT_TO_BIG_CHANNEL(v) (((v) << BIG_SAT_SHIFT) | SAT_ROUND(v))
148 #define VAL_TO_BIG_CHANNEL(v) (((v) << BIG_VAL_SHIFT) | VAL_ROUND(v))
150 #define BIG_TO_SMALL_CHANNEL(v) ((v) >> CHANNEL_SHIFT)
151 #define SMALL_TO_BIG_CHANNEL(v) ((v) << CHANNEL_SHIFT | (v))
153 #define MONO_WEIGHTR 76 // .299
154 #define MONO_WEIGHTG 151 // .587
155 #define MONO_WEIGHTB 29 // .114
157 #define NTSC_LUM(r, g, b) ((((r) * MONO_WEIGHTR) \
158 + ((g) * MONO_WEIGHTG) \
159 + ((b) * MONO_WEIGHTB)) >> 8)
void(* IMG_UnaryOp8)(UT_RGBA *pixel, int length)
GLuint GLsizei GLsizei * length
void(* IMG_UnaryOp)(UT_RGBA *pixel)
UT_RGBAT< uint8 > UT_RGBA
void(* IMG_Compositebit_16_16)(UT_BIG_RGBA *dest, UT_BIG_RGBA *op, int len)
void(* IMG_UnaryOp16)(UT_BIG_RGBA *pixel, int length)
UT_RGBAT< uint16 > UT_BIG_RGBA
#define IMG_COMPOSITE_CLEAR
void(* IMG_Compositebit_16_8)(UT_BIG_RGBA *dest, UT_RGBA *op, int len)
void(* IMG_Compositebit_8_8)(UT_RGBA *dest, UT_RGBA *op, int len)
void(* IMG_Compositebit_8_16)(UT_RGBA *dest, UT_BIG_RGBA *op, int len)