Subversion Repositories Kolibri OS

Rev

Rev 6108 | Rev 6126 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 6108 Rev 6113
Line 26... Line 26...
26
	l2 dd ? ;ZBufferPoint*
26
	l2 dd ? ;ZBufferPoint*
27
	fdx1 dd ? ;float
27
	fdx1 dd ? ;float
28
	fdx2 dd ? ;float
28
	fdx2 dd ? ;float
29
	fdy1 dd ? ;float
29
	fdy1 dd ? ;float
30
	fdy2 dd ? ;float
30
	fdy2 dd ? ;float
31
	fz dd ? ;float
31
	fz dd ? ;float - переменная отвечающая за геометрию фигуры
32
	d1 dd ? ;float
32
	d1 dd ? ;float
33
	d2 dd ? ;float
33
	d2 dd ? ;float
34
	pz1 dd ? ;unsigned short*
34
	pz1 dd ? ;unsigned short*
35
	pp1 dd ? ;PIXEL*
35
	pp1 dd ? ;PIXEL*
36
	part dd ?
36
	part dd ?
Line 54... Line 54...
54
 
54
 
55
	pz dd ? ;unsigned short *
55
	pz dd ? ;unsigned short *
56
	z dd ? ;uint
56
	z dd ? ;uint
Line -... Line 57...
-
 
57
	zz dd ? ;uint
-
 
58
 
57
	zz dd ? ;uint
59
	n dd ? ;int - длинна горизонтальной линии в пикселях
58
 
60
 
59
if INTERP_Z eq 1
61
if INTERP_Z eq 1
60
	z1 dd ? ;int
62
	z1 dd ? ;int
61
	dzdx dd ? ;int
63
	dzdx dd ? ;int
Line 77... Line 79...
77
	b1 dd ?
79
	b1 dd ?
78
	dbdx dd ?
80
	dbdx dd ?
79
	dbdy dd ?
81
	dbdy dd ?
80
	dbdl_min dd ?
82
	dbdl_min dd ?
81
	dbdl_max dd ?
83
	dbdl_max dd ?
-
 
84
	or1 dd ? ;uint
-
 
85
	og1 dd ? ;uint
-
 
86
	ob1 dd ? ;uint
82
end if
87
end if
83
if INTERP_ST eq 1
88
if INTERP_ST eq 1
84
	s1 dd ? ;int
89
	s1 dd ? ;int
85
	dsdx dd ? ;int
-
 
86
	dsdy dd ? ;int
90
	dsdy dd ? ;int
87
	dsdl_min dd ? ;int
91
	dsdl_min dd ? ;int
88
	dsdl_max dd ? ;int
92
	dsdl_max dd ? ;int
89
	t1 dd ? ;int
93
	t1 dd ? ;int
90
	dtdx dd ? ;int
-
 
91
	dtdy dd ? ;int
94
	dtdy dd ? ;int
92
	dtdl_min dd ? ;int
95
	dtdl_min dd ? ;int
93
	dtdl_max dd ? ;int
96
	dtdl_max dd ? ;int
94
end if
97
end if
95
if INTERP_STZ eq 1
98
if INTERP_STZ eq 1
Line 104... Line 107...
104
	dtzdl_min dd ? ;float
107
	dtzdl_min dd ? ;float
105
	dtzdl_max dd ? ;float
108
	dtzdl_max dd ? ;float
106
	s_z dd ? ;float
109
	s_z dd ? ;float
107
	t_z dd ? ;float
110
	t_z dd ? ;float
108
end if
111
end if
109
	n dd ? ;int - длинна горизонтальной линии в пикселях
-
 
110
if INTERP_RGB eq 1
-
 
111
	or1 dd ? ;uint
-
 
112
	og1 dd ? ;uint
-
 
113
	ob1 dd ? ;uint
-
 
114
end if
-
 
115
if INTERP_ST eq 1
112
if (INTERP_ST eq 1) | (DRAW_LINE_M eq 1)
116
	s dd ? ;uint
113
	s dd ? ;uint
117
	t dd ? ;uint
114
	t dd ? ;uint
-
 
115
	dsdx dd ? ;int
-
 
116
	dtdx dd ? ;int
118
end if
117
end if
119
 
-
 
120
if DRAW_LINE_M eq 1
-
 
121
	DRAW_LINE 0 ;переменные делаются в макросе
-
 
122
end if
-
 
123
 
-
 
124
endl
118
endl
125
pushad
119
pushad
Line 126... Line 120...
126
 
120
 
127
	; we sort the vertex with increasing y
121
	; we sort the vertex with increasing y
Line 685... Line 679...
685
	.beg_w_lin:
679
	.beg_w_lin:
686
	cmp dword[nb_lines],0 ;while (nb_lines>0)
680
	cmp dword[nb_lines],0 ;while (nb_lines>0)
687
	jle .end_w_lin
681
	jle .end_w_lin
688
		dec dword[nb_lines]
682
		dec dword[nb_lines]
689
if DRAW_LINE_M eq 1
683
if DRAW_LINE_M eq 1
690
		DRAW_LINE 1
684
		DRAW_LINE
691
else
685
else
692
		; generic draw line
686
		; generic draw line
693
		mov eax,[x2]
687
		mov eax,[x2]
694
		sar eax,16
688
		sar eax,16
695
		mov edi,[x1]
689
		mov edi,[x1]
Line 876... Line 870...
876
		fld dword[dtzdl_min]
870
		fld dword[dtzdl_min]
877
		fadd dword[tz1]
871
		fadd dword[tz1]
878
		fstp dword[tz1]
872
		fstp dword[tz1]
879
end if
873
end if
880
	.end_er:
874
	.end_er:
881
 
-
 
882
			; right edge
875
			; right edge
883
			mov eax,[dx2dy2]
876
			mov eax,[dx2dy2]
884
			add [x2],eax
877
			add [x2],eax
Line 885... Line 878...
885
 
878