1 // $Header: x:/prj/tech/libsrc/g2/RCS/shadhack.c 1.6 1998/04/28 14:29:32 KEVIN Exp $
10 static void golf_shadow_hack_il(g2s_raster
*r
, g2s_poly_params
*tp
)
14 int row
, left
, right
, x
, x_last
;
21 if ((r
->y
< grd_clip
.top
) || (r
->y
>= grd_clip
.bot
))
26 offset_max
= (uint
)(row
* tp
->bm
->h
);
28 right
= grd_clip
.right
;
29 dst
= (ushort
*)(grd_bm
.bits
+ r
->y
* grd_bm
.row
);
36 x_last
= x
+ r
->n
- 1;
48 if ((x
< left
) || (x
>= right
))
51 offset
= (uint
)(fix_int(u
) + fix_int(v
)*row
);
52 if (offset
>= offset_max
)
58 clut
= (ushort
*)(tluc8tab
[c
]);
60 dst
[x
] = clut
[c16
&0xff] + clut
[256 + (c16
>>8)];
64 void golf_shadow_hack(grs_bitmap
*bm
, int n
, g2s_point
**vpl
)
74 tp
.inner_loop
= golf_shadow_hack_il
;
75 tp
.raster_func
= gen_raster_loop
;
76 tp
.right_edge_func
= gen_right_edge
;
77 tp
.left_edge_func
= gen_left_edge
;
78 tp
.grad_func
= gen_triangle_gradients
;
80 g2_trifan(&tp
, n
, vpl
);