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 |