10 |
|
|
11 |
|
#include "color.h" |
12 |
|
|
13 |
< |
#define MAXGSHIFT 4 /* maximum shift for gamma table */ |
13 |
> |
#define MAXGSHIFT 15 /* maximum shift for gamma table */ |
14 |
|
|
15 |
|
static BYTE g_mant[256], g_nexp[256]; |
16 |
|
|
128 |
|
register int len; |
129 |
|
register int adjust; |
130 |
|
{ |
131 |
+ |
int minexp; |
132 |
+ |
|
133 |
+ |
if (adjust == 0) |
134 |
+ |
return; |
135 |
+ |
minexp = adjust < 0 ? -adjust : 0; |
136 |
|
while (len-- > 0) { |
137 |
< |
scan[0][EXP] += adjust; |
137 |
> |
if (scan[0][EXP] <= minexp) |
138 |
> |
scan[0][RED] = scan[0][GRN] = scan[0][BLU] = |
139 |
> |
scan[0][EXP] = 0; |
140 |
> |
else |
141 |
> |
scan[0][EXP] += adjust; |
142 |
|
scan++; |
143 |
|
} |
144 |
|
} |