22 FNAME(store_pixel) (
ZBuffer *zb, PIXEL &result,
int r,
int g,
int b,
int a) {
23 unsigned int fr = PIXEL_R(result);
24 unsigned int fg = PIXEL_G(result);
25 unsigned int fb = PIXEL_B(result);
26 unsigned int fa = PIXEL_A(result);
28 r = STORE_PIXEL_0(fr, ((
unsigned int)r * OP_A(fr, r) >> 16) + ((
unsigned int)fr * OP_B(fr, r) >> 16));
29 g = STORE_PIXEL_1(fg, ((
unsigned int)g * OP_A(fg, g) >> 16) + ((
unsigned int)fg * OP_B(fg, g) >> 16));
30 b = STORE_PIXEL_2(fg, ((
unsigned int)b * OP_A(fb, b) >> 16) + ((
unsigned int)fb * OP_B(fb, b) >> 16));
31 a = STORE_PIXEL_3(fg, ((
unsigned int)a * OP_A(fa, a) >> 16) + ((
unsigned int)fa * OP_B(fa, a) >> 16));
32 result = RGBA_TO_PIXEL(r, g, b, a);
39 FNAME_S(store_pixel) (
ZBuffer *zb, PIXEL &result,
int r,
int g,
int b,
int a) {
40 unsigned int fr = PIXEL_SR(result);
41 unsigned int fg = PIXEL_SG(result);
42 unsigned int fb = PIXEL_SB(result);
43 unsigned int fa = PIXEL_A(result);
45 r = STORE_PIXEL_0(fr, ((
unsigned int)r * OP_A(fr, r) >> 16) + ((
unsigned int)fr * OP_B(fr, r) >> 16));
46 g = STORE_PIXEL_1(fg, ((
unsigned int)g * OP_A(fg, g) >> 16) + ((
unsigned int)fg * OP_B(fg, g) >> 16));
47 b = STORE_PIXEL_2(fg, ((
unsigned int)b * OP_A(fb, b) >> 16) + ((
unsigned int)fb * OP_B(fb, b) >> 16));
48 a = STORE_PIXEL_3(fg, ((
unsigned int)a * OP_A(fa, a) >> 16) + ((
unsigned int)fa * OP_B(fa, a) >> 16));
49 result = SRGBA_TO_PIXEL(r, g, b, a);