Rev 9237 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 9237 | Rev 9512 | ||
---|---|---|---|
Line 2... | Line 2... | ||
2 | ROUND equ 8 |
2 | ROUND equ 8 |
3 | ;NON=0 |
3 | ;NON=0 |
4 | ;MMX=1 |
4 | ;MMX=1 |
5 | ;Ext=MMX |
5 | ;SSE=2 |
- | 6 | ;SSE2=3 |
|
- | 7 | ||
- | 8 | ;Ext=SSE2 |
|
6 | ;TEX_SIZE=0x3fff |
9 | |
- | 10 | ||
- | 11 | ;TEX_SIZE=0x3fff |
|
7 | ;SIZE_X equ 512 |
12 | ;SIZE_X equ 512 |
8 | ;SIZE_Y equ 512 |
13 | ;SIZE_Y equ 512 |
9 | ;ROUND = 8 |
14 | ;ROUND = 8 |
10 | ;TEX_SHIFT equ 6 |
15 | ; TEX_SHIFT equ 6 |
11 | 16 | ; TEXTURE_SIZE = 0xFFFFF |
|
- | 17 | ||
Line 12... | Line 18... | ||
12 | ; procedure drawing textured triangle with Gouraud shading |
18 | ; procedure drawing textured triangle with Gouraud shading |
13 | ; Z-buffer alghoritm included, Z coord interpolation ---- |
19 | ; Z-buffer alghoritm included, Z coord interpolation ---- |
14 | ; I set the color by this way -- (col1 * col2)/256 ------ |
20 | ; I set the color by this way -- (col1 * col2)/256 ------ |
15 | ;------------------in - eax - x1 shl 16 + y1 ------------ |
21 | ;------------------in - eax - x1 shl 16 + y1 ------------ |
Line 62... | Line 68... | ||
62 | .y3 equ word[ebp-24] ;dw ? ;equ word[ebp-20] |
68 | .y3 equ word[ebp-24] ;dw ? ;equ word[ebp-20] |
63 | 69 | ||
64 | .dx12 equ dword[ebp-28] ;dd ? |
70 | .dx12 equ dword[ebp-28] ;dd ? |
Line 65... | Line 71... | ||
65 | .tex_dx12 equ dword[ebp-32] ;dd ? |
71 | .tex_dy12 equ [ebp-32] ;dd ? |
66 | .tex_dy12 equ [ebp-36] ;dd ? |
72 | .tex_dx12 equ [ebp-36] ;dd ? |
67 | .dz12 equ dword[ebp-40] ;dd ? |
73 | .dz12 equ dword[ebp-40] ;dd ? |
68 | .dc12r equ [ebp-44] ;dd ? |
74 | .dc12r equ [ebp-44] ;dd ? |
69 | .dc12g equ dword[ebp-48] ;dd ? |
75 | .dc12g equ dword[ebp-48] ;dd ? |
70 | .dc12b equ [ebp-52] ;dd ? |
76 | .dc12b equ [ebp-52] ;dd ? |
71 | 77 | ||
Line 72... | Line 78... | ||
72 | .dx23 equ dword[ebp-56] ;dd ? |
78 | .dx23 equ dword[ebp-56] ;dd ? |
73 | .tex_dx23 equ dword[ebp-60] ;dd ? |
79 | .tex_dy23 equ [ebp-60] ;dd ? |
74 | .tex_dy23 equ [ebp-64] ;dd ? |
80 | .tex_dx23 equ [ebp-64] ;dd ? |
75 | .dz23 equ dword[ebp-68] ;dd ? |
81 | .dz23 equ dword[ebp-68] ;dd ? |
76 | .dc23r equ [ebp-72] ;dd ? |
82 | .dc23r equ [ebp-72] ;dd ? |
77 | .dc23g equ dword[ebp-76] ;dd ? |
83 | .dc23g equ dword[ebp-76] ;dd ? |
78 | .dc23b equ [ebp-80] ;dword[ebp-8]dd ? |
84 | .dc23b equ [ebp-80] ;dword[ebp-8]dd ? |
Line 79... | Line 85... | ||
79 | 85 | ||
80 | .dx13 equ dword[ebp-84] ;dd ? |
86 | .dx13 equ dword[ebp-84] ;dd ? |
81 | .tex_dx13 equ dword[ebp-88] ;dd ? |
87 | .tex_dy13 equ [ebp-88] ;dd ? |
82 | .tex_dy13 equ [ebp-92] ;dd ? |
88 | .tex_dx13 equ [ebp-92] ;dd ? |
83 | .dz13 equ dword[ebp-96] ;dd ? |
89 | .dz13 equ dword[ebp-96] ;dd ? |
84 | .dc13r equ [ebp-100] ;dd ? |
90 | .dc13r equ [ebp-100] ;dd ? |
85 | .dc13g equ dword[ebp-104] ;dd ? |
91 | .dc13g equ dword[ebp-104] ;dd ? |
Line 86... | Line 92... | ||
86 | .dc13b equ [ebp-108] ;dd ? |
92 | .dc13b equ [ebp-108] ;dd ? |
87 | 93 | ||
88 | .scan_x1 equ dword[ebp-112] ;dd ? |
94 | .scan_y1 equ [ebp-112] ;dd ? |
89 | .scan_y1 equ [ebp-116] ;dd ? |
95 | .scan_x1 equ [ebp-116] ;dd ? |
90 | .zz1 equ dword[ebp-120] ;dw ? |
96 | .zz1 equ dword[ebp-120] ;dw ? |
91 | .cur1r equ [ebp-124] ;dw ? |
97 | .cur1r equ [ebp-124] ;dw ? |
Line 92... | Line 98... | ||
92 | .cur1g equ dword[ebp-128] ;dw ? |
98 | .cur1g equ [ebp-128] ;dw ? |
93 | .cur1b equ [ebp-132] ;dw ? |
99 | .cur1b equ [ebp-132] ;dw ? |
94 | 100 | ||
95 | .scan_x2 equ dword[ebp-136] ;dd ? |
101 | .scan_y2 equ [ebp-136] ;dd ? |
96 | .scan_y2 equ [ebp-140] ;dd ? |
102 | .scan_x2 equ [ebp-140] ;dd ? |
97 | .zz2 equ dword[ebp-144] ;dw ? |
103 | .zz2 equ [ebp-144] ;dw ? |
Line 98... | Line 104... | ||
98 | .cur2r equ [ebp-148] ;dw ? |
104 | .cur2r equ [ebp-148] ;dw ? |
Line 99... | Line -... | ||
99 | .cur2g equ dword[ebp-152] ;dw ? |
- | |
100 | .cur2b equ [ebp-156] ;dw ? |
- | |
101 | - | ||
102 | 105 | .cur2g equ [ebp-152] ;dw ? |
|
103 | mov ebp,esp |
- | |
104 | - | ||
- | 106 | .cur2b equ [ebp-156] ;dw ? |
|
105 | ; mov .tex_ptr,edx |
107 | |
106 | ; mov .z_ptr,esi |
108 | |
107 | ; mov .scr_buff,edi |
109 | mov ebp,esp |
108 | push edx esi edi |
110 | |
109 | ; push esi |
111 | push edx esi edi |
Line 182... | Line 184... | ||
182 | loop @b |
184 | loop @b |
183 | jmp .dx12_done |
185 | jmp .dx12_done |
184 | .dx12_make: |
186 | .dx12_make: |
185 | 187 | ; sub esp,7*4 |
|
186 | 188 | ||
- | 189 | movsx ebx,bx |
|
Line 187... | Line -... | ||
187 | mov ax,.x2 |
- | |
188 | sub ax,.x1 |
- | |
189 | cwde |
- | |
190 | movsx ebx,bx |
- | |
191 | shl eax,ROUND |
190 | mov eax,1 shl 15 |
192 | cdq |
191 | cdq |
193 | idiv ebx |
192 | idiv ebx |
194 | ; mov .dx12,eax |
193 | ; push eax |
195 | push eax |
- | |
196 | 194 | mov ebx,eax |
|
197 | if 0 ; Ext=SSE |
- | |
198 | movd mm0,.col1r ; 2 words r, g |
- | |
199 | pxor mm1,mm1 |
- | |
200 | punpcklwd mm0,mm1 |
- | |
201 | cvtpi2ps xmm0,mm0 |
- | |
202 | movlhps xmm0,xmm0 |
- | |
203 | movd mm0,.col1g ; 2 words b, z |
195 | |
204 | punpcklwd mm0,mm1 |
- | |
205 | cvtpi2ps xmm0,mm0 |
- | |
206 | ; xmm0=four float double words |
- | |
207 | divss xmm0,.pack3 |
- | |
208 | ;convert and insert mm0 to lower xmm1 .. |
- | |
209 | end if |
- | |
210 | - | ||
Line 211... | Line -... | ||
211 | mov ax,word .tex_x2 |
- | |
212 | sub ax,word .tex_x1 |
- | |
213 | cwde |
- | |
214 | shl eax,ROUND |
- | |
215 | cdq |
- | |
216 | idiv ebx |
- | |
217 | ; mov .tex_dx12r,eax |
- | |
218 | push eax |
- | |
Line 219... | Line -... | ||
219 | - | ||
220 | mov ax,word .tex_y2 |
- | |
221 | sub ax,word .tex_y1 |
- | |
222 | cwde |
- | |
223 | shl eax,ROUND |
- | |
224 | cdq |
- | |
225 | idiv ebx |
196 | |
226 | ; mov .tex_dx12,eax |
- | |
227 | push eax |
- | |
228 | - | ||
229 | mov ax,word .z2 |
197 | mov ax,.x2 |
230 | sub ax,word .z1 |
- | |
231 | cwde |
- | |
232 | shl eax,CATMULL_SHIFT |
- | |
233 | cdq |
- | |
234 | idiv ebx |
- | |
235 | ; mov .dz12,eax |
- | |
236 | push eax ; .dza12 |
- | |
237 | - | ||
238 | mov ax,word .col2r |
- | |
239 | sub ax,word .col1r |
198 | sub ax,.x1 |
240 | cwde |
- | |
241 | shl eax,ROUND |
- | |
242 | cdq |
199 | cwde |
243 | idiv ebx |
200 | imul ebx |
244 | ; mov .dc12r,eax |
201 | sar eax,15 - ROUND |
- | 202 | push eax |
|
Line -... | Line 203... | ||
- | 203 | ; mov .dx12,eax |
|
- | 204 | ||
- | 205 | sub esp,6*4 |
|
- | 206 | movd xmm0,ebx |
|
- | 207 | pshuflw xmm0,xmm0,0 |
|
- | 208 | ; pshufd xmm0,xmm0,0 |
|
245 | push eax |
209 | movlhps xmm0,xmm0 |
- | 210 | movq xmm1,.col1r |
|
- | 211 | movq xmm2,.col2r |
|
246 | 212 | movhps xmm1,.tex_x1 |
|
- | 213 | movhps xmm2,.tex_x2 |
|
- | 214 | psubw xmm2,xmm1 |
|
247 | mov ax,word .col2g |
215 | movdqa xmm3,xmm2 |
- | 216 | pmullw xmm2,xmm0 |
|
248 | sub ax,word .col1g |
217 | pmulhw xmm3,xmm0 |
249 | cwde |
218 | movhlps xmm4,xmm2 |
250 | shl eax,ROUND |
219 | movhlps xmm5,xmm3 |
- | 220 | punpcklwd xmm2,xmm3 |
|
- | 221 | punpcklwd xmm4,xmm5 |
|
- | 222 | psrad xmm2,15 - ROUND |
|
251 | cdq |
223 | psrad xmm4,15 - ROUND |
252 | idiv ebx |
224 | pshufd xmm2,xmm2,11000110b |
- | 225 | movdqu .dc12b,xmm2 |
|
- | 226 | ; punpcklwd xmm4,xmm5 |
|
Line 253... | Line -... | ||
253 | ; mov .dc12g,eax |
- | |
254 | push eax |
- | |
255 | - | ||
256 | mov ax,word .col2b ;;--- |
- | |
257 | sub ax,word .col1b |
- | |
258 | cwde |
- | |
259 | shl eax,ROUND |
- | |
260 | cdq |
- | |
Line 261... | Line 227... | ||
261 | idiv ebx |
227 | ; psrad xmm4,15 - ROUND |
262 | ; mov .dc12b,eax |
228 | movq .tex_dx12,xmm4 |
Line 263... | Line 229... | ||
263 | push eax |
229 | |
Line 275... | Line 241... | ||
275 | jmp .dx23_done |
241 | jmp .dx23_done |
276 | 242 | ||
277 | .dx23_make: |
243 | .dx23_make: |
Line 278... | Line 244... | ||
278 | mov ax,.x3 |
244 | movsx ebx,bx |
279 | sub ax,.x2 |
- | |
280 | cwde |
- | |
281 | movsx ebx,bx |
- | |
282 | shl eax,ROUND |
245 | mov eax,1 shl 15 |
283 | cdq |
246 | cdq |
284 | idiv ebx |
247 | idiv ebx |
285 | ; mov .dx23,eax |
248 | mov ebx,eax |
286 | push eax |
249 | |
287 | - | ||
Line 288... | Line -... | ||
288 | mov ax,word .tex_x3 |
- | |
289 | sub ax,word .tex_x2 |
- | |
290 | cwde |
- | |
291 | shl eax,ROUND |
- | |
292 | cdq |
- | |
293 | idiv ebx |
- | |
294 | ; mov .tex_dx23,eax |
- | |
295 | push eax |
- | |
Line 296... | Line 250... | ||
296 | 250 | ||
297 | mov ax,word .tex_y3 |
251 | mov ax,.x3 |
298 | sub ax,word .tex_y2 |
252 | sub ax,.x2 |
299 | cwde |
- | |
300 | shl eax,ROUND |
- | |
301 | cdq |
253 | cwde |
302 | idiv ebx |
254 | imul ebx |
303 | ; mov .tex_dy23,eax |
255 | sar eax,15 - ROUND |
Line 304... | Line 256... | ||
304 | push eax |
256 | push eax |
305 | 257 | ||
306 | mov ax,word .z3 |
258 | sub esp,6*4 |
307 | sub ax,word .z2 |
259 | movd xmm0,ebx |
308 | cwde ; |
260 | pshuflw xmm0,xmm0,0 |
309 | shl eax,CATMULL_SHIFT ; 2222222 |
261 | movlhps xmm0,xmm0 |
310 | cdq ; 2 2 |
262 | movq xmm1,.col2r |
311 | idiv ebx ; 2 |
263 | movq xmm2,.col3r |
312 | ; mov .dz23,eax ; 2 |
264 | movhps xmm1,.tex_x2 |
313 | push eax ; .dza12 ; 2 |
265 | movhps xmm2,.tex_x3 |
314 | ; 2 |
266 | psubw xmm2,xmm1 |
315 | mov ax,word .col3r ; 2 |
267 | movdqa xmm3,xmm2 |
316 | sub ax,word .col2r ; 2222222 |
268 | pmullw xmm2,xmm0 |
317 | cwde ; second delta |
269 | pmulhw xmm3,xmm0 |
- | 270 | movhlps xmm4,xmm2 |
|
318 | shl eax,ROUND ; |
271 | movhlps xmm5,xmm3 |
- | 272 | punpcklwd xmm2,xmm3 |
|
- | 273 | punpcklwd xmm4,xmm5 |
|
- | 274 | psrad xmm2,15 - ROUND |
|
319 | cdq ; |
275 | psrad xmm4,15 - ROUND |
320 | idiv ebx ; |
276 | pshufd xmm2,xmm2,11000110b |
Line 321... | Line -... | ||
321 | ; mov .dc23r,eax ; |
- | |
322 | push eax |
- | |
323 | - | ||
324 | mov ax,word .col3g |
- | |
325 | sub ax,word .col2g |
- | |
326 | cwde |
- | |
327 | shl eax,ROUND |
- | |
328 | cdq |
- | |
329 | idiv ebx |
- | |
330 | ; mov .dc23g,eax |
- | |
331 | push eax |
- | |
332 | - | ||
333 | mov ax,word .col3b ;;--- |
- | |
334 | sub ax,word .col2b |
- | |
335 | cwde |
- | |
336 | shl eax,ROUND |
- | |
337 | cdq |
- | |
Line 338... | Line 277... | ||
338 | idiv ebx |
277 | movdqu .dc23b,xmm2 |
339 | ; mov .dc23b,eax |
278 | movq .tex_dx23,xmm4 |
340 | push eax |
279 | |
341 | 280 | ||
Line 350... | Line 289... | ||
350 | loop @b |
289 | loop @b |
351 | jmp .dx13_done |
290 | jmp .dx13_done |
352 | .dx13_make: |
291 | .dx13_make: |
353 | mov ax,.x3 |
292 | movsx ebx,bx |
354 | sub ax,.x1 |
293 | mov eax,1 shl 15 |
355 | cwde |
- | |
356 | movsx ebx,bx |
- | |
357 | shl eax,ROUND |
- | |
358 | cdq |
294 | cdq |
359 | idiv ebx |
295 | idiv ebx |
360 | ; mov .dx13,eax |
296 | mov ebx,eax |
361 | push eax |
297 | |
362 | 298 | ||
363 | mov ax,word .tex_x3 ; triangle b |
- | |
364 | sub ax,word .tex_x1 |
- | |
365 | cwde |
- | |
366 | shl eax,ROUND |
- | |
367 | cdq |
- | |
368 | idiv ebx |
- | |
369 | ; mov .tex_dx13r,eax |
- | |
370 | push eax |
- | |
371 | - | ||
372 | mov ax,word .tex_y3 |
- | |
373 | sub ax,word .tex_y1 |
- | |
374 | cwde |
- | |
375 | shl eax,ROUND |
- | |
376 | cdq |
- | |
377 | idiv ebx |
- | |
378 | ; mov .tex_dy13,eax |
- | |
379 | push eax |
- | |
380 | - | ||
381 | mov ax,word .z3 |
- | |
Line 382... | Line -... | ||
382 | sub ax,word .z1 ; 333333333 |
- | |
383 | cwde ; 3 3 |
- | |
384 | shl eax,CATMULL_SHIFT ; 3 |
- | |
385 | cdq ; 3 |
- | |
386 | idiv ebx ; 3 |
- | |
387 | ; mov .dz13,eax ; 3 |
- | |
388 | push eax ; .dza12 ; 3 |
- | |
389 | ; 3 |
- | |
390 | mov ax,word .col3r ; 3333333333 |
- | |
391 | sub ax,word .col1r ; 3 |
- | |
392 | cwde ; 3 |
- | |
393 | shl eax,ROUND ; 3 |
- | |
394 | cdq ; 3 |
- | |
395 | idiv ebx ; 3 |
- | |
396 | ; mov .dc13r,eax ; 3 3 |
- | |
397 | push eax ; 33333333 |
- | |
398 | - | ||
Line 399... | Line -... | ||
399 | mov ax,word .col3g |
- | |
400 | sub ax,word .col1g |
- | |
401 | cwde |
- | |
402 | shl eax,ROUND |
- | |
403 | cdq |
- | |
404 | idiv ebx |
- | |
405 | ; mov .dc13g,eax |
299 | mov ax,.x3 |
406 | push eax |
- | |
407 | - | ||
408 | mov ax,word .col3b ;;--- |
- | |
409 | sub ax,word .col1b |
300 | sub ax,.x1 |
410 | cwde |
301 | cwde |
411 | shl eax,ROUND |
- | |
412 | cdq |
- | |
413 | idiv ebx |
302 | imul ebx |
414 | ; mov .dc13b,eax |
303 | sar eax,15 - ROUND |
415 | push eax |
304 | push eax |
Line -... | Line 305... | ||
- | 305 | ||
- | 306 | sub esp,6*4 |
|
- | 307 | movd xmm0,ebx |
|
- | 308 | pshuflw xmm0,xmm0,0 |
|
- | 309 | movlhps xmm0,xmm0 |
|
- | 310 | movq xmm1,.col1r |
|
- | 311 | movq xmm2,.col3r |
|
- | 312 | movhps xmm1,.tex_x1 |
|
- | 313 | movhps xmm2,.tex_x3 |
|
- | 314 | psubw xmm2,xmm1 |
|
- | 315 | movdqa xmm3,xmm2 |
|
- | 316 | pmullw xmm2,xmm0 |
|
- | 317 | pmulhw xmm3,xmm0 |
|
- | 318 | movhlps xmm4,xmm2 |
|
- | 319 | movhlps xmm5,xmm3 |
|
- | 320 | punpcklwd xmm2,xmm3 |
|
- | 321 | punpcklwd xmm4,xmm5 |
|
- | 322 | psrad xmm2,15 - ROUND |
|
- | 323 | psrad xmm4,15 - ROUND |
|
- | 324 | pshufd xmm2,xmm2,11000110b |
|
- | 325 | movdqu .dc13b,xmm2 |
|
416 | 326 | movq .tex_dx13,xmm4 |
|
Line 417... | Line 327... | ||
417 | .dx13_done: |
327 | .dx13_done: |
- | 328 | ||
418 | 329 | ; <<<<<<< ::delta zone end+++++++++++++++++++++ >>>>>>>> |
|
Line 419... | Line 330... | ||
419 | ; <<<<<<< ::delta zone end+++++++++++++++++++++ >>>>>>>> |
330 | |
420 | sub esp,55 ;(12*4) |
331 | sub esp,(12*4) |
421 | 332 | ||
- | 333 | movsx eax,.x1 ; eax - cur x1 |
|
- | 334 | shl eax,ROUND ; ebx - cur x2 |
|
- | 335 | mov ebx,eax |
|
- | 336 | ||
- | 337 | ||
- | 338 | movzx edi,word .tex_x1 |
|
- | 339 | shl edi,ROUND |
|
- | 340 | mov .scan_x1,edi |
|
- | 341 | mov .scan_x2,edi |
|
- | 342 | ; push edi |
|
- | 343 | ; push edi |
|
- | 344 | movzx edx,word .tex_y1 |
|
- | 345 | shl edx,ROUND |
|
- | 346 | ; push edx |
|
- | 347 | ; push edx |
|
422 | movsx eax,.x1 ; eax - cur x1 |
348 | mov .scan_y1,edx |
423 | shl eax,ROUND ; ebx - cur x2 |
349 | mov .scan_y2,edx |
- | 350 | ||
- | 351 | movsx edx,word .z1 |
|
424 | mov ebx,eax |
352 | shl edx,CATMULL_SHIFT |
425 | movsx edx,word .z1 |
353 | ; push edx |
Line 426... | Line 354... | ||
426 | shl edx,CATMULL_SHIFT |
354 | ; push edx |
427 | mov .zz1,edx |
355 | mov .zz1,edx |
Line 440... | Line 368... | ||
440 | mov .cur1b,edx |
368 | mov .cur1b,edx |
441 | mov .cur2b,edx |
369 | mov .cur2b,edx |
442 | 370 | ||
443 | movzx edi,word .tex_x1 |
371 | |
Line 444... | Line -... | ||
444 | shl edi,ROUND |
- | |
445 | mov .scan_x1,edi |
- | |
446 | mov .scan_x2,edi |
- | |
447 | movzx edx,word .tex_y1 |
- | |
448 | shl edx,ROUND |
- | |
449 | mov .scan_y1,edx |
- | |
450 | mov .scan_y2,edx |
- | |
451 | - | ||
Line 452... | Line 372... | ||
452 | mov cx,.y1 |
372 | mov cx,.y1 |
453 | cmp cx,.y2 |
373 | cmp cx,.y2 |
454 | jge .loop1_end |
374 | jge .loop1_end |
455 | .loop_1: |
375 | .loop_1: |
456 | ; push eax ebx ebp |
- | |
- | 376 | ||
457 | pushad |
377 | pushad |
Line 458... | Line 378... | ||
458 | 378 | ||
459 | push .tex_ptr |
379 | push .tex_ptr |
460 | push .scr_buff |
380 | push .scr_buff |
461 | push .z_ptr |
381 | push .z_ptr |
Line 462... | Line 382... | ||
462 | push cx |
382 | push cx |
Line 463... | Line -... | ||
463 | - | ||
464 | push .zz2 |
- | |
465 | - | ||
466 | push .scan_x2 |
- | |
467 | push dword .scan_y2 |
383 | |
- | 384 | push dword .zz2 |
|
- | 385 | ||
- | 386 | push dword .cur2b |
|
- | 387 | push dword .cur2g |
|
Line 468... | Line 388... | ||
468 | push dword .cur2r |
388 | push dword .cur2r |
Line 469... | Line -... | ||
469 | push .cur2g |
- | |
470 | push dword .cur2b |
- | |
471 | - | ||
472 | push .zz1 |
- | |
473 | 389 | push dword .scan_x2 |
|
- | 390 | push dword .scan_y2 |
|
- | 391 | ||
- | 392 | push .zz1 |
|
- | 393 | ||
Line 474... | Line 394... | ||
474 | push .scan_x1 |
394 | push dword .cur1b |
475 | push dword .scan_y1 |
395 | push dword .cur1g |
476 | push dword .cur1r |
396 | push dword .cur1r |
Line 477... | Line -... | ||
477 | push .cur1g |
- | |
- | 397 | push dword .scan_x1 |
|
478 | push dword .cur1b |
398 | push dword .scan_y1 |
Line 479... | Line -... | ||
479 | - | ||
480 | sar eax,ROUND |
- | |
481 | sar ebx,ROUND |
- | |
482 | call horizontal_tex_grd_line |
- | |
483 | - | ||
484 | ; pop ebp ebx eax |
- | |
485 | popad |
- | |
486 | - | ||
487 | if (Ext = MMX)|(Ext=SSE) |
- | |
488 | movq mm0,.cur1b |
- | |
489 | movq mm1,.cur1r |
- | |
490 | movq mm2,.scan_y1 |
- | |
491 | movq mm3,.cur2b |
- | |
492 | movq mm4,.cur2r |
- | |
493 | movq mm5,.scan_y2 |
- | |
494 | paddd mm0,.dc13b |
- | |
495 | paddd mm1,.dc13r |
- | |
496 | paddd mm2,.tex_dy13 |
- | |
497 | paddd mm3,.dc12b |
- | |
498 | paddd mm4,.dc12r |
399 | |
499 | paddd mm5,.tex_dy12 |
- | |
500 | movq .cur1b,mm0 |
400 | sar eax,ROUND |
501 | movq .cur1r,mm1 |
401 | sar ebx,ROUND |
502 | movq .scan_y1,mm2 |
402 | call horizontal_tex_grd_line |
503 | movq .cur2b,mm3 |
403 | |
504 | movq .cur2r,mm4 |
404 | |
505 | movq .scan_y2,mm5 |
405 | popad |
506 | end if |
406 | |
507 | if Ext >= SSE2 |
407 | |
508 | movups xmm0,.cur1b |
408 | movups xmm0,.cur1b |
509 | movups xmm1,.dc13b |
409 | movups xmm1,.dc13b |
510 | movups xmm2,.cur2b |
410 | movups xmm2,.cur2b |
511 | movups xmm3,.dc12b |
411 | movups xmm3,.dc12b |
512 | movq mm2,.scan_y1 |
412 | movq mm2,.scan_x1 |
513 | movq mm5,.scan_y2 |
413 | movq mm5,.scan_x2 |
514 | paddd xmm0,xmm1 |
- | |
Line 515... | Line -... | ||
515 | paddd xmm2,xmm3 |
- | |
516 | paddd mm2,.tex_dy13 |
- | |
517 | paddd mm5,.tex_dy12 |
- | |
518 | movq .scan_y1,mm2 |
- | |
519 | movq .scan_y2,mm5 |
- | |
520 | movups .cur1b,xmm0 |
- | |
521 | movups .cur2b,xmm2 |
- | |
522 | end if |
- | |
523 | - | ||
524 | if Ext = NON |
- | |
525 | mov edx,.dc13b |
- | |
526 | add .cur1b,edx |
- | |
527 | mov esi,.dc13g |
- | |
528 | add .cur1g,esi |
414 | paddd xmm0,xmm1 |
529 | mov edi,.dc13r |
- | |
530 | add .cur1r,edi |
- | |
531 | mov edx,.dz13 |
- | |
532 | add .zz1,edx |
- | |
533 | mov edx,.tex_dx13 |
- | |
534 | add .scan_x1,edx |
- | |
535 | mov esi,.tex_dy13 |
- | |
536 | add .scan_y1,esi |
- | |
537 | - | ||
538 | mov edi,.dc12b |
- | |
539 | add .cur2b,edi |
- | |
540 | mov esi,.dc12g |
- | |
541 | add .cur2g,esi |
- | |
542 | mov edx,.dc12r |
415 | paddd xmm2,xmm3 |
543 | add .cur2r,edx |
416 | paddd mm2,.tex_dx13 |
544 | mov edi,.tex_dx12 |
417 | paddd mm5,.tex_dx12 |
545 | add .scan_x2,edi |
418 | movq .scan_x1,mm2 |
546 | mov esi,.tex_dy12 |
419 | movq .scan_x2,mm5 |
Line 596... | Line 469... | ||
596 | push .z_ptr |
469 | push .z_ptr |
597 | push cx |
470 | push cx |
598 | 471 | ||
599 | push .zz2 |
472 | push dword .zz2 |
Line 600... | Line 473... | ||
600 | 473 | ||
Line 601... | Line -... | ||
601 | push .scan_x2 |
- | |
602 | push dword .scan_y2 |
- | |
603 | push dword .cur2r |
- | |
604 | push .cur2g |
- | |
605 | push dword .cur2b |
474 | push dword .cur2b |
- | 475 | push dword .cur2g |
|
- | 476 | push dword .cur2r |
|
- | 477 | push dword .scan_x2 |
|
- | 478 | push dword .scan_y2 |
|
Line 606... | Line 479... | ||
606 | 479 | ||
Line 607... | Line -... | ||
607 | push .zz1 |
- | |
608 | - | ||
609 | push .scan_x1 |
- | |
610 | push dword .scan_y1 |
- | |
611 | push dword .cur1r |
480 | push .zz1 |
- | 481 | ||
- | 482 | push dword .cur1b |
|
- | 483 | push dword .cur1g |
|
- | 484 | push dword .cur1r |
|
Line 612... | Line 485... | ||
612 | push .cur1g |
485 | push dword .scan_x1 |
613 | push dword .cur1b |
486 | push dword .scan_y1 |
614 | 487 | ||
Line 615... | Line 488... | ||
615 | sar eax,ROUND |
488 | sar eax,ROUND |
Line 616... | Line -... | ||
616 | sar ebx,ROUND |
- | |
617 | call horizontal_tex_grd_line |
- | |
618 | - | ||
619 | popad |
- | |
620 | - | ||
621 | if (Ext = MMX)|(Ext=SSE) |
- | |
622 | movq mm0,.cur1b |
- | |
623 | movq mm1,.cur1r |
- | |
624 | movq mm2,.scan_y1 |
- | |
625 | movq mm3,.cur2b |
- | |
626 | movq mm4,.cur2r |
- | |
627 | movq mm5,.scan_y2 |
- | |
628 | paddd mm0,.dc13b |
- | |
629 | paddd mm1,.dc13r |
- | |
630 | paddd mm2,.tex_dy13 |
- | |
631 | paddd mm3,.dc23b |
- | |
632 | paddd mm4,.dc23r |
- | |
633 | paddd mm5,.tex_dy23 |
- | |
634 | movq .cur1b,mm0 |
- | |
635 | movq .cur1r,mm1 |
489 | sar ebx,ROUND |
636 | movq .scan_y1,mm2 |
- | |
637 | movq .cur2b,mm3 |
490 | call horizontal_tex_grd_line |
638 | movq .cur2r,mm4 |
491 | |
639 | movq .scan_y2,mm5 |
492 | popad |
640 | end if |
493 | |
641 | if Ext >= SSE2 |
494 | |
642 | movups xmm0,.cur1b |
495 | movups xmm0,.cur1b |
643 | movups xmm1,.dc13b |
496 | movups xmm1,.dc13b |
644 | movups xmm2,.cur2b |
497 | movups xmm2,.cur2b |
645 | movups xmm3,.dc23b |
498 | movups xmm3,.dc23b |
646 | movq mm2,.scan_y1 |
499 | movq mm2,.scan_x1 |
647 | movq mm5,.scan_y2 |
500 | movq mm5,.scan_x2 |
648 | paddd xmm0,xmm1 |
501 | paddd xmm0,xmm1 |
649 | paddd xmm2,xmm3 |
502 | paddd xmm2,xmm3 |
650 | paddd mm2,.tex_dy13 |
503 | paddd mm2,.tex_dx13 |
651 | paddd mm5,.tex_dy23 |
- | |
652 | movq .scan_y1,mm2 |
- | |
653 | movq .scan_y2,mm5 |
- | |
654 | movups .cur1b,xmm0 |
- | |
655 | movups .cur2b,xmm2 |
- | |
656 | end if |
- | |
657 | if Ext = NON |
- | |
658 | mov edx,.dc13b |
- | |
659 | add .cur1b,edx |
- | |
660 | mov esi,.dc13g |
- | |
661 | add .cur1g,esi |
- | |
662 | mov edi,.dc13r |
- | |
663 | add .cur1r,edi |
- | |
664 | mov edx,.tex_dx13 |
- | |
665 | add .scan_x1,edx |
504 | paddd mm5,.tex_dx23 |
666 | mov esi,.tex_dy13 |
- | |
667 | add .scan_y1,esi |
- | |
668 | mov edx,.dz13 |
- | |
669 | add .zz1,edx |
- | |
670 | - | ||
671 | mov edi,.dc23b |
- | |
672 | add .cur2b,edi |
- | |
673 | mov esi,.dc23g |
- | |
674 | add .cur2g,esi |
- | |
675 | mov edx,.dc23r |
- | |
676 | add .cur2r,edx |
- | |
677 | mov edi,.tex_dx23 |
- | |
678 | add .scan_x2,edi |
- | |
679 | mov esi,.tex_dy23 |
505 | movq .scan_x1,mm2 |
680 | add .scan_y2,esi |
506 | movq .scan_x2,mm5 |
681 | mov edx,.dz23 |
507 | movups .cur1b,xmm0 |
682 | add .zz2,edx |
508 | movups .cur2b,xmm2 |
683 | end if |
509 | |
Line 700... | Line 526... | ||
700 | .y equ [ebp+52] |
526 | .y equ [ebp+52] |
701 | 527 | ||
702 | .z2 equ [ebp+48] |
528 | .z2 equ [ebp+48] |
Line 703... | Line 529... | ||
703 | .tex_x2 equ [ebp+44] |
529 | .b2 equ [ebp+44] |
704 | .tex_y2 equ [ebp+40] |
530 | .g2 equ [ebp+40] |
705 | .r2 equ [ebp+36] |
531 | .r2 equ [ebp+36] |
706 | .g2 equ [ebp+32] |
532 | .tex_x2 equ [ebp+32] |
707 | .b2 equ [ebp+28] |
533 | .tex_y2 equ [ebp+28] |
708 | 534 | ||
- | 535 | ||
Line 709... | Line 536... | ||
709 | .z1 equ [ebp+24] |
536 | .z1 equ [ebp+24] |
710 | .tex_x1 equ [ebp+20] |
537 | .b1 equ [ebp+20] |
711 | .tex_y1 equ [ebp+16] |
538 | .g1 equ [ebp+16] |
712 | .r1 equ [ebp+12] |
539 | .r1 equ [ebp+12] |
713 | .g1 equ [ebp+8] |
540 | .tex_x1 equ [ebp+8] |
714 | .b1 equ [ebp+4] |
541 | .tex_y1 equ [ebp+4] |
- | 542 | ||
Line 715... | Line 543... | ||
715 | 543 | ||
716 | .x1 equ word[ebp-2] |
544 | .x1 equ word[ebp-2] |
717 | .x2 equ word[ebp-4] |
545 | .x2 equ word[ebp-4] |
718 | .dz equ dword[ebp-8] |
546 | .dz equ dword[ebp-8] |
719 | .db equ dword[ebp-12] |
547 | .db equ [ebp-12] |
720 | .dg equ dword[ebp-16] |
548 | .dg equ dword[ebp-16] |
721 | .dr equ dword[ebp-20] |
549 | .dr equ [ebp-20] |
722 | .dtex_x equ dword[ebp-24] |
550 | .dtex_x equ dword[ebp-24] |
723 | .dtex_y equ dword[ebp-28] |
- | |
724 | - | ||
725 | .c_ty equ [ebp-32] |
- | |
726 | .c_tx equ [ebp-36] |
- | |
727 | .cb equ [ebp-40] |
- | |
728 | .cg equ [ebp-44] |
- | |
729 | .cr equ [ebp-48] |
- | |
730 | .t_col equ [ebp-52] |
- | |
731 | - | ||
732 | .dtex_yM equ qword[ebp-28] |
- | |
733 | .drM equ qword[ebp-20] |
- | |
Line 734... | Line 551... | ||
734 | .dbM equ qword[ebp-12] |
551 | .dtex_y equ [ebp-28] |
735 | - | ||
- | 552 | ||
Line 736... | Line 553... | ||
736 | mov ebp,esp |
553 | mov ebp,esp |
737 | ; sub esp,30 |
554 | |
738 | 555 | ||
Line 749... | Line 566... | ||
749 | 566 | ||
750 | xchg eax,ebx |
567 | xchg eax,ebx |
Line 751... | Line 568... | ||
751 | 568 | ||
Line 752... | Line -... | ||
752 | if Ext=NON |
- | |
753 | mov ecx,dword .r1 |
- | |
754 | xchg ecx, .r2 |
- | |
755 | mov dword .r1, ecx |
- | |
756 | - | ||
757 | mov ecx,dword .g1 |
- | |
758 | xchg ecx, .g2 |
- | |
759 | mov dword .g1, ecx |
- | |
760 | - | ||
761 | mov ecx,dword .b1 |
- | |
762 | xchg ecx, .b2 |
- | |
763 | mov dword .b1, ecx |
- | |
764 | - | ||
765 | mov ecx,dword .tex_x1 |
- | |
766 | xchg ecx, .tex_x2 |
- | |
767 | mov dword .tex_x1, ecx |
- | |
768 | - | ||
769 | mov ecx,dword .tex_y1 |
- | |
770 | xchg ecx, .tex_y2 |
- | |
771 | mov dword .tex_y1, ecx |
- | |
772 | - | ||
773 | mov ecx,dword .z1 |
- | |
774 | xchg ecx, .z2 |
- | |
775 | mov dword .z1, ecx |
- | |
776 | end if |
- | |
777 | if (Ext=MMX) |
- | |
778 | movq mm0,.b1 ; b, g |
- | |
779 | movq mm1,.b2 |
- | |
780 | movq .b1, mm1 |
- | |
781 | movq .b2, mm0 |
- | |
782 | movq mm2,.r1 ; r, y |
- | |
783 | movq mm3,.r2 |
- | |
784 | movq .r1,mm3 |
- | |
785 | movq .r2,mm2 |
- | |
786 | movq mm4,.tex_x1 ; x, z |
- | |
787 | movq mm5,.tex_x2 |
- | |
788 | movq .tex_x1,mm5 |
- | |
789 | movq .tex_x2,mm4 |
- | |
Line 790... | Line -... | ||
790 | - | ||
791 | end if |
- | |
792 | if Ext>=SSE |
569 | |
793 | movups xmm0,.b1 |
570 | movdqu xmm0,.tex_y1 |
794 | movups xmm1,.b2 |
571 | movdqu xmm1,.tex_y2 |
795 | movups .b1,xmm1 |
572 | movdqu .tex_y1,xmm1 |
796 | movups .b2,xmm0 |
573 | movdqu .tex_y2,xmm0 |
797 | movq mm4,.tex_x1 ; x, z |
574 | movq xmm4,.b1 ; x, z |
798 | movq mm5,.tex_x2 |
575 | movq xmm5,.b2 |
799 | movq .tex_x1,mm5 |
576 | movq .b1,xmm5 |
800 | movq .tex_x2,mm4 |
577 | movq .b2,xmm4 |
Line 801... | Line 578... | ||
801 | end if |
578 | |
802 | 579 | ||
803 | @@: |
580 | @@: |
804 | or bx,bx |
581 | or bx,bx |
805 | jle .quit_l |
582 | jle .quit_l |
Line 806... | Line 583... | ||
806 | cmp ax,word[size_x_var] ;SIZE_X |
583 | cmp ax,word[size_x_var] ;SIZE_X |
807 | jge .quit_l |
584 | jge .quit_l |
808 | - | ||
809 | push ax |
- | |
810 | push bx |
- | |
811 | 585 | ||
812 | mov eax,.z2 ; delta zone************ |
586 | push ax |
813 | sub eax,.z1 |
587 | push bx |
- | 588 | if 1 |
|
814 | cdq |
589 | mov bx,.x2 |
- | 590 | sub bx,.x1 |
|
- | 591 | ||
815 | mov bx,.x2 |
592 | movsx ebx,bx |
- | 593 | mov eax,1 shl 15 |
|
- | 594 | cdq |
|
- | 595 | idiv ebx |
|
- | 596 | mov ebx,eax |
|
- | 597 | ||
- | 598 | ||
- | 599 | mov eax,.z2 ; delta zone************ |
|
816 | sub bx,.x1 |
600 | sub eax,.z1 |
Line 817... | Line 601... | ||
817 | movsx ebx,bx |
601 | imul ebx |
818 | idiv ebx |
602 | sar eax,15 |
819 | push eax ; .dz |
- | |
820 | 603 | push eax ; .dz |
|
- | 604 | ||
821 | mov eax,.b2 |
605 | mov eax,.b2 |
Line 822... | Line 606... | ||
822 | sub eax,.b1 |
606 | sub eax,.b1 |
823 | cdq |
607 | imul ebx |
824 | idiv ebx |
- | |
825 | push eax ; .db |
608 | sar eax,15 |
- | 609 | push eax |
|
826 | 610 | ||
Line 827... | Line 611... | ||
827 | mov eax,.g2 |
611 | mov eax,.g2 |
828 | sub eax,.g1 |
612 | sub eax,.g1 |
829 | cdq |
- | |
830 | idiv ebx |
613 | imul ebx |
- | 614 | sar eax,15 |
|
831 | push eax ; .dg |
615 | push eax ; .dz |
Line 832... | Line 616... | ||
832 | 616 | ||
833 | mov eax,.r2 |
617 | mov eax,.r2 |
834 | sub eax,.r1 |
- | |
835 | cdq |
618 | sub eax,.r1 |
836 | idiv ebx |
619 | imul ebx |
- | 620 | sar eax,15 |
|
Line 837... | Line 621... | ||
837 | push eax ; .dr |
621 | push eax |
838 | 622 | ||
- | 623 | mov eax,.tex_x2 |
|
- | 624 | sub eax,.tex_x1 |
|
- | 625 | imul ebx |
|
- | 626 | sar eax,15 |
|
- | 627 | push eax |
|
839 | mov eax,.tex_x2 |
628 | |
840 | sub eax,.tex_x1 |
629 | mov eax,.tex_y2 |
- | 630 | sub eax,.tex_y1 |
|
- | 631 | imul ebx |
|
- | 632 | sar eax,15 |
|
- | 633 | push eax |
|
- | 634 | ||
- | 635 | ||
- | 636 | end if |
|
- | 637 | if 0 |
|
- | 638 | sub esp,6*4 |
|
- | 639 | movd xmm0,ebx |
|
- | 640 | pshuflw xmm0,xmm0,0 |
|
- | 641 | movlhps xmm0,xmm0 |
|
- | 642 | movdqu xmm1,.tex_y1 |
|
- | 643 | movdqu xmm2,.tex_y2 |
|
- | 644 | movq xmm3,.b1 |
|
- | 645 | movq xmm4,.b2 |
|
- | 646 | psubd xmm4,xmm3 |
|
- | 647 | psubd xmm2,xmm1 |
|
- | 648 | packssdw xmm2,xmm4 |
|
- | 649 | ; packlssdw xmm2,xmm2 |
|
- | 650 | ; movlhps xmm2,xmm4 |
|
- | 651 | ||
- | 652 | ||
- | 653 | ; psubw xmm2,xmm1 |
|
- | 654 | movdqa xmm3,xmm2 |
|
- | 655 | pmullw xmm2,xmm0 |
|
841 | cdq |
656 | pmulhw xmm3,xmm0 |
- | 657 | movhlps xmm4,xmm2 |
|
- | 658 | movhlps xmm5,xmm3 |
|
- | 659 | punpcklwd xmm2,xmm3 |
|
- | 660 | punpcklwd xmm4,xmm5 |
|
Line 842... | Line 661... | ||
842 | idiv ebx |
661 | psrad xmm2,15 - ROUND |
843 | push eax ; .dtex_x |
662 | psrad xmm4,15 - ROUND |
Line 844... | Line 663... | ||
844 | 663 | ; pshufd xmm2,xmm2,11000110b |
|
Line 902... | Line 721... | ||
902 | movzx ecx,cx |
721 | movzx ecx,cx |
903 | 722 | ||
904 | ; init current variables |
723 | ; init current variables |
Line 905... | Line 724... | ||
905 | push dword .tex_y1 |
724 | movdqu xmm0,.r1 |
906 | ;if Ext=NON |
725 | movdqu xmm1,.dr |
907 | push dword .tex_x1 |
726 | pxor xmm2,xmm2 |
- | 727 | movq xmm4,.dtex_y |
|
- | 728 | movq xmm5,.tex_y1 |
|
908 | 729 | ||
Line 909... | Line -... | ||
909 | push dword .b1 |
- | |
910 | push dword .g1 |
- | |
911 | push dword .r1 |
- | |
912 | - | ||
913 | if Ext>=MMX |
- | |
914 | movq mm4,.cr ; lo -> r,g |
- | |
915 | movq mm6,.cb ; hi -> b, tex_x |
- | |
916 | pxor mm0,mm0 |
- | |
917 | end if |
- | |
918 | mov ebx,.z1 |
730 | mov ebx,.z1 |
919 | .ddraw: |
731 | .ddraw: |
920 | cmp ebx,dword[esi] |
732 | cmp ebx,dword[esi] |
921 | jge @f |
733 | jge @f |
922 | mov eax,.c_ty |
734 | movdqa xmm6,xmm5 |
923 | ; if ROUND |
735 | psrld xmm6,ROUND |
924 | ; shl eax,TEX_SHIFT-ROUND |
736 | movd eax,xmm6 |
925 | ; end if |
- | |
926 | ; if ROUND>TEX_SHIFT |
737 | psrldq xmm6,4 |
927 | ; shr eax,ROUND-TEX_SHIFT |
738 | movd edx,xmm6 |
928 | ; end if |
- | |
929 | shr eax,ROUND |
- | |
930 | shl Eax,TEX_SHIFT |
739 | shl eax,TEX_SHIFT |
- | 740 | ||
931 | mov edx,.c_tx ; calc texture pixel mem addres |
741 | ; calc texture pixel mem addres |
932 | shr edx,ROUND |
742 | |
933 | add eax,edx |
743 | add eax,edx |
934 | and eax,TEXTURE_SIZE ; cutting |
744 | and eax,TEXTURE_SIZE ; cutting |
935 | lea eax,[3*eax] |
745 | lea eax,[3*eax] |
936 | add eax,.tex_ptr |
746 | add eax,.tex_ptr |
937 | mov dword[esi],ebx |
747 | mov dword[esi],ebx |
938 | if Ext = NON |
- | |
939 | mov eax,dword[eax] |
- | |
940 | ; mov .tex_col,eax |
- | |
941 | push ax |
- | |
942 | shl eax,8 |
- | |
943 | pop ax |
- | |
944 | mov edx,.cr |
- | |
945 | sar edx,ROUND |
- | |
946 | mul dl ; al*dl |
- | |
947 | shr ax,8 |
- | |
948 | stosb |
- | |
949 | ror eax,16 |
- | |
950 | push ax |
- | |
951 | mov edx,.cg |
- | |
952 | sar edx,ROUND |
- | |
953 | mul dl |
- | |
954 | shr ax,8 |
- | |
955 | stosb |
- | |
956 | pop ax |
- | |
957 | shr ax,8 |
- | |
958 | mov edx,.cb |
- | |
959 | sar edx,ROUND |
- | |
960 | mul dl |
- | |
961 | shr ax,8 |
- | |
962 | stosb |
- | |
963 | jmp .no_skip |
- | |
964 | else |
748 | |
965 | movd mm1,[eax] |
749 | movd xmm7,[eax] |
966 | punpcklbw mm1,mm0 |
750 | punpcklbw xmm7,xmm2 |
967 | movq mm3,mm4 ;.cr ; lo -> r,g |
751 | movdqa xmm3,xmm0 ; calc col |
968 | movq mm5,mm6 ;.cb ; lo -> b,tex_x |
- | |
969 | psrld mm3,ROUND ; |
752 | psrld xmm3,ROUND ; |
970 | psrld mm5,ROUND ; |
- | |
971 | packssdw mm3,mm5 |
753 | packssdw xmm3,xmm3 |
972 | pmullw mm1,mm3 |
754 | pmullw xmm7,xmm3 |
973 | psrlw mm1,8 |
755 | psrlw xmm7,8 |
974 | packuswb mm1,mm0 |
756 | packuswb xmm7,xmm7 |
975 | movd [edi],mm1 |
757 | movd [edi],xmm7 |
976 | end if |
758 | |
977 | mov dword[esi],ebx |
759 | mov dword[esi],ebx |
978 | if Ext = NON |
- | |
979 | jmp .no_skip |
- | |
980 | end if |
- | |
981 | @@: |
760 | @@: |
982 | add edi,3 |
761 | add edi,3 |
983 | .no_skip: |
- | |
984 | add esi,4 |
762 | add esi,4 |
985 | add ebx,.dz |
763 | add ebx,.dz |
- | 764 | paddd xmm5,xmm4 |
|
- | 765 | paddd xmm0,xmm1 |
|
Line 986... | Line -... | ||
986 | - | ||
987 | mov eax,.dtex_x |
- | |
988 | add .c_tx, eax |
- | |
989 | mov edx,.dtex_y |
- | |
990 | add .c_ty, edx |
- | |
991 | if Ext=NON |
- | |
992 | mov eax,.dr |
- | |
993 | add .cr,eax |
- | |
994 | mov edx,.dg |
- | |
995 | add .cg,edx |
- | |
996 | mov eax,.db |
- | |
997 | add .cb,eax |
- | |
998 | - | ||
999 | else |
- | |
1000 | paddd mm4,.drM |
- | |
1001 | paddd mm6,.dbM |
- | |
1002 | ;; paddd mm7,.dtex_y ; mm4 - b, g |
- | |
1003 | ;; movq .c_tx,mm7 |
- | |
1004 | ; mm6 - r, x |
- | |
1005 | end if ; mm7 - y, x |
- | |
1006 | - | ||
1007 | dec ecx |
766 | |
Line 1008... | Line 767... | ||
1008 | jnz .ddraw |
767 | loop .ddraw |
Line 1009... | Line 768... | ||
1009 | 768 | ||
1010 | .quit_l: |
769 | .quit_l: |
- | 770 | ||
- | 771 | mov esp,ebp |
|
- | 772 | ret 42+20 ; horizontal line |