Rev 6126 | Rev 6145 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 6126 | Rev 6141 | ||
---|---|---|---|
Line 152... | Line 152... | ||
152 | mov eax,[edx+offs_zbup_y] |
152 | mov eax,[edx+offs_zbup_y] |
153 | sub eax,[ebx+offs_zbup_y] |
153 | sub eax,[ebx+offs_zbup_y] |
154 | mov [fdy2],eax ;p2.y - p0.y |
154 | mov [fdy2],eax ;p2.y - p0.y |
Line 155... | Line 155... | ||
155 | 155 | ||
156 | fild dword[fdx1] |
- | |
157 | fst dword[fdx1] |
156 | fild dword[fdx1] |
158 | fild dword[fdy2] |
- | |
159 | fst dword[fdy2] |
- | |
160 | fmulp |
157 | fimul dword[fdy2] |
161 | fild dword[fdx2] |
- | |
162 | fst dword[fdx2] |
158 | fild dword[fdx2] |
163 | fild dword[fdy1] |
- | |
164 | fst dword[fdy1] |
- | |
165 | fmulp |
159 | fimul dword[fdy1] |
166 | fsubp ;st0 = st1-st0 |
160 | fsubp ;st0 = st1-st0 |
167 | fst dword[fz] ;fz = fdx1 * fdy2 - fdx2 * fdy1 |
161 | fst dword[fz] ;fz = fdx1 * fdy2 - fdx2 * fdy1 |
168 | fldz |
162 | fldz |
169 | fcompp ;if (fz == 0) return |
163 | fcompp ;if (fz == 0) return |
Line 173... | Line 167... | ||
173 | 167 | ||
174 | fld1 |
168 | fld1 |
175 | fdiv dword[fz] ;fz = 1.0 / fz |
169 | fdiv dword[fz] ;fz = 1.0 / fz |
Line 176... | Line 170... | ||
176 | fst dword[fz] ;st0 = fz |
170 | fst dword[fz] ;st0 = fz |
177 | 171 | ||
178 | fld dword[fdx1] |
172 | fild dword[fdx1] |
179 | fmul st0,st1 |
173 | fmul st0,st1 |
180 | fstp dword[fdx1] ;fdx1 *= fz |
174 | fstp dword[fdx1] ;fdx1 *= fz |
181 | fld dword[fdy1] |
175 | fild dword[fdy1] |
182 | fmul st0,st1 |
176 | fmul st0,st1 |
183 | fstp dword[fdy1] ;fdy1 *= fz |
177 | fstp dword[fdy1] ;fdy1 *= fz |
184 | fld dword[fdx2] |
178 | fild dword[fdx2] |
185 | fmul st0,st1 |
179 | fmul st0,st1 |
186 | fstp dword[fdx2] ;fdx2 *= fz |
180 | fstp dword[fdx2] ;fdx2 *= fz |
187 | fld dword[fdy2] |
181 | fild dword[fdy2] |
188 | fmul st0,st1 |
- | |
189 | fstp dword[fdy2] ;fdy2 *= fz |
- | |
Line 190... | Line 182... | ||
190 | ffree st0 |
182 | fmulp |
191 | fincstp |
183 | fstp dword[fdy2] ;fdy2 *= fz |
192 | 184 | ||
193 | if INTERP_Z eq 1 |
185 | if INTERP_Z eq 1 |
Line 198... | Line 190... | ||
198 | sub eax,[ebx+offs_zbup_z] |
190 | sub eax,[ebx+offs_zbup_z] |
199 | mov [d2],eax |
191 | mov [d2],eax |
200 | fild dword[d1] ;d1 = p1.z - p0.z |
192 | fild dword[d1] ;d1 = p1.z - p0.z |
201 | fild dword[d2] ;d2 = p2.z - p0.z |
193 | fild dword[d2] ;d2 = p2.z - p0.z |
Line 202... | Line -... | ||
202 | - | ||
203 | fld dword[fdy2] |
- | |
204 | fmul st0,st2 |
- | |
205 | fld dword[fdy1] |
- | |
206 | fmul st0,st2 |
- | |
207 | fsubp |
194 | |
208 | fistp dword[dzdx] ;dzdx = (int) (fdy2*d1 - fdy1*d2) |
- | |
209 | fld dword[fdx1] |
- | |
210 | fmul st0,st1 |
- | |
211 | fld dword[fdx2] |
- | |
212 | fmul st0,st3 |
- | |
213 | fsubp |
195 | ;dzdx = (int) (fdy2*d1 - fdy1*d2) |
214 | fistp dword[dzdy] ;dzdy = (int) (fdx1*d2 - fdx2*d1) |
- | |
215 | ffree st0 ;free d2 |
- | |
216 | fincstp |
196 | ;dzdy = (int) (fdx1*d2 - fdx2*d1) |
217 | ffree st0 ;free d1 |
- | |
218 | fincstp |
197 | calc_d1d2 fi, dzdx, dzdy |
Line 219... | Line 198... | ||
219 | end if |
198 | end if |
220 | 199 | ||
221 | if INTERP_RGB eq 1 |
200 | if INTERP_RGB eq 1 |
Line 226... | Line 205... | ||
226 | sub eax,[ebx+offs_zbup_r] |
205 | sub eax,[ebx+offs_zbup_r] |
227 | mov [d2],eax |
206 | mov [d2],eax |
228 | fild dword[d1] ;d1 = p1.r - p0.r |
207 | fild dword[d1] ;d1 = p1.r - p0.r |
229 | fild dword[d2] ;d2 = p2.r - p0.r |
208 | fild dword[d2] ;d2 = p2.r - p0.r |
Line 230... | Line -... | ||
230 | - | ||
231 | fld dword[fdy2] |
- | |
232 | fmul st0,st2 |
- | |
233 | fld dword[fdy1] |
- | |
234 | fmul st0,st2 |
- | |
235 | fsubp |
209 | |
236 | fistp dword[drdx] ;drdx = (int) (fdy2*d1 - fdy1*d2) |
- | |
237 | fld dword[fdx1] |
- | |
238 | fmul st0,st1 |
- | |
239 | fld dword[fdx2] |
- | |
240 | fmul st0,st3 |
- | |
241 | fsubp |
210 | ;drdx = (int) (fdy2*d1 - fdy1*d2) |
242 | fistp dword[drdy] ;drdy = (int) (fdx1*d2 - fdx2*d1) |
- | |
243 | ffree st0 ;free d2 |
- | |
244 | fincstp |
211 | ;drdy = (int) (fdx1*d2 - fdx2*d1) |
245 | ffree st0 ;free d1 |
- | |
Line 246... | Line 212... | ||
246 | fincstp |
212 | calc_d1d2 fi, drdx, drdy |
247 | 213 | ||
248 | mov eax,[ecx+offs_zbup_g] |
214 | mov eax,[ecx+offs_zbup_g] |
249 | sub eax,[ebx+offs_zbup_g] |
215 | sub eax,[ebx+offs_zbup_g] |
250 | mov [d1],eax |
216 | mov [d1],eax |
251 | mov eax,[edx+offs_zbup_g] |
217 | mov eax,[edx+offs_zbup_g] |
252 | sub eax,[ebx+offs_zbup_g] |
218 | sub eax,[ebx+offs_zbup_g] |
253 | mov [d2],eax |
219 | mov [d2],eax |
Line 254... | Line -... | ||
254 | fild dword[d1] ;d1 = p1.g - p0.g |
- | |
255 | fild dword[d2] ;d2 = p2.g - p0.g |
- | |
256 | - | ||
257 | fld dword[fdy2] |
- | |
258 | fmul st0,st2 |
- | |
259 | fld dword[fdy1] |
220 | fild dword[d1] ;d1 = p1.g - p0.g |
260 | fmul st0,st2 |
- | |
261 | fsubp |
- | |
262 | fistp dword[dgdx] ;dgdx = (int) (fdy2*d1 - fdy1*d2) |
- | |
263 | fld dword[fdx1] |
- | |
264 | fmul st0,st1 |
- | |
265 | fld dword[fdx2] |
221 | fild dword[d2] ;d2 = p2.g - p0.g |
266 | fmul st0,st3 |
- | |
267 | fsubp |
- | |
268 | fistp dword[dgdy] ;dgdy = (int) (fdx1*d2 - fdx2*d1) |
222 | |
269 | ffree st0 ;free d2 |
- | |
Line 270... | Line 223... | ||
270 | fincstp |
223 | ;dgdx = (int) (fdy2*d1 - fdy1*d2) |
271 | ffree st0 ;free d1 |
224 | ;dgdy = (int) (fdx1*d2 - fdx2*d1) |
272 | fincstp |
225 | calc_d1d2 fi, dgdx, dgdy |
273 | 226 | ||
274 | mov eax,[ecx+offs_zbup_b] |
227 | mov eax,[ecx+offs_zbup_b] |
275 | sub eax,[ebx+offs_zbup_b] |
228 | sub eax,[ebx+offs_zbup_b] |
276 | mov [d1],eax |
229 | mov [d1],eax |
277 | mov eax,[edx+offs_zbup_b] |
230 | mov eax,[edx+offs_zbup_b] |
Line 278... | Line -... | ||
278 | sub eax,[ebx+offs_zbup_b] |
- | |
279 | mov [d2],eax |
- | |
280 | fild dword[d1] ;d1 = p1.b - p0.b |
- | |
281 | fild dword[d2] ;d2 = p2.b - p0.b |
- | |
282 | - | ||
283 | fld dword[fdy2] |
231 | sub eax,[ebx+offs_zbup_b] |
284 | fmul st0,st2 |
- | |
285 | fld dword[fdy1] |
- | |
286 | fmul st0,st2 |
- | |
287 | fsubp |
- | |
288 | fistp dword[dbdx] ;dbdx = (int) (fdy2*d1 - fdy1*d2) |
- | |
289 | fld dword[fdx1] |
232 | mov [d2],eax |
290 | fmul st0,st1 |
- | |
291 | fld dword[fdx2] |
- | |
292 | fmul st0,st3 |
233 | fild dword[d1] ;d1 = p1.b - p0.b |
293 | fsubp |
- | |
294 | fistp dword[dbdy] ;dbdy = (int) (fdx1*d2 - fdx2*d1) |
234 | fild dword[d2] ;d2 = p2.b - p0.b |
Line 295... | Line 235... | ||
295 | ffree st0 ;free d2 |
235 | |
296 | fincstp |
236 | ;dbdx = (int) (fdy2*d1 - fdy1*d2) |
297 | ffree st0 ;free d1 |
237 | ;dbdy = (int) (fdx1*d2 - fdx2*d1) |
Line 306... | Line 246... | ||
306 | sub eax,[ebx+offs_zbup_s] |
246 | sub eax,[ebx+offs_zbup_s] |
307 | mov [d2],eax |
247 | mov [d2],eax |
308 | fild dword[d1] ;d1 = p1.s - p0.s |
248 | fild dword[d1] ;d1 = p1.s - p0.s |
309 | fild dword[d2] ;d2 = p2.s - p0.s |
249 | fild dword[d2] ;d2 = p2.s - p0.s |
Line 310... | Line -... | ||
310 | - | ||
311 | fld dword[fdy2] |
- | |
312 | fmul st0,st2 |
- | |
313 | fld dword[fdy1] |
- | |
314 | fmul st0,st2 |
- | |
315 | fsubp |
250 | |
316 | fistp dword[dsdx] ;dsdx = (int) (fdy2*d1 - fdy1*d2) |
- | |
317 | fld dword[fdx2] |
- | |
318 | fmul st0,st2 |
- | |
319 | fld dword[fdx1] |
- | |
320 | fmul st0,st2 |
- | |
321 | fsub st0,st1 |
251 | ;dsdx = (int) (fdy2*d1 - fdy1*d2) |
322 | fistp dword[dsdy] ;dsdy = (int) (fdx1*d2 - fdx2*d1) |
- | |
323 | ffree st0 |
- | |
324 | fincstp |
- | |
325 | ffree st0 ;free d2 |
- | |
326 | fincstp |
252 | ;dsdy = (int) (fdx1*d2 - fdx2*d1) |
327 | ffree st0 ;free d1 |
- | |
Line 328... | Line 253... | ||
328 | fincstp |
253 | calc_d1d2 fi, dsdx, dsdy |
329 | 254 | ||
330 | mov eax,[ecx+offs_zbup_t] |
255 | mov eax,[ecx+offs_zbup_t] |
331 | sub eax,[ebx+offs_zbup_t] |
256 | sub eax,[ebx+offs_zbup_t] |
332 | mov [d1],eax |
257 | mov [d1],eax |
333 | mov eax,[edx+offs_zbup_t] |
258 | mov eax,[edx+offs_zbup_t] |
334 | sub eax,[ebx+offs_zbup_t] |
259 | sub eax,[ebx+offs_zbup_t] |
335 | mov [d2],eax |
260 | mov [d2],eax |
Line 336... | Line -... | ||
336 | fild dword[d1] ;d1 = p1.t - p0.t |
- | |
337 | fild dword[d2] ;d2 = p2.t - p0.t |
- | |
338 | - | ||
339 | fld dword[fdy1] |
- | |
340 | fmul st0,st1 |
- | |
341 | fld dword[fdy2] |
261 | fild dword[d1] ;d1 = p1.t - p0.t |
342 | fmul st0,st3 |
- | |
343 | fsub st0,st1 |
- | |
344 | fistp dword[dtdx] ;dtdx = (int) (fdy2*d1 - fdy1*d2) |
- | |
345 | ffree st0 |
- | |
346 | fincstp |
- | |
347 | fld dword[fdx2] |
- | |
348 | fmul st0,st2 |
- | |
349 | fld dword[fdx1] |
262 | fild dword[d2] ;d2 = p2.t - p0.t |
350 | fmul st0,st2 |
- | |
351 | fsub st0,st1 |
- | |
352 | fistp dword[dtdy] ;dtdy = (int) (fdx1*d2 - fdx2*d1) |
- | |
353 | ffree st0 |
- | |
354 | fincstp |
263 | |
355 | ffree st0 ;free d2 |
- | |
356 | fincstp |
264 | ;dtdx = (int) (fdy2*d1 - fdy1*d2) |
Line 357... | Line 265... | ||
357 | ffree st0 ;free d1 |
265 | ;dtdy = (int) (fdx1*d2 - fdx2*d1) |
358 | fincstp |
266 | calc_d1d2 fi, dtdx, dtdy |
359 | end if |
267 | end if |
Line 386... | Line 294... | ||
386 | fld dword[ecx+offs_zbup_sz] |
294 | fld dword[ecx+offs_zbup_sz] |
387 | fsub dword[ebx+offs_zbup_sz] ;d1 = p1.sz - p0.sz |
295 | fsub dword[ebx+offs_zbup_sz] ;d1 = p1.sz - p0.sz |
388 | fld dword[edx+offs_zbup_sz] |
296 | fld dword[edx+offs_zbup_sz] |
389 | fsub dword[ebx+offs_zbup_sz] ;d2 = p2.sz - p0.sz |
297 | fsub dword[ebx+offs_zbup_sz] ;d2 = p2.sz - p0.sz |
Line 390... | Line -... | ||
390 | - | ||
391 | fld dword[fdy2] |
- | |
392 | fmul st0,st2 |
- | |
393 | fld dword[fdy1] |
- | |
394 | fmul st0,st2 |
- | |
395 | fsubp |
298 | |
396 | fstp dword[dszdx] ;dszdx = (fdy2*d1 - fdy1*d2) |
- | |
397 | fld dword[fdx2] |
- | |
398 | fmul st0,st2 |
- | |
399 | fld dword[fdx1] |
- | |
400 | fmul st0,st2 |
- | |
401 | fsub st0,st1 |
299 | ;dszdx = (fdy2*d1 - fdy1*d2) |
402 | fstp dword[dszdy] ;dszdy = (fdx1*d2 - fdx2*d1) |
- | |
403 | ffree st0 |
- | |
404 | fincstp |
- | |
405 | ffree st0 ;free d2 |
- | |
406 | fincstp |
300 | ;dszdy = (fdx1*d2 - fdx2*d1) |
407 | ffree st0 ;free d1 |
- | |
Line 408... | Line 301... | ||
408 | fincstp |
301 | calc_d1d2 f, dszdx, dszdy |
409 | 302 | ||
410 | fld dword[ecx+offs_zbup_tz] |
303 | fld dword[ecx+offs_zbup_tz] |
411 | fsub dword[ebx+offs_zbup_tz] ;d1 = p1.tz - p0.tz |
304 | fsub dword[ebx+offs_zbup_tz] ;d1 = p1.tz - p0.tz |
Line 412... | Line -... | ||
412 | fld dword[edx+offs_zbup_tz] |
- | |
413 | fsub dword[ebx+offs_zbup_tz] ;d2 = p2.tz - p0.tz |
- | |
414 | - | ||
415 | fld dword[fdy1] |
- | |
416 | fmul st0,st1 |
- | |
417 | fld dword[fdy2] |
305 | fld dword[edx+offs_zbup_tz] |
418 | fmul st0,st3 |
- | |
419 | fsub st0,st1 |
- | |
420 | fstp dword[dtzdx] ;dtzdx = (fdy2*d1 - fdy1*d2) |
- | |
421 | ffree st0 |
- | |
422 | fincstp |
- | |
423 | fld dword[fdx2] |
- | |
424 | fmul st0,st2 |
- | |
425 | fld dword[fdx1] |
306 | fsub dword[ebx+offs_zbup_tz] ;d2 = p2.tz - p0.tz |
426 | fmul st0,st2 |
- | |
427 | fsub st0,st1 |
- | |
428 | fstp dword[dtzdy] ;dtzdy = (fdx1*d2 - fdx2*d1) |
- | |
429 | ffree st0 |
- | |
430 | fincstp |
307 | |
431 | ffree st0 ;free d2 |
- | |
432 | fincstp |
308 | ;dtzdx = (fdy2*d1 - fdy1*d2) |
Line 433... | Line 309... | ||
433 | ffree st0 ;free d1 |
309 | ;dtzdy = (fdx1*d2 - fdx2*d1) |
434 | fincstp |
310 | calc_d1d2 f, dtzdx, dtzdy |
435 | end if |
311 | end if |
Line 466... | Line 342... | ||
466 | sahf |
342 | sahf |
467 | jbe .els_1 |
343 | jbe .els_1 |
468 | mov [l2],edx |
344 | mov [l2],edx |
469 | mov [pr2],ecx |
345 | mov [pr2],ecx |
470 | jmp .end_1 |
346 | jmp .end_1 |
- | 347 | align 4 |
|
471 | .els_1: |
348 | .els_1: |
472 | mov [l2],ecx |
349 | mov [l2],ecx |
473 | mov [pr2],edx |
350 | mov [pr2],edx |
474 | .end_1: |
351 | .end_1: |
475 | mov eax,[ecx+offs_zbup_y] |
352 | mov eax,[ecx+offs_zbup_y] |
476 | sub eax,[ebx+offs_zbup_y] |
353 | sub eax,[ebx+offs_zbup_y] |
477 | mov [nb_lines],eax ;nb_lines = p1.y - p0.y |
354 | mov [nb_lines],eax ;nb_lines = p1.y - p0.y |
478 | jmp .end_0 |
355 | jmp .end_0 |
- | 356 | align 4 |
|
479 | .els_0: |
357 | .els_0: |
480 | ; second part |
358 | ; second part |
481 | fldz |
359 | fldz |
482 | fld dword[fz] |
360 | fld dword[fz] |
483 | fcompp ;if (fz > 0) |
361 | fcompp ;if (fz > 0) |
Line 487... | Line 365... | ||
487 | mov dword[update_left],0 |
365 | mov dword[update_left],0 |
488 | mov dword[update_right],1 |
366 | mov dword[update_right],1 |
489 | mov [pr1],ecx |
367 | mov [pr1],ecx |
490 | mov [pr2],edx |
368 | mov [pr2],edx |
491 | jmp .end_2 |
369 | jmp .end_2 |
- | 370 | align 4 |
|
492 | .els_2: |
371 | .els_2: |
493 | mov dword[update_left],1 |
372 | mov dword[update_left],1 |
494 | mov dword[update_right],0 |
373 | mov dword[update_right],0 |
495 | mov [l1],ecx |
374 | mov [l1],ecx |
496 | mov [l2],edx |
375 | mov [l2],edx |
Line 518... | Line 397... | ||
518 | cmp eax,0 |
397 | cmp eax,0 |
519 | jl .otr_dx1 |
398 | jl .otr_dx1 |
520 | shl eax,16 |
399 | shl eax,16 |
521 | div dword[dy1] ;eax = (dx1 << 16) / dy1 |
400 | div dword[dy1] ;eax = (dx1 << 16) / dy1 |
522 | jmp .end_3 |
401 | jmp .end_3 |
- | 402 | align 4 |
|
523 | .otr_dx1: |
403 | .otr_dx1: |
524 | neg eax |
404 | neg eax |
525 | inc eax |
405 | inc eax |
526 | shl eax,16 |
406 | shl eax,16 |
527 | div dword[dy1] ;eax = (-dx1 << 16) / dy1 |
407 | div dword[dy1] ;eax = (-dx1 << 16) / dy1 |
528 | neg eax |
408 | neg eax |
529 | inc eax |
409 | inc eax |
530 | jmp .end_3 |
410 | jmp .end_3 |
- | 411 | align 4 |
|
531 | .els_3: |
412 | .els_3: |
532 | xor eax,eax |
413 | xor eax,eax |
533 | .end_3: |
414 | .end_3: |
534 | mov edx,[ebx+offs_zbup_x] |
415 | mov edx,[ebx+offs_zbup_x] |
535 | mov [x1],edx ;x1 = l1.x |
416 | mov [x1],edx ;x1 = l1.x |
Line 582... | Line 463... | ||
582 | mov [dbdl_max],eax ;dbdl_max = dbdl_min +dbdx |
463 | mov [dbdl_max],eax ;dbdl_max = dbdl_min +dbdx |
583 | end if |
464 | end if |
584 | if INTERP_ST eq 1 |
465 | if INTERP_ST eq 1 |
585 | mov ebx,[l1] |
466 | mov ebx,[l1] |
586 | mov eax,[ebx+offs_zbup_s] |
467 | mov eax,[ebx+offs_zbup_s] |
- | 468 | add eax,0x00200000 ;прокручиваем горизонтальную координату на 0.5 |
|
587 | mov [s1],eax ;s1 = l1.s |
469 | mov [s1],eax ;s1 = l1.s |
588 | mov eax,[dsdx] |
470 | mov eax,[dsdx] |
589 | imul eax,[dxdy_min] |
471 | imul eax,[dxdy_min] |
590 | add eax,[dsdy] |
472 | add eax,[dsdy] |
591 | mov [dsdl_min],eax ;dsdl_min = (dsdy +dsdx*dxdy_min) |
473 | mov [dsdl_min],eax ;dsdl_min = (dsdy +dsdx*dxdy_min) |
Line 644... | Line 526... | ||
644 | cmp eax,0 |
526 | cmp eax,0 |
645 | jl .otr_dx2 |
527 | jl .otr_dx2 |
646 | shl eax,16 |
528 | shl eax,16 |
647 | div dword[dy2] ;eax = (dx2 << 16) / dy2 |
529 | div dword[dy2] ;eax = (dx2 << 16) / dy2 |
648 | jmp .end_4 |
530 | jmp .end_4 |
- | 531 | align 4 |
|
649 | .otr_dx2: |
532 | .otr_dx2: |
650 | neg eax |
533 | neg eax |
651 | inc eax ;dx2 *= -1 |
534 | inc eax ;dx2 *= -1 |
652 | shl eax,16 |
535 | shl eax,16 |
653 | div dword[dy2] ;eax = (-dx2 << 16) / dy2 |
536 | div dword[dy2] ;eax = (-dx2 << 16) / dy2 |
654 | neg eax |
537 | neg eax |
655 | inc eax |
538 | inc eax |
656 | jmp .end_4 |
539 | jmp .end_4 |
- | 540 | align 4 |
|
657 | .els_4: |
541 | .els_4: |
658 | xor eax,eax |
542 | xor eax,eax |
659 | .end_4: |
543 | .end_4: |
660 | mov [dx2dy2],eax |
544 | mov [dx2dy2],eax |
661 | .end_upd_r: |
545 | .end_upd_r: |
Line 758... | Line 642... | ||
758 | add esi,8 ;=4*sizeof(uint) |
642 | add esi,8 ;=4*sizeof(uint) |
759 | end if |
643 | end if |
760 | add edi,4*PSZB |
644 | add edi,4*PSZB |
761 | sub dword[n],4 |
645 | sub dword[n],4 |
762 | jmp .cycle_1 |
646 | jmp .cycle_1 |
- | 647 | align 4 |
|
763 | .cycle_2: ;while (n>=0) |
648 | .cycle_2: ;while (n>=0) |
764 | cmp dword[n],0 |
649 | cmp dword[n],0 |
765 | jl .cycle_2_end |
650 | jl .cycle_2_end |
766 | if INTERP_RGB eq 1 |
651 | if INTERP_RGB eq 1 |
767 | ; коректирование испорченных пикселей (в конце линии) |
652 | ; коректирование испорченных пикселей (в конце линии) |
768 | bt dword[or1],31 |
653 | bt dword[or1],31 |
769 | jnc @f |
654 | jnc @f |
770 | mov dword[or1],0 |
655 | mov dword[or1],0 |
771 | jmp .end_r |
656 | jmp .end_r |
- | 657 | align 4 |
|
772 | @@: |
658 | @@: |
773 | bt dword[or1],16 |
659 | bt dword[or1],16 |
774 | jnc .end_r |
660 | jnc .end_r |
775 | mov dword[or1],0xff00 |
661 | mov dword[or1],0xff00 |
776 | .end_r: |
662 | .end_r: |
777 | bt dword[og1],31 |
663 | bt dword[og1],31 |
778 | jnc @f |
664 | jnc @f |
779 | mov dword[og1],0 |
665 | mov dword[og1],0 |
780 | jmp .end_g |
666 | jmp .end_g |
- | 667 | align 4 |
|
781 | @@: |
668 | @@: |
782 | bt dword[og1],16 |
669 | bt dword[og1],16 |
783 | jnc .end_g |
670 | jnc .end_g |
784 | mov dword[og1],0xff00 |
671 | mov dword[og1],0xff00 |
785 | .end_g: |
672 | .end_g: |
786 | bt dword[ob1],31 |
673 | bt dword[ob1],31 |
787 | jnc @f |
674 | jnc @f |
788 | mov dword[ob1],0 |
675 | mov dword[ob1],0 |
789 | jmp .end_b |
676 | jmp .end_b |
- | 677 | align 4 |
|
790 | @@: |
678 | @@: |
791 | bt dword[ob1],16 |
679 | bt dword[ob1],16 |
792 | jnc .end_b |
680 | jnc .end_b |
793 | mov dword[ob1],0xff00 |
681 | mov dword[ob1],0xff00 |
794 | .end_b: |
682 | .end_b: |
Line 798... | Line 686... | ||
798 | add esi,2 ;=sizeof(uint) |
686 | add esi,2 ;=sizeof(uint) |
799 | end if |
687 | end if |
800 | add edi,PSZB |
688 | add edi,PSZB |
801 | dec dword[n] |
689 | dec dword[n] |
802 | jmp .cycle_2 |
690 | jmp .cycle_2 |
- | 691 | align 4 |
|
803 | .cycle_2_end: |
692 | .cycle_2_end: |
804 | end if ;проверка от макроса DRAW_LINE |
693 | end if ;проверка от макроса DRAW_LINE |
Line 805... | Line 694... | ||
805 | 694 | ||
806 | ; left edge |
695 | ; left edge |
Line 836... | Line 725... | ||
836 | fld dword[dtzdl_max] |
725 | fld dword[dtzdl_max] |
837 | fadd dword[tz1] |
726 | fadd dword[tz1] |
838 | fstp dword[tz1] |
727 | fstp dword[tz1] |
839 | end if |
728 | end if |
840 | jmp .end_er |
729 | jmp .end_er |
- | 730 | align 4 |
|
841 | .els_er: |
731 | .els_er: |
842 | mov eax,[dxdy_min] |
732 | mov eax,[dxdy_min] |
843 | add [x1],eax |
733 | add [x1],eax |
844 | if INTERP_Z eq 1 |
734 | if INTERP_Z eq 1 |
845 | mov eax,[dzdl_min] |
735 | mov eax,[dzdl_min] |
Line 878... | Line 768... | ||
878 | add [pp1],eax |
768 | add [pp1],eax |
879 | mov eax,[ebx+offs_zbuf_xsize] |
769 | mov eax,[ebx+offs_zbuf_xsize] |
880 | shl eax,1 |
770 | shl eax,1 |
881 | add [pz1],eax |
771 | add [pz1],eax |
882 | jmp .beg_w_lin |
772 | jmp .beg_w_lin |
- | 773 | align 4 |
|
883 | .end_w_lin: |
774 | .end_w_lin: |
884 | inc dword[part] |
775 | inc dword[part] |
885 | cmp dword[part],2 |
776 | cmp dword[part],2 |
886 | jl .cycle_0 |
777 | jl .cycle_0 |
887 | .end_f: |
778 | .end_f: |