2 ; $Source: x:/prj/tech/libsrc/g2/RCS/fl8lo2wi.asm $
5 ; $Date: 1996/11/04 13:57:15 $
7 ; Inner loop of opaque linear mapping primitive.
9 ; This file is part of the g2 library.
23 public _g2d_o2wi_mask_u
24 public _g2d_o2wi_mask_v
25 public _g2d_o2wi_shift_v
26 public _g2d_o2wi_p_src
28 public _g2d_o2wi_last_mask_u
29 _g2d_o2wi_last_mask_u
dd 0deadbeefh
30 public _g2d_o2wi_last_mask_v
31 _g2d_o2wi_last_mask_v
dd 0deadbeefh
32 public _g2d_o2wi_last_p_src
33 _g2d_o2wi_last_p_src
dd 0deadbeefh
34 public _g2d_o2wi_last_shift_v
35 _g2d_o2wi_last_shift_v
db 0ffh
37 public _g2d_ltab_dither0
38 public _g2d_ltab_dither1
40 buffer_end
equ _g2d_tmap_buffer
[G2C_TMAP_BUFFER_SIZE
]
41 ltab
equ _g2d_tmap_info
[G2S_TMAP_LTAB
]
42 p_dest
equ _g2d_tmap_info
[G2S_TMAP_P_DEST
]
43 du
equ _g2d_tmap_info
[G2S_TMAP_DUX
]
44 dv
equ _g2d_tmap_info
[G2S_TMAP_DVX
]
45 i_delta
equ _g2d_tmap_info
[G2S_TMAP_DIX
]
46 i
equ _g2d_tmap_info
[G2S_TMAP_I
]
47 drow
equ _g2d_tmap_info
[G2S_TMAP_DROW
]
52 ; takes eax=-count, ebx:u, ecx:v
54 public flat8_flat8_opaque_p2_wrap_il_chained_
55 public _flat8_flat8_opaque_p2_wrap_il_chained
56 _flat8_flat8_opaque_p2_wrap_il_chained:
57 flat8_flat8_opaque_p2_wrap_il_chained_:
58 mov edx, ecx ;v_temp = v
59 mov esi, ebx ;u_temp = u
84 mov dl, 0deadbeefh
[esi+edx]
88 mov buffer_end
[eax], dl
99 _FUNCDEF flat8_flat8_opaque_p2_wrap_il_chain_from_c
, 3
104 mov ecx, ebx ; ecx = v
105 mov ebx, edx ; ebx = u
106 call flat8_flat8_opaque_p2_wrap_il_chained_
119 _FUNCDEF flat8_flat8_lit_opaque_p2_wrap_il
, 3
138 call flat8_flat8_opaque_p2_wrap_il_chained_
159 mov al, [ebp] ;read cache line
161 mov ecx, 0 ;don't xor! need to preserve flags
164 ; eax i high 16 = frac; al = int
165 ; ebx di high 16 = frac; bl = int
177 mov dl, buffer_end
[esi]-1
180 mov cl, buffer_end
[esi]
208 _FUNCDEF flat8_flat8_lit_opaque_p2_wrap_dither_il
, 3
227 call flat8_flat8_opaque_p2_wrap_il_chained_
257 mov dl, buffer_end
[esi]-1
262 mov dl, 0deadbeefh
[edx]
264 mov cl, buffer_end
[esi]
271 mov dh, 0deadbeefh
[ecx]
277 js dithered_light_loop
293 inc esi ;set zf=0, sf=0