forked from KolibriOS/kolibrios
add a new program for users (it has a simple interface)
git-svn-id: svn://kolibrios.org@6060 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
228094c871
commit
7833219ec0
@ -10,4 +10,6 @@ if not exist bin\font8x9.bmp @copy ..\..\fs\kfar\trunk\font8x9.bmp bin\font8x9.b
|
|||||||
@kpack bin\tinygl.obj
|
@kpack bin\tinygl.obj
|
||||||
@fasm.exe -m 16384 info3ds.asm bin\info3ds.kex
|
@fasm.exe -m 16384 info3ds.asm bin\info3ds.kex
|
||||||
@kpack bin\info3ds.kex
|
@kpack bin\info3ds.kex
|
||||||
|
@fasm.exe -m 16384 info3ds_u.asm bin\info3ds_u.kex
|
||||||
|
@kpack bin\info3ds_u.kex
|
||||||
pause
|
pause
|
@ -10,4 +10,6 @@ if not exist bin\font8x9.bmp @copy ..\..\fs\kfar\trunk\font8x9.bmp bin\font8x9.b
|
|||||||
@kpack bin\tinygl.obj
|
@kpack bin\tinygl.obj
|
||||||
@fasm.exe -m 16384 info3ds.asm bin\info3ds.kex
|
@fasm.exe -m 16384 info3ds.asm bin\info3ds.kex
|
||||||
@kpack bin\info3ds.kex
|
@kpack bin\info3ds.kex
|
||||||
|
@fasm.exe -m 16384 info3ds_u.asm bin\info3ds_u.kex
|
||||||
|
@kpack bin\info3ds_u.kex
|
||||||
pause
|
pause
|
@ -12,6 +12,7 @@ include '../../dll.inc'
|
|||||||
include 'lang.inc'
|
include 'lang.inc'
|
||||||
include 'info_fun_float.inc'
|
include 'info_fun_float.inc'
|
||||||
include 'info_menu.inc'
|
include 'info_menu.inc'
|
||||||
|
include 'data.inc'
|
||||||
|
|
||||||
version_edit equ 1
|
version_edit equ 1
|
||||||
|
|
||||||
@ -48,13 +49,13 @@ open_b rb 560
|
|||||||
main_wnd_height equ 460 ;¢ëá®â £« ¢®£® ®ª ¯à®£à ¬¬ë
|
main_wnd_height equ 460 ;¢ëá®â £« ¢®£® ®ª ¯à®£à ¬¬ë
|
||||||
fn_toolbar db 'toolbar.png',0
|
fn_toolbar db 'toolbar.png',0
|
||||||
IMAGE_TOOLBAR_ICON_SIZE equ 16*16*3
|
IMAGE_TOOLBAR_ICON_SIZE equ 16*16*3
|
||||||
IMAGE_TOOLBAR_SIZE equ IMAGE_TOOLBAR_ICON_SIZE*7
|
IMAGE_TOOLBAR_SIZE equ IMAGE_TOOLBAR_ICON_SIZE*12+54
|
||||||
image_data_toolbar dd 0
|
image_data_toolbar dd 0
|
||||||
;
|
;
|
||||||
TREE_ICON_SYS16_BMP_SIZE equ IMAGE_TOOLBAR_ICON_SIZE*11+54 ;à §¬¥à bmp ä ©« á á¨á⥬묨 ¨ª®ª ¬¨
|
TREE_ICON_SYS16_BMP_SIZE equ IMAGE_TOOLBAR_ICON_SIZE*11+54 ;à §¬¥à bmp ä ©« á á¨á⥬묨 ¨ª®ª ¬¨
|
||||||
icon_tl_sys dd 0 ;㪠§ ⥥«ì ¯ ¬ïâì ¤«ï åà ¥¨ï á¨á⥬ëå ¨ª®®ª
|
icon_tl_sys dd 0 ;㪠§ ⥥«ì ¯ ¬ïâì ¤«ï åà ¥¨ï á¨á⥬ëå ¨ª®®ª
|
||||||
icon_toolbar dd 0 ;㪠§ ⥥«ì ¯ ¬ïâì ¤«ï åà ¥¨ï ¨ª®®ª ®¡ê¥ªâ®¢
|
icon_toolbar dd 0 ;㪠§ ⥥«ì ¯ ¬ïâì ¤«ï åà ¥¨ï ¨ª®®ª ®¡ê¥ªâ®¢
|
||||||
TOOLBAR_ICON_BMP_SIZE equ IMAGE_TOOLBAR_ICON_SIZE*10+54 ;à §¬¥à bmp ä ©« á ¨ª®ª ¬¨ ®¡ê¥ªâ®¢
|
IMAGE_CHUNKS_SIZE equ IMAGE_TOOLBAR_ICON_SIZE*10+54 ;à §¬¥à bmp ä ©« á ¨ª®ª ¬¨ ®¡ê¥ªâ®¢
|
||||||
;
|
;
|
||||||
IMAGE_FILE1_SIZE equ 128*144*3+54 ;à §¬¥à ä ©« á ¨§®¡à ¦¥¨¥¬
|
IMAGE_FILE1_SIZE equ 128*144*3+54 ;à §¬¥à ä ©« á ¨§®¡à ¦¥¨¥¬
|
||||||
|
|
||||||
@ -96,8 +97,6 @@ macro load_image_file path,buf,size { ;
|
|||||||
}
|
}
|
||||||
|
|
||||||
;--------------------------------------
|
;--------------------------------------
|
||||||
include 'data.inc'
|
|
||||||
|
|
||||||
level_stack dd 0
|
level_stack dd 0
|
||||||
offs_last_timer dd 0 ;¯®á«¥¤¨© ᤢ¨£ ¯®ª § ë© ¢ äãªæ¨¨ â ©¬¥à
|
offs_last_timer dd 0 ;¯®á«¥¤¨© ᤢ¨£ ¯®ª § ë© ¢ äãªæ¨¨ â ©¬¥à
|
||||||
|
|
||||||
@ -184,7 +183,7 @@ start:
|
|||||||
mov eax,dword[icon_tl_sys]
|
mov eax,dword[icon_tl_sys]
|
||||||
mov dword[tree1.data_img_sys],eax
|
mov dword[tree1.data_img_sys],eax
|
||||||
|
|
||||||
load_image_file 'objects.png', icon_toolbar,TOOLBAR_ICON_BMP_SIZE
|
load_image_file 'objects.png', icon_toolbar,IMAGE_CHUNKS_SIZE
|
||||||
mov eax,dword[icon_toolbar]
|
mov eax,dword[icon_toolbar]
|
||||||
mov dword[tree1.data_img],eax
|
mov dword[tree1.data_img],eax
|
||||||
|
|
||||||
@ -424,7 +423,7 @@ pushad
|
|||||||
@@:
|
@@:
|
||||||
sub eax,65
|
sub eax,65
|
||||||
mov dword[tree1.box_height],eax
|
mov dword[tree1.box_height],eax
|
||||||
mov word[w_scr_t1+4],ax ;®¢ë¥ à §¬¥àë áªà®««¨£
|
mov word[w_scr_t1.y_size],ax ;®¢ë¥ à §¬¥àë áªà®««¨£
|
||||||
cmp eax,dword[buf_0.h] ;㢥«¨ç¨¢ ¥¬ ¢ëá®âã ¡ãä¥à
|
cmp eax,dword[buf_0.h] ;㢥«¨ç¨¢ ¥¬ ¢ëá®âã ¡ãä¥à
|
||||||
jle @f
|
jle @f
|
||||||
stdcall [buf2d_resize],buf_0,0,eax
|
stdcall [buf2d_resize],buf_0,0,eax
|
||||||
@ -440,7 +439,7 @@ pushad
|
|||||||
sub eax,41
|
sub eax,41
|
||||||
mov dword[tree1.box_width],eax
|
mov dword[tree1.box_width],eax
|
||||||
add ax,word[tree1.box_left]
|
add ax,word[tree1.box_left]
|
||||||
mov word[w_scr_t1+sb_offs_start_x],ax
|
mov word[w_scr_t1.x_pos],ax
|
||||||
add ax,16+5
|
add ax,16+5
|
||||||
mov word[buf_0.l],ax
|
mov word[buf_0.l],ax
|
||||||
|
|
||||||
@ -708,8 +707,7 @@ block_analiz_data:
|
|||||||
jne @f
|
jne @f
|
||||||
stdcall add_3ds_object, ID_ICON_DATA,ebx,2,txt_count ;ç¨á«® £à ¥©
|
stdcall add_3ds_object, ID_ICON_DATA,ebx,2,txt_count ;ç¨á«® £à ¥©
|
||||||
push eax
|
push eax
|
||||||
xor eax,eax
|
movzx eax,word[esi]
|
||||||
mov ax,[esi]
|
|
||||||
shl eax,3
|
shl eax,3
|
||||||
add esi,2
|
add esi,2
|
||||||
sub ecx,2
|
sub ecx,2
|
||||||
@ -768,16 +766,20 @@ block_analiz_data:
|
|||||||
ret
|
ret
|
||||||
|
|
||||||
;¢å®¤ ¢ 1-© ¤®ç¥à¨© ¡«®ª
|
;¢å®¤ ¢ 1-© ¤®ç¥à¨© ¡«®ª
|
||||||
|
;input:
|
||||||
|
; eax - 㪠§ â¥«ì ¢à¥¬¥ë© á⥪ ä ©« file_3ds
|
||||||
|
; esi - ç «® த¨â¥«ì᪮£® ¡«®ª
|
||||||
;output:
|
;output:
|
||||||
; edx - destroy
|
; ebx - destroy
|
||||||
|
; esi - ç «® ¤ ëå த¨â¥«ì᪮£® ¡«®ª
|
||||||
align 4
|
align 4
|
||||||
block_children:
|
block_children:
|
||||||
push ecx
|
push ecx
|
||||||
;¯à®¢¥àª ¯à ¢¨«ì®áâ¨ à §¬¥à®¢ ¤®ç¥à¥£® ¡«®ª
|
;¯à®¢¥àª ¯à ¢¨«ì®áâ¨ à §¬¥à®¢ ¤®ç¥à¥£® ¡«®ª
|
||||||
mov ebx,esi ;ᬥ饨¥ ç « த¨â¥«ì᪮£® ¡«®ª
|
mov ebx,esi
|
||||||
add ebx,6 ;¯¥à¥å®¤ ç «® ¤®ç¥à¥£® ¡«®ª
|
add ebx,6 ;¯¥à¥å®¤ ç «® ¤®ç¥à¥£® ¡«®ª
|
||||||
add ebx,dword[ebx+2] ;¤®¡ ¢«ï¥¬ à §¬¥à ¤®ç¥à¥£® ¡«®ª
|
add ebx,dword[ebx+2] ;¤®¡ ¢«ï¥¬ à §¬¥à ¤®ç¥à¥£® ¡«®ª
|
||||||
mov ecx,esi ;ᬥ饨¥ ç « த¨â¥«ì᪮£® ¡«®ª
|
mov ecx,esi
|
||||||
add ecx,dword[esi+2] ;¤®¡ ¢«ï¥¬ à §¬¥à த¨â¥«ì᪮£® ¡«®ª
|
add ecx,dword[esi+2] ;¤®¡ ¢«ï¥¬ à §¬¥à த¨â¥«ì᪮£® ¡«®ª
|
||||||
cmp ebx,ecx ;ãç¨âë¢ âì § £®«®¢ª¨ ¥ 㦮, â. ª. áà ¢¨¢ îâáï ⮫쪮 ¤ ë¥ ¡«®ª®¢
|
cmp ebx,ecx ;ãç¨âë¢ âì § £®«®¢ª¨ ¥ 㦮, â. ª. áà ¢¨¢ îâáï ⮫쪮 ¤ ë¥ ¡«®ª®¢
|
||||||
jle @f
|
jle @f
|
||||||
@ -1228,12 +1230,10 @@ import_buf2d:
|
|||||||
buf2d_bit_blt dd sz_buf2d_bit_blt
|
buf2d_bit_blt dd sz_buf2d_bit_blt
|
||||||
buf2d_bit_blt_transp dd sz_buf2d_bit_blt_transp
|
buf2d_bit_blt_transp dd sz_buf2d_bit_blt_transp
|
||||||
buf2d_bit_blt_alpha dd sz_buf2d_bit_blt_alpha
|
buf2d_bit_blt_alpha dd sz_buf2d_bit_blt_alpha
|
||||||
buf2d_curve_bezier dd sz_buf2d_curve_bezier
|
|
||||||
buf2d_convert_text_matrix dd sz_buf2d_convert_text_matrix
|
buf2d_convert_text_matrix dd sz_buf2d_convert_text_matrix
|
||||||
buf2d_draw_text dd sz_buf2d_draw_text
|
buf2d_draw_text dd sz_buf2d_draw_text
|
||||||
buf2d_crop_color dd sz_buf2d_crop_color
|
buf2d_crop_color dd sz_buf2d_crop_color
|
||||||
buf2d_offset_h dd sz_buf2d_offset_h
|
buf2d_offset_h dd sz_buf2d_offset_h
|
||||||
buf2d_flood_fill dd sz_buf2d_flood_fill
|
|
||||||
buf2d_set_pixel dd sz_buf2d_set_pixel
|
buf2d_set_pixel dd sz_buf2d_set_pixel
|
||||||
dd 0,0
|
dd 0,0
|
||||||
sz_init0 db 'lib_init',0
|
sz_init0 db 'lib_init',0
|
||||||
@ -1254,19 +1254,15 @@ import_buf2d:
|
|||||||
sz_buf2d_bit_blt db 'buf2d_bit_blt',0
|
sz_buf2d_bit_blt db 'buf2d_bit_blt',0
|
||||||
sz_buf2d_bit_blt_transp db 'buf2d_bit_blt_transp',0
|
sz_buf2d_bit_blt_transp db 'buf2d_bit_blt_transp',0
|
||||||
sz_buf2d_bit_blt_alpha db 'buf2d_bit_blt_alpha',0
|
sz_buf2d_bit_blt_alpha db 'buf2d_bit_blt_alpha',0
|
||||||
sz_buf2d_curve_bezier db 'buf2d_curve_bezier',0
|
|
||||||
sz_buf2d_convert_text_matrix db 'buf2d_convert_text_matrix',0
|
sz_buf2d_convert_text_matrix db 'buf2d_convert_text_matrix',0
|
||||||
sz_buf2d_draw_text db 'buf2d_draw_text',0
|
sz_buf2d_draw_text db 'buf2d_draw_text',0
|
||||||
sz_buf2d_crop_color db 'buf2d_crop_color',0
|
sz_buf2d_crop_color db 'buf2d_crop_color',0
|
||||||
sz_buf2d_offset_h db 'buf2d_offset_h',0
|
sz_buf2d_offset_h db 'buf2d_offset_h',0
|
||||||
sz_buf2d_flood_fill db 'buf2d_flood_fill',0
|
|
||||||
sz_buf2d_set_pixel db 'buf2d_set_pixel',0
|
sz_buf2d_set_pixel db 'buf2d_set_pixel',0
|
||||||
|
|
||||||
align 4
|
align 4
|
||||||
import_box_lib:
|
import_box_lib:
|
||||||
dd sz_init1
|
dd sz_init1
|
||||||
init_checkbox dd sz_init_checkbox
|
|
||||||
check_box_draw dd sz_check_box_draw
|
|
||||||
edit_box_draw dd sz_edit_box_draw
|
edit_box_draw dd sz_edit_box_draw
|
||||||
edit_box_key dd sz_edit_box_key
|
edit_box_key dd sz_edit_box_key
|
||||||
edit_box_mouse dd sz_edit_box_mouse
|
edit_box_mouse dd sz_edit_box_mouse
|
||||||
@ -1300,8 +1296,6 @@ import_box_lib:
|
|||||||
|
|
||||||
dd 0,0
|
dd 0,0
|
||||||
sz_init1 db 'lib_init',0
|
sz_init1 db 'lib_init',0
|
||||||
sz_init_checkbox db 'init_checkbox2',0
|
|
||||||
sz_check_box_draw db 'check_box_draw2',0
|
|
||||||
sz_edit_box_draw db 'edit_box',0
|
sz_edit_box_draw db 'edit_box',0
|
||||||
sz_edit_box_key db 'edit_box_key',0
|
sz_edit_box_key db 'edit_box_key',0
|
||||||
sz_edit_box_mouse db 'edit_box_mouse',0
|
sz_edit_box_mouse db 'edit_box_mouse',0
|
||||||
@ -1413,8 +1407,8 @@ buf_1:
|
|||||||
align 4
|
align 4
|
||||||
el_focus dd tree1
|
el_focus dd tree1
|
||||||
tree1 tree_list size_one_list,300+2, tl_key_no_edit+tl_draw_par_line,\
|
tree1 tree_list size_one_list,300+2, tl_key_no_edit+tl_draw_par_line,\
|
||||||
16,16, 0xffffff,0xb0d0ff,0x400040, 5,35,195-16,250, 16,list_offs_text,0, el_focus,\
|
16,16, 0xffffff,0xb0d0ff,0x400040, 5,35,195-16,250, 16,list_offs_text,0,\
|
||||||
w_scr_t1,0
|
el_focus,w_scr_t1,0
|
||||||
|
|
||||||
align 4
|
align 4
|
||||||
w_scr_t1 scrollbar 16,0, 3,0, 15, 100, 0,0, 0,0,0, 1
|
w_scr_t1 scrollbar 16,0, 3,0, 15, 100, 0,0, 0,0,0, 1
|
||||||
@ -1435,9 +1429,9 @@ white_light dd 0.8, 0.8, 0.8, 1.0 ;
|
|||||||
lmodel_ambient dd 0.3, 0.3, 0.3, 1.0 ; <20> à ¬¥âàë ä®®¢®£® ®á¢¥é¥¨ï
|
lmodel_ambient dd 0.3, 0.3, 0.3, 1.0 ; <20> à ¬¥âàë ä®®¢®£® ®á¢¥é¥¨ï
|
||||||
|
|
||||||
if lang eq ru
|
if lang eq ru
|
||||||
capt db 'info 3ds ¢¥àá¨ï 09.01.16',0 ;¯®¤¯¨áì ®ª
|
capt db 'info 3ds ¢¥àá¨ï 16.01.16',0 ;¯®¤¯¨áì ®ª
|
||||||
else
|
else
|
||||||
capt db 'info 3ds version 09.01.16',0 ;window caption
|
capt db 'info 3ds version 16.01.16',0 ;window caption
|
||||||
end if
|
end if
|
||||||
|
|
||||||
align 16
|
align 16
|
||||||
|
1483
programs/develop/info3ds/info3ds_u.asm
Normal file
1483
programs/develop/info3ds/info3ds_u.asm
Normal file
File diff suppressed because it is too large
Load Diff
@ -1 +1 @@
|
|||||||
if lang eq ru
sz_main_menu_View db '‚¨¤', 0
sz_main_menu_Veiw_Vertexes db '‚¥àè¨ë ¢ª«./¢ëª«.', 0
sz_main_menu_Veiw_Faces db 'ƒà ¨ ¢ª«./¢ëª«.', 0
sz_main_menu_Veiw_Faces_Fill db '‡ «¨¢ª £à ¥© ¢ª«./¢ëª«.', 0
sz_main_menu_Veiw_Light db '‘¢¥â ¢ª«./¢ëª«.', 0
sz_main_menu_Veiw_Reset db '‘¡à®á áâ஥ª', 0
sz_main_menu_Vertexes db '‚¥àè¨ë', 0
sz_main_menu_Vertexes_Select db '‚뤥«¨âì ¢¥àè¨ã', 0
sz_main_menu_Vertexes_Deselect db 'Žâ¬¥¨âì ¢áñ ¢ë¤¥«¥¨¥', 0
sz_main_menu_Average_x db '‘।¥¥ x',0
sz_main_menu_Average_y db '‘।¥¥ y',0
sz_main_menu_Average_z db '‘।¥¥ z',0
else
sz_main_menu_View db 'View', 0
sz_main_menu_Veiw_Vertexes db 'Vertexes on/off', 0
sz_main_menu_Veiw_Faces db 'Faces on/off', 0
sz_main_menu_Veiw_Faces_Fill db 'Faces fill on/off', 0
sz_main_menu_Veiw_Light db 'Light on/off', 0
sz_main_menu_Veiw_Reset db 'Reset settings', 0
sz_main_menu_Vertexes db 'Vertexes', 0
sz_main_menu_Vertexes_Select db 'Select vertex', 0
sz_main_menu_Vertexes_Deselect db 'Deselect all', 0
sz_main_menu_Average_x db 'Average x',0
sz_main_menu_Average_y db 'Average y',0
sz_main_menu_Average_z db 'Average z',0
end if
main_menu dd 0
main_menu_file dd 0
main_menu_view dd 0
main_menu_vertexes dd 0
KMENUITEM_NORMAL equ 0
KMENUITEM_SUBMENU equ 1
KMENUITEM_SEPARATOR equ 2
|
if lang eq ru
sz_main_menu_View db '‚¨¤', 0
sz_main_menu_Veiw_Vertexes db '‚¥àè¨ë ¢ª«.', 0
sz_main_menu_Veiw_Faces db 'Š ઠáë¥ £à ¨ ¢ª«.', 0
sz_main_menu_Veiw_Faces_Fill db '‘¯«®èë¥ £à ¨ ¢ª«.', 0
sz_main_menu_Veiw_Light db '‘¢¥â ¢ª«./¢ëª«.', 0
sz_main_menu_Veiw_Reset db '‘¡à®á áâ஥ª', 0
sz_main_menu_Vertexes db '‚¥àè¨ë', 0
sz_main_menu_Vertexes_Select db '‚뤥«¨âì ¢¥àè¨ã', 0
sz_main_menu_Vertexes_Deselect db 'Žâ¬¥¨âì ¢áñ ¢ë¤¥«¥¨¥', 0
sz_main_menu_Average_x db '‘।¥¥ x',0
sz_main_menu_Average_y db '‘।¥¥ y',0
sz_main_menu_Average_z db '‘।¥¥ z',0
else
sz_main_menu_View db 'View', 0
sz_main_menu_Veiw_Vertexes db 'Vertexes on', 0
sz_main_menu_Veiw_Faces db 'Edges on', 0
sz_main_menu_Veiw_Faces_Fill db 'Faces on', 0
sz_main_menu_Veiw_Light db 'Light on/off', 0
sz_main_menu_Veiw_Reset db 'Reset settings', 0
sz_main_menu_Vertexes db 'Vertexes', 0
sz_main_menu_Vertexes_Select db 'Select vertex', 0
sz_main_menu_Vertexes_Deselect db 'Deselect all', 0
sz_main_menu_Average_x db 'Average x',0
sz_main_menu_Average_y db 'Average y',0
sz_main_menu_Average_z db 'Average z',0
end if
main_menu dd 0
main_menu_file dd 0
main_menu_view dd 0
main_menu_vertexes dd 0
KMENUITEM_NORMAL equ 0
KMENUITEM_SUBMENU equ 1
KMENUITEM_SEPARATOR equ 2
|
@ -83,13 +83,16 @@ proc obj_clear_param uses edi, o_data:dword
|
|||||||
mov dword[edi+offs_obj_tri_count],0
|
mov dword[edi+offs_obj_tri_count],0
|
||||||
mov dword[edi+offs_obj_normals_tri_count],0
|
mov dword[edi+offs_obj_normals_tri_count],0
|
||||||
mov dword[edi+offs_obj_normals_poi_count],0
|
mov dword[edi+offs_obj_normals_poi_count],0
|
||||||
stdcall mem.Free,[edi+offs_obj_normals_tri_data]
|
cmp dword[edi+offs_obj_normals_tri_data],0
|
||||||
stdcall mem.Free,[edi+offs_obj_normals_poi_data]
|
je @f
|
||||||
mov dword[edi+offs_obj_normals_tri_data],0
|
stdcall mem.Free,[edi+offs_obj_normals_tri_data]
|
||||||
mov dword[edi+offs_obj_normals_poi_data],0
|
mov dword[edi+offs_obj_normals_tri_data],0
|
||||||
|
@@:
|
||||||
;ãáâ ®¢ª ¯ à ¬¥â஢ ®â®¡à ¦¥¨ï
|
cmp dword[edi+offs_obj_normals_poi_data],0
|
||||||
call mnu_reset_settings
|
je @f
|
||||||
|
stdcall mem.Free,[edi+offs_obj_normals_poi_data]
|
||||||
|
mov dword[edi+offs_obj_normals_poi_data],0
|
||||||
|
@@:
|
||||||
ret
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
@ -435,10 +438,83 @@ popad
|
|||||||
ret
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
|
; áâனª áâàãªâãàë 3d ®¡ê¥ªâ
|
||||||
|
align 4
|
||||||
|
proc obj_init, o_data:dword
|
||||||
|
pushad
|
||||||
|
mov edi,[o_data]
|
||||||
|
stdcall obj_clear_param, edi
|
||||||
|
stdcall [tl_node_get_data],tree1
|
||||||
|
xor edx,edx
|
||||||
|
cmp eax,0
|
||||||
|
je .no_points
|
||||||
|
mov ebx,[eax] ;¯®«ãç ¥¬ § 票¥ ᤢ¨£ ¢ë¡à ®£® ¡«®ª
|
||||||
|
add ebx,[open_file_data]
|
||||||
|
xor ecx,ecx
|
||||||
|
cmp word[ebx],CHUNK_OBJBLOCK
|
||||||
|
jne @f
|
||||||
|
mov ecx,ebx
|
||||||
|
add ecx,dword[ecx+2] ;£à ¨æ ¡«®ª
|
||||||
|
push eax edi
|
||||||
|
mov edi,ebx
|
||||||
|
add edi,6
|
||||||
|
cld
|
||||||
|
xor al,al
|
||||||
|
repne scasb ;¯à®¯ã᪠¨¬¥¨ ®¡ê¥ªâ
|
||||||
|
mov ebx,edi
|
||||||
|
pop edi eax
|
||||||
|
@@:
|
||||||
|
cmp word[ebx],CHUNK_TRIMESH
|
||||||
|
jne @f
|
||||||
|
mov ecx,ebx
|
||||||
|
add ecx,dword[ecx+2] ;£à ¨æ ¡«®ª
|
||||||
|
add ebx,6
|
||||||
|
@@:
|
||||||
|
cmp word[ebx],CHUNK_VERTLIST
|
||||||
|
jne .no_points
|
||||||
|
mov esi,ebx
|
||||||
|
movzx edx,word[ebx+6] ;ª®««¨ç¥á⢮ â®ç¥ª
|
||||||
|
add ebx,8
|
||||||
|
mov [edi+offs_obj_poi_data],ebx
|
||||||
|
mov [edi+offs_obj_poi_count],edx
|
||||||
|
|
||||||
|
.cycle_0: ;横« ¤«ï ¯®¨áª âà¥ã£®«ì¨ª®¢
|
||||||
|
add esi,dword[esi+2]
|
||||||
|
cmp word[esi],CHUNK_FACELIST
|
||||||
|
je @f
|
||||||
|
cmp ecx,esi
|
||||||
|
jg .cycle_0 ;¯®ª ¥ ¤®á⨣ãâ £à¨æ áâ à襣® ¡«®ª
|
||||||
|
jmp .end_points ;¥á«¨ ¥ 諨 âà¥ã£®«ì¨ª¨
|
||||||
|
@@:
|
||||||
|
;¥á«¨ 諨 âà¥ã£®«ì¨ª¨
|
||||||
|
movzx edx,word[esi+6]
|
||||||
|
mov [edi+offs_obj_tri_count],edx
|
||||||
|
add esi,8 ;2+4+2 (chunk+size+count)
|
||||||
|
mov [edi+offs_obj_tri_data],esi
|
||||||
|
.end_points:
|
||||||
|
|
||||||
|
stdcall obj_set_sizes, edi
|
||||||
|
stdcall obj_set_normals, edi
|
||||||
|
if version_edit eq 0
|
||||||
|
stdcall draw_3d, edi
|
||||||
|
end if
|
||||||
|
.no_points:
|
||||||
|
popad
|
||||||
|
ret
|
||||||
|
endp
|
||||||
|
|
||||||
;à¨á®¢ ¨¥ â®ç¥ª ¢ 3d
|
;à¨á®¢ ¨¥ â®ç¥ª ¢ 3d
|
||||||
align 4
|
align 4
|
||||||
proc draw_3d uses eax ebx ecx edi, o_data:dword
|
proc draw_3d uses eax ebx ecx edi, o_data:dword
|
||||||
mov edi,[o_data]
|
mov edi,[o_data]
|
||||||
|
if 0 ;debug
|
||||||
|
stdcall [glClear], GL_COLOR_BUFFER_BIT + GL_DEPTH_BUFFER_BIT
|
||||||
|
mov eax,[edi+offs_obj_poi_data]
|
||||||
|
stdcall convert_int_to_str, txt_select_vert.count,16
|
||||||
|
stdcall [buf2d_draw_text], buf_ogl, buf_1,txt_select_vert,5,3,[color_select]
|
||||||
|
stdcall [kosglSwapBuffers]
|
||||||
|
jmp .end_f
|
||||||
|
end if
|
||||||
cmp dword[edi+offs_obj_poi_count],2
|
cmp dword[edi+offs_obj_poi_count],2
|
||||||
jl .end_f
|
jl .end_f
|
||||||
stdcall [glClear], GL_COLOR_BUFFER_BIT + GL_DEPTH_BUFFER_BIT ;®ç¨á⨬ ¡ãä¥à 梥⠨ £«ã¡¨ë
|
stdcall [glClear], GL_COLOR_BUFFER_BIT + GL_DEPTH_BUFFER_BIT ;®ç¨á⨬ ¡ãä¥à 梥⠨ £«ã¡¨ë
|
||||||
@ -603,33 +679,35 @@ SetLight:
|
|||||||
stdcall [glEnable],GL_LIGHT0
|
stdcall [glEnable],GL_LIGHT0
|
||||||
ret
|
ret
|
||||||
|
|
||||||
;¨§¬¥ï¥¬ ०¨¬ à¨á®¢ ¨ï ¢¥àè¨
|
;¢ª«îç ¥¬ ०¨¬ à¨á®¢ ¨ï ¢¥àè¨
|
||||||
align 4
|
align 4
|
||||||
mnu_vertexes_on_off:
|
mnu_vertexes_on:
|
||||||
xor dword[draw_mode], 1 shl bit_vertexes
|
or dword[draw_mode], 1 shl bit_vertexes
|
||||||
stdcall draw_3d, o3d
|
and dword[draw_mode], not (1 shl bit_faces) ;¢ëª«îç ¥¬ ०¨¬ à¨á®¢ ¨ï £à ¥© (çâ®-¡ë ¥ ¬¥è «¨)
|
||||||
|
call update_obj
|
||||||
ret
|
ret
|
||||||
|
|
||||||
;¨§¬¥ï¥¬ ०¨¬ à¨á®¢ ¨ï £à ¥©
|
;¢ª«îç ¥¬ ०¨¬ à¨á®¢ ¨ï ª ઠáëå £à ¥©
|
||||||
align 4
|
align 4
|
||||||
mnu_faces_on_off:
|
mnu_edges_on:
|
||||||
xor dword[draw_mode], 1 shl bit_faces
|
or dword[draw_mode], 1 shl bit_faces
|
||||||
stdcall draw_3d, o3d
|
and dword[draw_mode], not ((1 shl bit_vertexes)+(1 shl bit_faces_fill))
|
||||||
|
call update_obj
|
||||||
ret
|
ret
|
||||||
|
|
||||||
;¨§¬¥ï¥¬ ª ઠáë¥ ¨«¨ ᯫ®èë¥ £à ¨
|
;¢ª«îç ¥¬ ०¨¬ à¨á®¢ ¨ï ᯫ®èëå £à ¥©
|
||||||
align 4
|
align 4
|
||||||
mnu_faces_fill_on_off:
|
mnu_faces_on:
|
||||||
xor dword[draw_mode], 1 shl bit_faces_fill
|
or dword[draw_mode], (1 shl bit_faces)+(1 shl bit_faces_fill)
|
||||||
or dword[draw_mode], 1 shl bit_faces ;¢ª«îç ¥¬ ०¨¬ à¨á®¢ ¨ï £à ¥© (¥á«¨ ¢¤à㣠¡ë« ®âª«îç¥)
|
and dword[draw_mode], not (1 shl bit_vertexes)
|
||||||
stdcall draw_3d, o3d
|
call update_obj
|
||||||
ret
|
ret
|
||||||
|
|
||||||
;¢ª«îç ¥¬ ¨«¨ ®âª«îç ¥¬ ®á¢¥é¥¨¥
|
;¢ª«îç ¥¬ ¨«¨ ®âª«îç ¥¬ ®á¢¥é¥¨¥
|
||||||
align 4
|
align 4
|
||||||
mnu_light_on_off:
|
mnu_light_on_off:
|
||||||
xor dword[draw_mode], 1 shl bit_light
|
xor dword[draw_mode], 1 shl bit_light
|
||||||
stdcall draw_3d, o3d
|
call update_obj
|
||||||
ret
|
ret
|
||||||
|
|
||||||
align 4
|
align 4
|
||||||
@ -638,9 +716,32 @@ mnu_reset_settings:
|
|||||||
mov dword[angle_y],0.0
|
mov dword[angle_y],0.0
|
||||||
mov dword[angle_z],0.0
|
mov dword[angle_z],0.0
|
||||||
m2m dword[draw_mode],dword[def_dr_mode]
|
m2m dword[draw_mode],dword[def_dr_mode]
|
||||||
|
call update_obj
|
||||||
|
ret
|
||||||
|
|
||||||
|
if version_edit eq 1
|
||||||
|
|
||||||
|
align 4
|
||||||
|
update_obj:
|
||||||
stdcall draw_3d, o3d
|
stdcall draw_3d, o3d
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
else
|
||||||
|
|
||||||
|
align 4
|
||||||
|
update_obj:
|
||||||
|
push eax
|
||||||
|
stdcall [tl_node_get_data],tree1
|
||||||
|
cmp eax,0
|
||||||
|
je @f
|
||||||
|
add eax,14 ;14=list_offs_obj3d
|
||||||
|
stdcall draw_3d, eax
|
||||||
|
@@:
|
||||||
|
pop eax
|
||||||
|
ret
|
||||||
|
|
||||||
|
end if
|
||||||
|
|
||||||
align 4
|
align 4
|
||||||
draw_mode dd 0 ;०¨¬ à¨á®¢ ¨ï ®¡ê¥ªâ
|
draw_mode dd 0 ;०¨¬ à¨á®¢ ¨ï ®¡ê¥ªâ
|
||||||
def_dr_mode dd 0 ;०¨¬ à¨á®¢ ¨ï ¯® 㬮«ç ¨î
|
def_dr_mode dd 0 ;०¨¬ à¨á®¢ ¨ï ¯® 㬮«ç ¨î
|
||||||
|
@ -42,6 +42,12 @@ pushad
|
|||||||
mov dword[w_scr_t3.type],1
|
mov dword[w_scr_t3.type],1
|
||||||
mov edi,o3d
|
mov edi,o3d
|
||||||
stdcall obj_clear_param, edi
|
stdcall obj_clear_param, edi
|
||||||
|
call mnu_reset_settings
|
||||||
|
|
||||||
|
mov eax,dword[ctx1] ;eax -> TinyGLContext.GLContext
|
||||||
|
mov eax,[eax] ;eax -> ZBuffer
|
||||||
|
mov eax,[eax+offs_zbuf_pbuf] ;eax -> ZBuffer.pbuf
|
||||||
|
mov dword[buf_ogl],eax
|
||||||
|
|
||||||
stdcall [tl_node_get_data],tree1
|
stdcall [tl_node_get_data],tree1
|
||||||
xor edx,edx
|
xor edx,edx
|
||||||
@ -54,84 +60,20 @@ pushad
|
|||||||
cmp word[ebx],CHUNK_OBJBLOCK
|
cmp word[ebx],CHUNK_OBJBLOCK
|
||||||
jne .end_oblo
|
jne .end_oblo
|
||||||
mov dword[capt_p],txt_4000
|
mov dword[capt_p],txt_4000
|
||||||
stdcall found_block_data, tree1
|
stdcall obj_init,edi
|
||||||
cmp eax,0
|
|
||||||
je .no_points
|
|
||||||
mov esi,eax
|
|
||||||
movzx ecx,byte[esi+2] ;cl - ã஢¥ì ¢ë¡à ®£® 㧫
|
|
||||||
.cycle_0:
|
|
||||||
stdcall [tl_node_poi_get_next_info], tree1,esi
|
|
||||||
cmp eax,0
|
|
||||||
je .no_points
|
|
||||||
cmp byte[eax+2],cl
|
|
||||||
jle .no_points
|
|
||||||
mov esi,eax
|
|
||||||
stdcall [tl_node_poi_get_data], tree1,esi
|
|
||||||
mov ebx,[eax]
|
|
||||||
add ebx,[open_file_data]
|
|
||||||
cmp word[ebx],CHUNK_VERTLIST
|
|
||||||
je .ini_vlist
|
|
||||||
jmp .cycle_0
|
|
||||||
jmp .no_points
|
jmp .no_points
|
||||||
.end_oblo:
|
.end_oblo:
|
||||||
cmp word[ebx],CHUNK_TRIMESH
|
cmp word[ebx],CHUNK_TRIMESH
|
||||||
jne .end_trim
|
jne .end_trim
|
||||||
mov dword[capt_p],txt_4100
|
mov dword[capt_p],txt_4100
|
||||||
stdcall found_block_data, tree1
|
stdcall obj_init,edi
|
||||||
cmp eax,0
|
|
||||||
je .no_points
|
|
||||||
mov esi,eax
|
|
||||||
movzx ecx,byte[esi+2] ;cl - ã஢¥ì ¢ë¡à ®£® 㧫
|
|
||||||
.cycle_1:
|
|
||||||
stdcall [tl_node_poi_get_next_info], tree1,esi
|
|
||||||
cmp eax,0
|
|
||||||
je .no_points
|
|
||||||
cmp byte[eax+2],cl
|
|
||||||
jle .no_points
|
|
||||||
mov esi,eax
|
|
||||||
stdcall [tl_node_poi_get_data], tree1,esi
|
|
||||||
mov ebx,[eax]
|
|
||||||
add ebx,[open_file_data]
|
|
||||||
cmp word[ebx],CHUNK_VERTLIST
|
|
||||||
je .ini_vlist
|
|
||||||
jmp .cycle_1
|
|
||||||
jmp .no_points
|
jmp .no_points
|
||||||
.end_trim:
|
.end_trim:
|
||||||
cmp word[ebx],CHUNK_VERTLIST
|
cmp word[ebx],CHUNK_VERTLIST
|
||||||
jne .end_vlist
|
jne .end_vlist
|
||||||
mov dword[capt_p],txt_4110
|
mov dword[capt_p],txt_4110
|
||||||
.ini_vlist:
|
stdcall obj_init,edi
|
||||||
movzx edx,word[ebx+6] ;ª®««¨ç¥á⢮ â®ç¥ª
|
jmp .no_points
|
||||||
add ebx,8
|
|
||||||
;¯®¨áª ¤ ëå ¤«ï âà¥ã£®«ìª®¢
|
|
||||||
stdcall found_block_data, tree1
|
|
||||||
cmp eax,0
|
|
||||||
je .set_points
|
|
||||||
mov esi,eax
|
|
||||||
;¥á«¨ 諨 ¢ë¡à ë© ã§¥«, â® ¤ «¥¥ ¯ëâ ¥¬áï ©â¨ ã§¥« á âà¥ã£®«ì¨ª ¬¨
|
|
||||||
movzx ecx,byte[esi+2] ;cl - ã஢¥ì ¢ë¡à ®£® 㧫
|
|
||||||
.cycle_2:
|
|
||||||
stdcall [tl_node_poi_get_next_info], tree1,esi
|
|
||||||
cmp eax,0
|
|
||||||
je .set_points
|
|
||||||
mov esi,eax
|
|
||||||
stdcall [tl_node_poi_get_data], tree1,esi
|
|
||||||
cmp byte[esi+2],cl
|
|
||||||
jl .set_points
|
|
||||||
je .found
|
|
||||||
jmp .cycle_2
|
|
||||||
.found: ;¥á«¨ 諨 㧥« ⮣®¦¥ ã஢ï çâ® ¨ ¢ë¡à ë© ã§¥«
|
|
||||||
cmp eax,0
|
|
||||||
je .set_points
|
|
||||||
mov eax,[eax]
|
|
||||||
add eax,[open_file_data]
|
|
||||||
cmp word[eax],CHUNK_FACELIST
|
|
||||||
jne .cycle_2
|
|
||||||
movzx ecx,word[eax+6]
|
|
||||||
mov [edi+offs_obj_tri_count],ecx
|
|
||||||
add eax,8 ;2+4+2 (chunk+size+count)
|
|
||||||
mov [edi+offs_obj_tri_data],eax
|
|
||||||
jmp .set_points
|
|
||||||
.end_vlist:
|
.end_vlist:
|
||||||
cmp word[ebx],CHUNK_TRACKPIVOT
|
cmp word[ebx],CHUNK_TRACKPIVOT
|
||||||
jne @f
|
jne @f
|
||||||
@ -153,7 +95,9 @@ pushad
|
|||||||
.no_points:
|
.no_points:
|
||||||
|
|
||||||
; áâனª ᯨ᪠®¡ê¥ªâ®¢
|
; áâனª ᯨ᪠®¡ê¥ªâ®¢
|
||||||
|
mov ebx,[edi+offs_obj_poi_data]
|
||||||
mov dword[tree3.info_max_count],2
|
mov dword[tree3.info_max_count],2
|
||||||
|
mov edx,[edi+offs_obj_poi_count]
|
||||||
add dword[tree3.info_max_count],edx ;áâ ¢¨¬ ç¨á«® 㧫®¢, à ¢®¥ ª®««¨ç¥áâ¢ã â®ç¥ª (+2 ç «® ¨ ª®¥æ ᯨ᪠)
|
add dword[tree3.info_max_count],edx ;áâ ¢¨¬ ç¨á«® 㧫®¢, à ¢®¥ ª®««¨ç¥áâ¢ã â®ç¥ª (+2 ç «® ¨ ª®¥æ ᯨ᪠)
|
||||||
stdcall dword[tl_data_init], tree3
|
stdcall dword[tl_data_init], tree3
|
||||||
mov eax,dword[icon_tl_sys]
|
mov eax,dword[icon_tl_sys]
|
||||||
@ -165,6 +109,7 @@ pushad
|
|||||||
je .no_object
|
je .no_object
|
||||||
mov word[NumberSymbolsAD],5
|
mov word[NumberSymbolsAD],5
|
||||||
finit
|
finit
|
||||||
|
mov dword[w_scr_t3.redraw],0
|
||||||
.new_point:
|
.new_point:
|
||||||
mov dword[obj_point],ebx
|
mov dword[obj_point],ebx
|
||||||
mov dword[obj_point.text],0
|
mov dword[obj_point.text],0
|
||||||
@ -190,6 +135,7 @@ pushad
|
|||||||
dec edx
|
dec edx
|
||||||
cmp edx,0
|
cmp edx,0
|
||||||
jg .new_point
|
jg .new_point
|
||||||
|
mov dword[w_scr_t3.redraw],1
|
||||||
stdcall dword[tl_cur_beg], tree3
|
stdcall dword[tl_cur_beg], tree3
|
||||||
.no_object:
|
.no_object:
|
||||||
stdcall obj_set_sizes, o3d
|
stdcall obj_set_sizes, o3d
|
||||||
@ -216,13 +162,7 @@ pushad
|
|||||||
and ebx,0x3f3f3f
|
and ebx,0x3f3f3f
|
||||||
add eax,ebx
|
add eax,ebx
|
||||||
mov [edit3.color],eax
|
mov [edit3.color],eax
|
||||||
|
|
||||||
mov eax,dword[ctx1] ;eax -> TinyGLContext.GLContext
|
|
||||||
mov eax,[eax] ;eax -> ZBuffer
|
|
||||||
mov eax,[eax+offs_zbuf_pbuf] ;eax -> ZBuffer.pbuf
|
|
||||||
mov dword[buf_ogl],eax
|
|
||||||
popad
|
popad
|
||||||
|
|
||||||
call prop_red_win
|
call prop_red_win
|
||||||
|
|
||||||
;¥ ®âàë¢ âì íâã äãªæ¨î ®â ¯à¥¤ë¤ã饩
|
;¥ ®âàë¢ âì íâã äãªæ¨î ®â ¯à¥¤ë¤ã饩
|
||||||
@ -527,17 +467,17 @@ prop_button:
|
|||||||
@@:
|
@@:
|
||||||
cmp ah,5
|
cmp ah,5
|
||||||
jne @f
|
jne @f
|
||||||
call mnu_vertexes_on_off
|
call mnu_vertexes_on
|
||||||
jmp prop_still.end
|
jmp prop_still.end
|
||||||
@@:
|
@@:
|
||||||
cmp ah,6
|
cmp ah,6
|
||||||
jne @f
|
jne @f
|
||||||
call mnu_faces_on_off
|
call mnu_edges_on
|
||||||
jmp prop_still.end
|
jmp prop_still.end
|
||||||
@@:
|
@@:
|
||||||
cmp ah,7
|
cmp ah,7
|
||||||
jne @f
|
jne @f
|
||||||
call mnu_faces_fill_on_off
|
call mnu_faces_on
|
||||||
jmp prop_still.end
|
jmp prop_still.end
|
||||||
@@:
|
@@:
|
||||||
cmp ah,8
|
cmp ah,8
|
||||||
|
Binary file not shown.
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.9 KiB |
Loading…
Reference in New Issue
Block a user