Subversion Repositories Kolibri OS

Rev

Rev 7616 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 7616 Rev 8083
Line 1... Line 1...
1
;
1
;
2
; áâàãªâãàë ¨ ä㭪樨 ¤«ï à¨á®¢ ­¨ï 3d ®¡ê¥ªâ®¢
2
; áâàãªâãàë ¨ ä㭪樨 ¤«ï à¨á®¢ ­¨ï 3d ®¡ê¥ªâ®¢
3
;
3
;
Line 4... Line 4...
4
 
4
 
Line 5... Line 5...
5
offs_zbuf_pbuf equ 24 ;const. from 'zbuffer.inc'
5
include '../../develop/libraries/TinyGL/asm_fork/zbuffer.inc'
6
 
6
 
7
struct obj_3d
7
struct obj_3d
8
	poi_data dd ? ;㪠§ â¥«ì ­  ª®®à¤¨­ âë ¢¥à設
8
	poi_data dd ? ;㪠§ â¥«ì ­  ª®®à¤¨­ âë ¢¥à設
Line 354... Line 354...
354
		mov edx,[ecx+obj_3d.tri_data]
354
		mov edx,[ecx+obj_3d.tri_data]
355
		mov ebx,[ecx+obj_3d.tri_count]
355
		mov ebx,[ecx+obj_3d.tri_count]
356
		mov ecx,[ecx+obj_3d.poi_data]
356
		mov ecx,[ecx+obj_3d.poi_data]
357
align 4
357
align 4
358
		@@:
358
		@@:
359
			mov edi,ebp
-
 
360
			sub edi,36 ;tbl2
359
			lea edi,[ebp-36] ;tbl2
361
			movzx esi,word[edx] ;1-ï ¢¥à設 
360
			movzx esi,word[edx] ;1-ï ¢¥à設 
362
			imul esi,12
361
			imul esi,12
363
			add esi,ecx
362
			add esi,ecx
364
			movsd
363
			movsd
365
			movsd
364
			movsd
Line 375... Line 374...
375
			add esi,ecx
374
			add esi,ecx
376
			movsd
375
			movsd
377
			movsd
376
			movsd
378
			movsd
377
			movsd
Line 379... Line -...
379
 
-
 
380
			mov esi,ebp
378
 
381
			sub esi,72 ;tbl1
379
			lea esi,[ebp-72] ;tbl1
382
			sub edi,36 ;tbl2
380
			sub edi,36 ;tbl2
383
			;v1 <-> v2
381
			;v1 <-> v2
384
			fld dword[edi+12]
382
			fld dword[edi+12]
385
			fsub dword[edi]
383
			fsub dword[edi]
Line 804... Line 802...
804
proc draw_3d uses eax ebx ecx edi, o_data:dword
802
proc draw_3d uses eax ebx ecx edi, o_data:dword
805
	mov edi,[o_data]
803
	mov edi,[o_data]
806
	cmp dword[edi+obj_3d.poi_count],2
804
	cmp dword[edi+obj_3d.poi_count],2
807
	jl .end_f
805
	jl .end_f
808
	stdcall [glClear], GL_COLOR_BUFFER_BIT + GL_DEPTH_BUFFER_BIT ;®ç¨á⨬ ¡ãä¥à æ¢¥â  ¨ £«ã¡¨­ë
806
	stdcall [glClear], GL_COLOR_BUFFER_BIT + GL_DEPTH_BUFFER_BIT ;®ç¨á⨬ ¡ãä¥à æ¢¥â  ¨ £«ã¡¨­ë
809
	stdcall [glPushMatrix]
807
	call [glPushMatrix]
810
	bt dword[draw_mode],bit_light
808
	bt dword[draw_mode],bit_light
811
	jnc @f
809
	jnc @f
812
		call SetLight
810
		call SetLight
813
		jmp .end_l
811
		jmp .end_l
814
	@@:
812
	@@:
Line 974... Line 972...
974
		stdcall [glVertex3f], [eax],[eax+4],[edi+obj_3d.z_min]
972
		stdcall [glVertex3f], [eax],[eax+4],[edi+obj_3d.z_min]
975
		stdcall [glVertex3f], [eax],[eax+4],[edi+obj_3d.z_max]
973
		stdcall [glVertex3f], [eax],[eax+4],[edi+obj_3d.z_max]
976
		stdcall [glEnd]
974
		stdcall [glEnd]
Line 977... Line 975...
977
 
975
 
978
		stdcall [glColor3ub],[color_select+2],[color_select+1],[color_select]
976
		stdcall [glColor3ub],[color_select+2],[color_select+1],[color_select]
979
		stdcall [glPushMatrix]
977
		call [glPushMatrix]
980
			stdcall [glTranslatef], [eax],[eax+4],[eax+8]
978
			stdcall [glTranslatef], [eax],[eax+4],[eax+8]
981
			stdcall [gluSphere], [qObj], [sph_radius], 8,8
979
			stdcall [gluSphere], [qObj], [sph_radius], 8,8
982
		stdcall [glPopMatrix]
980
		call [glPopMatrix]
Line 983... Line 981...
983
	@@:
981
	@@:
984
 
982
 
985
	;à¨á®¢ ­¨¥ ¢ë¤¥«¥­­ëå â®ç¥ª
983
	;à¨á®¢ ­¨¥ ¢ë¤¥«¥­­ëå â®ç¥ª
Line 995... Line 993...
995
			mov ebx,eax
993
			mov ebx,eax
996
			cmp word[ebx],ID_ICON_POINT_SEL
994
			cmp word[ebx],ID_ICON_POINT_SEL
997
			jne .next_sel
995
			jne .next_sel
998
			stdcall [tl_node_poi_get_data], tree3,ebx
996
			stdcall [tl_node_poi_get_data], tree3,ebx
999
			mov eax,[eax]
997
			mov eax,[eax]
1000
			stdcall [glPushMatrix]
998
			call [glPushMatrix]
1001
				stdcall [glTranslatef], [eax],[eax+4],[eax+8]
999
				stdcall [glTranslatef], [eax],[eax+4],[eax+8]
1002
				stdcall [gluSphere], [qObj], [sph_radius], 4,4
1000
				stdcall [gluSphere], [qObj], [sph_radius], 4,4
1003
			stdcall [glPopMatrix]
1001
			call [glPopMatrix]
1004
			dec ecx
1002
			dec ecx
1005
			jz .end_select
1003
			jz .end_select
1006
			.next_sel:
1004
			.next_sel:
1007
			stdcall [tl_node_poi_get_next_info], tree3,ebx
1005
			stdcall [tl_node_poi_get_next_info], tree3,ebx
1008
			jmp @b
1006
			jmp @b
1009
    .end_select:
1007
    .end_select:
1010
end if
1008
end if
Line 1011... Line 1009...
1011
 
1009
 
1012
	stdcall [glPopMatrix]
1010
	call [glPopMatrix]
1013
if version_edit eq 1
1011
if version_edit eq 1
1014
	cmp dword[obj_poi_sel_c],0
1012
	cmp dword[obj_poi_sel_c],0
1015
	je @f
1013
	je @f
1016
		stdcall [buf2d_draw_text], buf_ogl, buf_1,txt_select_vert,5,3,[color_select]
1014
		stdcall [buf2d_draw_text], buf_ogl, buf_1,txt_select_vert,5,3,[color_select]
1017
	@@:
1015
	@@:
1018
end if
1016
end if
1019
	stdcall [kosglSwapBuffers]
1017
	call [kosglSwapBuffers]
1020
	.end_f:
1018
	.end_f:
1021
	ret
1019
	ret
Line 1022... Line 1020...
1022
endp
1020
endp