Subversion Repositories Kolibri OS

Rev

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

Rev 6619 Rev 6769
Line 75... Line 75...
75
end if
75
end if
76
}
76
}
77
macro .draw_pixel
77
macro .draw_pixel
78
{
78
{
79
    mov 	[esi],ebx	       ; actualize Z buffer
79
    mov 	[esi],ebx	       ; actualize Z buffer
80
if Ext=SSE2
80
if Ext>=SSE2
81
    movaps	xmm7,xmm1 ;[.cb] ;;xmm1
81
    movaps	xmm7,xmm1 ;[.cb] ;;xmm1
82
    shufps	xmm7,xmm7,00111001b
82
    shufps	xmm7,xmm7,00111001b
83
    psrld	xmm7,ROUND
83
    psrld	xmm7,ROUND
84
    packssdw	xmm7,xmm7
84
    packssdw	xmm7,xmm7
85
    packuswb	xmm7,xmm7
85
    packuswb	xmm7,xmm7
Line 134... Line 134...
134
    or		eax,ebx
134
    or		eax,ebx
135
    test	eax,80008000h
135
    test	eax,80008000h
136
    jne 	.end_line
136
    jne 	.end_line
137
    movzx	edx,word [size_x_var]
137
    movzx	edx,word [size_x_var]
138
    mov 	[.xres],edx
138
    mov 	[.xres],edx
-
 
139
    dec 	edx
139
    movzx	ecx,word [size_y_var]
140
    movzx	ecx,word [size_y_var]
140
    mov 	[.yres],ecx
141
    mov 	[.yres],ecx
-
 
142
    dec 	ecx
141
    cmp 	word[.x1],dx  ;SIZE_X
143
    cmp 	word[.x1],dx  ;SIZE_X
142
    jg		.end_line
144
    jg		.end_line
143
    cmp 	word[.x2],dx  ;SIZE_X
145
    cmp 	word[.x2],dx  ;SIZE_X
144
    jg		.end_line
146
    jg		.end_line
145
    cmp 	word[.y1],cx  ;SIZE_Y
147
    cmp 	word[.y1],cx  ;SIZE_Y
Line 207... Line 209...
207
    je		.end_line
209
    je		.end_line
208
    mov 	[.delta_x],ebx
210
    mov 	[.delta_x],ebx
Line 209... Line 211...
209
 
211
 
Line 210... Line 212...
210
    call	.calc_delta
212
    call	.calc_delta
211
 
213
 
212
    movzx	eax,word [size_x_var]  ;SIZE_X
214
    mov 	eax,[.xres]  ;SIZE_X
213
    movsx	ebx,word[.y1]
215
    movsx	ebx,word[.y1]
214
    mul 	ebx
216
    mul 	ebx
215
    add 	esi,eax
217
    add 	esi,eax
Line 273... Line 275...
273
    je		.end_line
275
    je		.end_line
274
    mov 	[.delta_y],ebx
276
    mov 	[.delta_y],ebx
Line 275... Line 277...
275
 
277
 
Line 276... Line 278...
276
    call	.calc_delta
278
    call	.calc_delta
277
 
279
 
278
    movzx	eax,word[size_x_var]  ;SIZE_X
280
    mov 	eax,[.xres]  ;SIZE_X
279
    movsx	ebx,word[.y1]
281
    movsx	ebx,word[.y1]
280
    mul 	ebx
282
    mul 	ebx
281
    add 	esi,eax
283
    add 	esi,eax