Rev 6619 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 6619 | Rev 6769 | ||
---|---|---|---|
Line 75... | Line 75... | ||
75 | end if |
75 | end if |
76 | } |
76 | } |
77 | macro .draw_pixel |
77 | macro .draw_pixel |
78 | { |
78 | { |
79 | mov [esi],ebx ; actualize Z buffer |
79 | mov [esi],ebx ; actualize Z buffer |
80 | if Ext=SSE2 |
80 | if Ext>=SSE2 |
81 | movaps xmm7,xmm1 ;[.cb] ;;xmm1 |
81 | movaps xmm7,xmm1 ;[.cb] ;;xmm1 |
82 | shufps xmm7,xmm7,00111001b |
82 | shufps xmm7,xmm7,00111001b |
83 | psrld xmm7,ROUND |
83 | psrld xmm7,ROUND |
84 | packssdw xmm7,xmm7 |
84 | packssdw xmm7,xmm7 |
85 | packuswb xmm7,xmm7 |
85 | packuswb xmm7,xmm7 |
Line 134... | Line 134... | ||
134 | or eax,ebx |
134 | or eax,ebx |
135 | test eax,80008000h |
135 | test eax,80008000h |
136 | jne .end_line |
136 | jne .end_line |
137 | movzx edx,word [size_x_var] |
137 | movzx edx,word [size_x_var] |
138 | mov [.xres],edx |
138 | mov [.xres],edx |
- | 139 | dec edx |
|
139 | movzx ecx,word [size_y_var] |
140 | movzx ecx,word [size_y_var] |
140 | mov [.yres],ecx |
141 | mov [.yres],ecx |
- | 142 | dec ecx |
|
141 | cmp word[.x1],dx ;SIZE_X |
143 | cmp word[.x1],dx ;SIZE_X |
142 | jg .end_line |
144 | jg .end_line |
143 | cmp word[.x2],dx ;SIZE_X |
145 | cmp word[.x2],dx ;SIZE_X |
144 | jg .end_line |
146 | jg .end_line |
145 | cmp word[.y1],cx ;SIZE_Y |
147 | cmp word[.y1],cx ;SIZE_Y |
Line 207... | Line 209... | ||
207 | je .end_line |
209 | je .end_line |
208 | mov [.delta_x],ebx |
210 | mov [.delta_x],ebx |
Line 209... | Line 211... | ||
209 | 211 | ||
Line 210... | Line 212... | ||
210 | call .calc_delta |
212 | call .calc_delta |
211 | 213 | ||
212 | movzx eax,word [size_x_var] ;SIZE_X |
214 | mov eax,[.xres] ;SIZE_X |
213 | movsx ebx,word[.y1] |
215 | movsx ebx,word[.y1] |
214 | mul ebx |
216 | mul ebx |
215 | add esi,eax |
217 | add esi,eax |
Line 273... | Line 275... | ||
273 | je .end_line |
275 | je .end_line |
274 | mov [.delta_y],ebx |
276 | mov [.delta_y],ebx |
Line 275... | Line 277... | ||
275 | 277 | ||
Line 276... | Line 278... | ||
276 | call .calc_delta |
278 | call .calc_delta |
277 | 279 | ||
278 | movzx eax,word[size_x_var] ;SIZE_X |
280 | mov eax,[.xres] ;SIZE_X |
279 | movsx ebx,word[.y1] |
281 | movsx ebx,word[.y1] |
280 | mul ebx |
282 | mul ebx |
281 | add esi,eax |
283 | add esi,eax |