Subversion Repositories Kolibri OS

Rev

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

Rev 5939 Rev 6108
Line 18... Line 18...
18
; В даной версии алгоритм немного другой. В наиболее вероятных местах появления
18
; В даной версии алгоритм немного другой. В наиболее вероятных местах появления
19
; пикселей не правильного цвета (обычно начало и конец линии) иправляеться
19
; пикселей не правильного цвета (обычно начало и конец линии) иправляеться
20
; цвет испорченных пикселей. Цвет получаеться наиболее близким к указанному
20
; цвет испорченных пикселей. Цвет получаеться наиболее близким к указанному
21
; пользователем.
21
; пользователем.
Line 22... Line -...
22
 
-
 
23
	t dd ? ;ZBufferPoint*
22
 
24
	pr1 dd ? ;ZBufferPoint*
23
	pr1 dd ? ;ZBufferPoint*
25
	pr2 dd ? ;ZBufferPoint*
24
	pr2 dd ? ;ZBufferPoint*
26
	l1 dd ? ;ZBufferPoint*
25
	l1 dd ? ;ZBufferPoint*
27
	l2 dd ? ;ZBufferPoint*
26
	l2 dd ? ;ZBufferPoint*
Line 51... Line 50...
51
	dxdy_max dd ? ;int
50
	dxdy_max dd ? ;int
52
	; warning: x2 is multiplied by 2^16
51
	; warning: x2 is multiplied by 2^16
53
	x2 dd ? ;int
52
	x2 dd ? ;int
54
	dx2dy2 dd ? ;int
53
	dx2dy2 dd ? ;int
Line -... Line 54...
-
 
54
 
-
 
55
	pz dd ? ;unsigned short *
-
 
56
	z dd ? ;uint
-
 
57
	zz dd ? ;uint
55
 
58
 
56
if INTERP_Z eq 1
59
if INTERP_Z eq 1
57
	z1 dd ? ;int
60
	z1 dd ? ;int
58
	dzdx dd ? ;int
61
	dzdx dd ? ;int
59
	dzdy dd ? ;int
62
	dzdy dd ? ;int
Line 98... Line 101...
98
	tz1 dd ? ;float
101
	tz1 dd ? ;float
99
	dtzdx dd ? ;float
102
	dtzdx dd ? ;float
100
	dtzdy dd ? ;float
103
	dtzdy dd ? ;float
101
	dtzdl_min dd ? ;float
104
	dtzdl_min dd ? ;float
102
	dtzdl_max dd ? ;float
105
	dtzdl_max dd ? ;float
-
 
106
	s_z dd ? ;float
-
 
107
	t_z dd ? ;float
103
end if
108
end if
104
 
-
 
105
 
-
 
106
if DRAW_LINE_M eq 1
-
 
107
	DRAW_LINE 0 ;переменные делаются в макросе
-
 
108
else
-
 
109
	n dd ? ;int - длинна горизонтальной линии в пикселях
109
	n dd ? ;int - длинна горизонтальной линии в пикселях
110
if INTERP_Z eq 1
-
 
111
	pz dd ? ;unsigned short *
-
 
112
	z dd ? ;uint
-
 
113
	zz dd ? ;uint
-
 
114
end if
-
 
115
if INTERP_RGB eq 1
110
if INTERP_RGB eq 1
116
	or1 dd ? ;uint
111
	or1 dd ? ;uint
117
	og1 dd ? ;uint
112
	og1 dd ? ;uint
118
	ob1 dd ? ;uint
113
	ob1 dd ? ;uint
119
end if
114
end if
120
if INTERP_ST eq 1
115
if INTERP_ST eq 1
121
	s dd ? ;uint
116
	s dd ? ;uint
122
	t dd ? ;uint
117
	t dd ? ;uint
123
end if
118
end if
-
 
119
 
124
if INTERP_STZ eq 1
120
if DRAW_LINE_M eq 1
125
	s_z dd ? ;float
-
 
126
	t_z dd ? ;float
121
	DRAW_LINE 0 ;переменные делаются в макросе
127
end if
-
 
128
end if
122
end if
Line 129... Line 123...
129
 
123
 
130
endl
124
endl
Line 131... Line -...
131
pushad
-
 
132
 
-
 
133
if DEBUG ;(1)
-
 
134
stdcall dbg_print,f_fill_tr,m_1
-
 
135
end if
125
pushad
136
 
126
 
137
	; we sort the vertex with increasing y
127
	; we sort the vertex with increasing y
138
	mov ebx,[p0]
128
	mov ebx,[p0]
139
	mov ecx,[p1]
129
	mov ecx,[p1]