Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 5212 → Rev 5213

/programs/develop/libraries/TinyGL/asm_fork/vertex.asm
46,8 → 46,8
rep movsd
 
mov eax,[context]
cmp dword[eax+offs_cont_color_material_enabled],1
jne @f
cmp dword[eax+offs_cont_color_material_enabled],0
je @f
mov dword[q],OP_Material
mov ecx,[eax+offs_cont_current_color_material_mode]
mov dword[q+4],ecx
55,7 → 55,8
mov dword[q+8],ecx
mov esi,[p]
add esi,4
mov edi,dword[q+12] ;edi = [q3]
mov edi,ebp
sub edi,16 ;edi = &q[3]
mov ecx,4
rep movsd
stdcall glopMaterial, eax,[q]
147,11 → 148,7
add ecx,offs_cont_matrix_model_projection
; precompute projection matrix
stdcall gl_M4_Mul, ecx,dword[edx+offs_cont_matrix_stack_ptr+4],dword[edx+offs_cont_matrix_stack_ptr]
;if DEBUG ;glopBegin
;stdcall gl_print_matrix,ecx,4
;stdcall gl_print_matrix,[edx+offs_cont_matrix_stack_ptr+4],4
;stdcall gl_print_matrix,[edx+offs_cont_matrix_stack_ptr],4
;end if
 
; test to accelerate computation
mov dword[edx+offs_cont_matrix_model_projection_no_w_transform],0
fldz
455,6 → 452,10
.els_0:
mov eax,[edx+offs_cont_current_color]
mov [ebx+offs_vert_color],eax
mov eax,[edx+offs_cont_current_color+4]
mov [ebx+offs_vert_color+4],eax
mov eax,[edx+offs_cont_current_color+8]
mov [ebx+offs_vert_color+8],eax
@@:
 
; tex coords
570,11 → 571,23
jne @f
cmp dword[n],4
jne .end_f
; c->vertex[2].edge_flag = 0;
; gl_draw_triangle(c, &c->vertex[0], &c->vertex[1], &c->vertex[2]);
; c->vertex[2].edge_flag = 1;
; c->vertex[0].edge_flag = 0;
; gl_draw_triangle(c, &c->vertex[0], &c->vertex[2], &c->vertex[3]);
mov eax,[edx+offs_cont_vertex]
add eax,2*sizeof.GLVertex
mov dword[eax+offs_vert_edge_flag],0 ;context.vertex[2].edge_flag = 0
push eax
sub eax,sizeof.GLVertex
push eax
sub eax,sizeof.GLVertex
stdcall gl_draw_triangle, edx,eax ;v0,v1,v2
mov dword[eax+offs_vert_edge_flag],0 ;context.vertex[0].edge_flag = 0
add eax,2*sizeof.GLVertex
mov dword[eax+offs_vert_edge_flag],1 ;context.vertex[2].edge_flag = 1
add eax,sizeof.GLVertex
push eax
sub eax,sizeof.GLVertex
push eax
sub eax,2*sizeof.GLVertex
stdcall gl_draw_triangle, edx,eax ;v0,v2,v3
xor eax,eax
mov dword[n],eax
jmp .end_f
591,10 → 604,7
jmp .end_f
@@:
cmp dword[edx+offs_cont_begin_type],GL_POLYGON
jne @f
;...
jmp .end_f
@@:
je .end_f
; default:
; gl_fatal_error("glBegin: type %x not handled\n", c->begin_type);
; }
607,7 → 617,7
endp
 
align 4
proc glopEnd uses eax ebx, context:dword, p:dword
proc glopEnd uses eax ebx ecx, context:dword, p:dword
mov eax,[context]
; assert(c->in_begin == 1);
 
629,7 → 639,13
cmp ebx,3
jl .end_i
dec ebx
; gl_draw_triangle(c, &c->vertex[i], &c->vertex[0], &c->vertex[i - 1]);
mov ecx,ebx
imul ecx,sizeof.GLVertex
add ecx,[eax+offs_cont_vertex]
push ecx ;ecx = &context.vertex[i]
sub ecx,sizeof.GLVertex
push ecx ;ecx = &context.vertex[i-1]
stdcall gl_draw_triangle, eax,[eax+offs_cont_vertex]
jmp @b
.end_i:
mov dword[eax+offs_cont_in_begin],0