10 |
|
#include "copyright.h" |
11 |
|
|
12 |
|
#include <stdio.h> |
13 |
+ |
#include <stdlib.h> |
14 |
|
#include <string.h> |
15 |
|
#include <math.h> |
16 |
|
#include <time.h> |
17 |
|
|
17 |
– |
#include "tmprivat.h" |
18 |
– |
#include "resolu.h" |
18 |
|
#ifdef PCOND |
19 |
|
#include "rtprocess.h" |
20 |
|
#endif |
21 |
+ |
#include "tmprivat.h" |
22 |
+ |
#include "resolu.h" |
23 |
|
|
24 |
|
#define GAMTSZ 1024 |
25 |
|
|
90 |
|
li = cd->clfb[RED]*cmon[RED] + |
91 |
|
cd->clfb[GRN]*cmon[GRN] + |
92 |
|
cd->clfb[BLU]*cmon[BLU] ; |
93 |
< |
if (li >= 0xff00) li = 255; |
94 |
< |
else li >>= 8; |
93 |
> |
if (li >= 0xfff00) li = 255; |
94 |
> |
else li >>= 12; |
95 |
|
bi = BRT2SCALE(cmon[EXP]-COLXS) + cd->inpsfb; |
96 |
|
if (li > 0) |
97 |
|
bi += logi[li]; |
124 |
|
for (j = 3; j--; ) |
125 |
|
if (cmon[j] < 0) cmon[j] = 0; |
126 |
|
} |
127 |
< |
bi = ( (int32)GAMTSZ*cd->clfb[RED]*cmon[RED]/li ) >> 8; |
127 |
> |
bi = ( (int32)GAMTSZ*cd->clfb[RED]*cmon[RED]/li ) >> 12; |
128 |
|
cs[3*i ] = bi>=GAMTSZ ? 255 : cd->gamb[bi]; |
129 |
< |
bi = ( (int32)GAMTSZ*cd->clfb[GRN]*cmon[GRN]/li ) >> 8; |
129 |
> |
bi = ( (int32)GAMTSZ*cd->clfb[GRN]*cmon[GRN]/li ) >> 12; |
130 |
|
cs[3*i+1] = bi>=GAMTSZ ? 255 : cd->gamb[bi]; |
131 |
< |
bi = ( (int32)GAMTSZ*cd->clfb[BLU]*cmon[BLU]/li ) >> 8; |
131 |
> |
bi = ( (int32)GAMTSZ*cd->clfb[BLU]*cmon[BLU]/li ) >> 12; |
132 |
|
cs[3*i+2] = bi>=GAMTSZ ? 255 : cd->gamb[bi]; |
133 |
|
} |
134 |
|
returnOK; |
432 |
|
|
433 |
|
cd = (COLRDATA *)tms->pd[colrReg]; |
434 |
|
for (i = 3; i--; ) |
435 |
< |
cd->clfb[i] = 0x100*tms->clf[i] + .5; |
436 |
< |
d = TM_BRTSCALE*log(tms->inpsf); |
436 |
< |
cd->inpsfb = d<0. ? d-.5 : d+.5; |
435 |
> |
cd->clfb[i] = 0x1000*tms->clf[i] + .5; |
436 |
> |
cd->inpsfb = tmCvLuminance(tms->inpsf); |
437 |
|
for (i = 3; i--; ) |
438 |
|
for (j = 3; j--; ) { |
439 |
|
d = tms->cmat[i][j] / tms->inpsf; |