Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 5212 → Rev 5213

/programs/develop/libraries/TinyGL/asm_fork/clip.asm
719,8 → 719,8
sub edi,dword[ebx+offs_vert_zp+offs_zbup_x]
mov dword[norm],edi
fild dword[norm]
mov esi,dword[ecx+offs_vert_zp+offs_zbup_y]
sub esi,dword[ebx+offs_vert_zp+offs_zbup_y]
mov edi,dword[ecx+offs_vert_zp+offs_zbup_y]
sub edi,dword[ebx+offs_vert_zp+offs_zbup_y]
mov dword[norm],edi
fimul dword[norm]
mov edi,dword[ecx+offs_vert_zp+offs_zbup_x]
770,6 → 770,7
cmp dword[front],0
je @f
stdcall dword[edi+offs_cont_draw_triangle_front], edi,ebx,ecx,edx
jmp .end_f
@@:
stdcall dword[edi+offs_cont_draw_triangle_back], edi,ebx,ecx,edx
jmp .end_f
801,20 → 802,6
mov ecx,[p1]
mov edx,[p2]
 
if DEBUG ;(1) gl_draw_triangle_clip
pushad
stdcall dbg_print,txt_sp,m_1
add ebx,offs_vert_color
add ecx,offs_vert_color
add edx,offs_vert_color
stdcall gl_print_matrix,ebx,1
stdcall gl_print_matrix,ecx,1
stdcall gl_print_matrix,edx,1
popad
end if
 
; finit ;???
 
mov edi,[ebx+offs_vert_clip_code]
mov [cc],edi
mov eax,[ecx+offs_vert_clip_code]
/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
/programs/develop/libraries/TinyGL/asm_fork/zbuffer.inc
8,17 → 8,17
 
ZB_POINT_Z_FRAC_BITS equ 14
 
ZB_POINT_S_MIN equ ( (1 shl 13) )
ZB_POINT_S_MIN equ (1 shl 13)
ZB_POINT_S_MAX equ ( (1 shl 22)-(1 shl 13) )
ZB_POINT_T_MIN equ ( (1 shl 21) )
ZB_POINT_T_MIN equ (1 shl 21)
ZB_POINT_T_MAX equ ( (1 shl 30)-(1 shl 21) )
 
ZB_POINT_RED_MIN equ ( (1 shl 10) )
ZB_POINT_RED_MAX equ ( (1 shl 16)-(1 shl 10) )
ZB_POINT_GREEN_MIN equ ( (1 shl 9) )
ZB_POINT_GREEN_MAX equ ( (1 shl 16)-(1 shl 9) )
ZB_POINT_BLUE_MIN equ ( (1 shl 10) )
ZB_POINT_BLUE_MAX equ ( (1 shl 16)-(1 shl 10) )
ZB_POINT_RED_MIN equ (1 shl 8)
ZB_POINT_RED_MAX equ ( (1 shl 16)-1 )
ZB_POINT_GREEN_MIN equ (1 shl 8)
ZB_POINT_GREEN_MAX equ ( (1 shl 16)-1 )
ZB_POINT_BLUE_MIN equ (1 shl 8)
ZB_POINT_BLUE_MAX equ ( (1 shl 16)-1 )
 
; display modes
ZB_MODE_5R6G5B equ 1 ; true color 16 bits