Subversion Repositories Kolibri OS

Rev

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: