Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 5417 → Rev 5418

/programs/develop/libraries/TinyGL/asm_fork/clip.asm
708,36 → 708,38
;if (co==0)
mov edi,dword[edx+offs_vert_zp+offs_zbup_x]
sub edi,dword[ebx+offs_vert_zp+offs_zbup_x]
mov dword[norm],edi
mov dword[norm],edi ;p2.x-p0.x
fild dword[norm]
mov edi,dword[ecx+offs_vert_zp+offs_zbup_y]
sub edi,dword[ebx+offs_vert_zp+offs_zbup_y]
mov dword[norm],edi
mov dword[norm],edi ;p1.y-p0.y
fimul dword[norm]
fchs
mov edi,dword[ecx+offs_vert_zp+offs_zbup_x]
sub edi,dword[ebx+offs_vert_zp+offs_zbup_x]
mov dword[norm],edi
mov dword[norm],edi ;p1.x-p0.x
fild dword[norm]
mov edi,dword[edx+offs_vert_zp+offs_zbup_y]
sub edi,dword[ebx+offs_vert_zp+offs_zbup_y]
mov dword[norm],edi
mov dword[norm],edi ;p2.y-p0.y
fimul dword[norm]
fsubp
 
faddp
;st0 = (p1.zp.x-p0.zp.x)*(p2.zp.y-p0.zp.y) - (p2.zp.x-p0.zp.x)*(p1.zp.y-p0.zp.y)
 
mov dword[front],0
fldz
fcompp
ftst
fstsw ax
ffree st0
fincstp
sahf
je .end_f
jbe @f ;jb @f ???
inc dword[front] ;front = 0.0 > norm
jae @f
inc dword[front] ;front = norm < 0.0
@@:
mov edi,[context]
mov eax,dword[edi+offs_cont_current_front_face]
xor dword[front],eax ;front ^= context.current_front_face
 
; back face culling
cmp dword[edi+offs_cont_cull_face_enabled],0
je .els_1