Rev 6175 | Rev 7205 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 6175 | Rev 6259 | ||
---|---|---|---|
Line 4... | Line 4... | ||
4 | dd 1,start,i_end,mem,stacktop,0,sys_path |
4 | dd 1,start,i_end,mem,stacktop,0,sys_path |
Line 5... | Line 5... | ||
5 | 5 | ||
6 | include '../../../../programs/macros.inc' |
6 | include '../../../../programs/macros.inc' |
7 | include '../../../../programs/proc32.inc' |
7 | include '../../../../programs/proc32.inc' |
8 | include '../../../../programs/KOSfuncs.inc' |
- | |
9 | include '../../../../programs/develop/libraries/box_lib/load_lib.mac' |
8 | include '../../../../programs/KOSfuncs.inc' |
10 | include '../../../../programs/dll.inc' |
9 | include '../../../../programs/load_img.inc' |
Line 11... | Line 10... | ||
11 | include '../trunk/str.inc' |
10 | include '../trunk/str.inc' |
12 | 11 | ||
13 | vox_offs_tree_table equ 4 |
12 | vox_offs_tree_table equ 4 |
14 | vox_offs_data equ 12 |
13 | vox_offs_data equ 12 |
Line 15... | Line 14... | ||
15 | txt_buf rb 8 |
14 | txt_buf rb 8 |
16 | include '../trunk/vox_rotate.inc' |
15 | include '../trunk/vox_rotate.inc' |
17 | - | ||
18 | @use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load |
- | |
19 | caption db 'Voxel creator 08.02.16',0 ;¯®¤¯¨áì ®ª |
- | |
20 | - | ||
21 | struct FileInfoBlock |
- | |
22 | Function dd ? |
- | |
23 | Position dd ? |
- | |
24 | Flags dd ? |
- | |
25 | Count dd ? |
- | |
26 | Buffer dd ? |
- | |
Line 27... | Line 16... | ||
27 | db ? |
16 | |
28 | FileName dd ? |
17 | @use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load |
29 | ends |
18 | caption db 'Voxel creator 19.02.16',0 ;¯®¤¯¨áì ®ª |
30 | 19 | ||
Line 40... | Line 29... | ||
40 | 29 | ||
41 | vox_offs_tree_table equ 4 |
30 | vox_offs_tree_table equ 4 |
Line 42... | Line 31... | ||
42 | vox_offs_data equ 12 |
31 | vox_offs_data equ 12 |
43 | - | ||
44 | run_file_70 FileInfoBlock |
32 | |
45 | image_data dd 0 ;㪠§ â¥«ì ¢à¥¬¥ãî ¯ ¬ïâì. ¤«ï 㦥 ¯à¥®¡à §®¢ ¨ï ¨§®¡à ¦¥¨ï |
33 | run_file_70 FileInfoBlock |
46 | vox_obj_size dd 0 ;à §¬¥à ¢®ªá¥«ì®£® ®¡ê¥ªâ (¤«ï ãáª®à¥¨ï ¢áâ ¢ª¨) |
34 | vox_obj_size dd 0 ;à §¬¥à ¢®ªá¥«ì®£® ®¡ê¥ªâ (¤«ï ãáª®à¥¨ï ¢áâ ¢ª¨) |
47 | txt_space db ' ',0 |
35 | txt_space db ' ',0 |
48 | txt_pref db ' ¡ ',0,' ¡',0,' ¡',0,' ¡',0 ;¯à¨áâ ¢ª¨: ª¨«®, ¬¥£ , £¨£ |
36 | txt_pref db ' ¡ ',0,' ¡',0,' ¡',0,' ¡',0 ;¯à¨áâ ¢ª¨: ª¨«®, ¬¥£ , £¨£ |
Line 49... | Line 37... | ||
49 | txt_f_size: db ' §¬¥à: ' |
37 | txt_f_size: db ' §¬¥à: ' |
50 | .size: rb 16 |
38 | .size: rb 16 |
51 | - | ||
52 | fn_toolbar db 'toolbar.png',0 |
39 | |
Line 53... | Line 40... | ||
53 | IMAGE_TOOLBAR_ICON_SIZE equ 16*16*3 |
40 | fn_toolbar db 'toolbar.png',0 |
Line 54... | Line -... | ||
54 | IMAGE_TOOLBAR_SIZE equ IMAGE_TOOLBAR_ICON_SIZE*9 |
- | |
55 | image_data_toolbar dd 0 |
- | |
56 | - | ||
57 | max_open_file_size equ 1024*1024 ;1 Mb |
- | |
58 | - | ||
59 | macro load_image_file path,buf,size { ;¬ ªà®á ¤«ï § £à㧪¨ ¨§®¡à ¦¥¨© |
- | |
60 | ;path - ¬®¦¥â ¡ëâì ¯¥à¥¬¥®© ¨«¨ áâப®¢ë¬ ¯ à ¬¥â஬ |
- | |
61 | if path eqtype '' ;¯à®¢¥à塞 § ¤ «¨ áâப®© ¯ à ¬¥âà path |
- | |
62 | jmp @f |
- | |
63 | local .path_str |
- | |
64 | .path_str db path ;ä®à¬¨à㥬 «®ª «ìãî ¯¥à¥¬¥ãî |
- | |
65 | db 0 |
- | |
66 | @@: |
- | |
67 | ;32 - áâ ¤ àâë© ¤à¥á ¯® ª®â®à®¬ã ¤®«¦¥ ¡ëâì ¡ãä¥à á á¨áâ¥¬ë¬ ¯ã⥬ |
- | |
68 | copy_path .path_str,[32],file_name,0 |
- | |
69 | else |
- | |
70 | copy_path path,[32],file_name,0 ;ä®à¬¨à㥬 ¯®«ë© ¯ãâì ª ä ©«ã ¨§®¡à ¦¥¨ï, ¯®¤à §ã¬¥¢ ¥¬ çâ® ® ¢ ®¤®© ¯ ¯ª¥ á ¯à®£à ¬¬®© |
- | |
71 | end if |
- | |
72 | - | ||
73 | stdcall mem.Alloc, dword size ;¢ë¤¥«ï¥¬ ¯ ¬ïâì ¤«ï ¨§®¡à ¦¥¨ï |
- | |
74 | mov [buf],eax |
- | |
75 | - | ||
76 | mov [run_file_70.Function], SSF_READ_FILE |
- | |
77 | mov [run_file_70.Position], 0 |
- | |
78 | mov [run_file_70.Flags], 0 |
- | |
79 | mov [run_file_70.Count], dword size |
- | |
80 | mov [run_file_70.Buffer], eax |
- | |
81 | mov byte[run_file_70+20], 0 |
- | |
82 | mov [run_file_70.FileName], file_name |
- | |
83 | mcall SF_FILE,run_file_70 ;§ £à㦠¥¬ ä ©« ¨§®¡à ¦¥¨ï |
- | |
84 | cmp ebx,0xffffffff |
- | |
85 | je @f |
- | |
86 | ;®¯à¥¤¥«ï¥¬ ¢¨¤ ¨§®¡à ¦¥¨ï ¨ ¯¥à¥¢®¤¨¬ ¥£® ¢® ¢à¥¬¥ë© ¡ãä¥à image_data |
- | |
87 | stdcall dword[img_decode], dword[buf],ebx,0 |
- | |
88 | mov dword[image_data],eax |
- | |
89 | ;¯à¥®¡à §ã¥¬ ¨§®¡à ¦¥¨¥ ª ä®à¬ âã rgb |
- | |
90 | stdcall dword[img_to_rgb2], dword[image_data],dword[buf] |
- | |
91 | ;㤠«ï¥¬ ¢à¥¬¥ë© ¡ãä¥à image_data |
- | |
92 | stdcall dword[img_destroy], dword[image_data] |
- | |
93 | @@: |
41 | IMAGE_TOOLBAR_ICON_SIZE equ 16*16*3 |
94 | } |
42 | image_data_toolbar dd 0 |
95 | 43 | ||
96 | 44 | max_open_file_size equ 1024*1024 ;1 Mb |
|
97 | 45 | ||
Line 110... | Line 58... | ||
110 | 58 | ||
111 | stdcall [buf2d_create], buf_0 ;ᮧ¤ ¨¥ ¡ãä¥à |
59 | stdcall [buf2d_create], buf_0 ;ᮧ¤ ¨¥ ¡ãä¥à |
112 | stdcall [buf2d_create], buf_0z |
60 | stdcall [buf2d_create], buf_0z |
Line 113... | Line 61... | ||
113 | stdcall [buf2d_vox_brush_create], buf_vox, vox_6_7_z |
61 | stdcall [buf2d_vox_brush_create], buf_vox, vox_6_7_z |
Line 114... | Line 62... | ||
114 | 62 | ||
115 | load_image_file fn_toolbar, image_data_toolbar,IMAGE_TOOLBAR_SIZE |
63 | load_image_file fn_toolbar, image_data_toolbar |
116 | 64 | ||
117 | stdcall mem.Alloc,max_open_file_size |
65 | stdcall mem.Alloc,max_open_file_size |
Line 601... | Line 549... | ||
601 | stdcall [OpenDialog_Start],OpenDialog_data |
549 | stdcall [OpenDialog_Start],OpenDialog_data |
602 | cmp [OpenDialog_data.status],2 |
550 | cmp [OpenDialog_data.status],2 |
603 | je .end_open_file |
551 | je .end_open_file |
604 | ;ª®¤ ¯à¨ 㤠箬 ®âªàë⨨ ¤¨ «®£ |
552 | ;ª®¤ ¯à¨ 㤠箬 ®âªàë⨨ ¤¨ «®£ |
Line 605... | Line -... | ||
605 | - | ||
606 | mov eax,70 ;70-ï äãªæ¨ï à ¡®â á ä ©« ¬¨ |
553 | |
607 | mov [run_file_70.Function], 0 |
554 | mov [run_file_70.Function], SSF_READ_FILE |
608 | mov [run_file_70.Position], 0 |
555 | mov [run_file_70.Position], 0 |
609 | mov [run_file_70.Flags], 0 |
556 | mov [run_file_70.Flags], 0 |
610 | mov [run_file_70.Count], dword max_open_file_size |
557 | mov [run_file_70.Count], dword max_open_file_size |
611 | m2m [run_file_70.Buffer],dword[open_file_vox] |
558 | m2m [run_file_70.Buffer],dword[open_file_vox] |
612 | mov byte[run_file_70+20], 0 |
559 | mov byte[run_file_70+20], 0 |
613 | mov dword[run_file_70.FileName], openfile_path |
560 | mov dword[run_file_70.FileName], openfile_path |
614 | mov ebx,run_file_70 |
- | |
615 | int 0x40 ;§ £à㦠¥¬ ä ©« ¨§®¡à ¦¥¨ï |
561 | mcall SF_FILE,run_file_70 |
616 | cmp ebx,0xffffffff |
562 | cmp ebx,0xffffffff |
617 | je .end_open_file |
563 | je .end_open_file |
618 | ; ¯à®¢¥àª ¯à ¢¨«ì®áâì ¢®ªá¥«ì®£® ä®à¬ â |
564 | ; ¯à®¢¥àª ¯à ¢¨«ì®áâì ¢®ªá¥«ì®£® ä®à¬ â |
619 | mov edi,[open_file_vox] |
565 | mov edi,[open_file_vox] |
Line 656... | Line 602... | ||
656 | mov ebx,[open_file_vox] |
602 | mov ebx,[open_file_vox] |
657 | mov byte[ebx],al |
603 | mov byte[ebx],al |
Line 658... | Line 604... | ||
658 | 604 | ||
659 | stdcall buf2d_vox_obj_get_size, ebx |
605 | stdcall buf2d_vox_obj_get_size, ebx |
660 | mov dword[run_file_70.Count], eax ;à §¬¥à ä ©« |
- | |
661 | mov eax,70 ;70-ï äãªæ¨ï à ¡®â á ä ©« ¬¨ |
606 | mov dword[run_file_70.Count], eax ;à §¬¥à ä ©« |
662 | mov [run_file_70.Function], 2 |
607 | mov [run_file_70.Function], SSF_CREATE_FILE |
663 | mov [run_file_70.Position], 0 |
608 | mov [run_file_70.Position], 0 |
664 | mov [run_file_70.Flags], 0 |
609 | mov [run_file_70.Flags], 0 |
665 | mov ebx, dword[open_file_vox] |
610 | mov ebx, dword[open_file_vox] |
666 | mov [run_file_70.Buffer], ebx |
611 | mov [run_file_70.Buffer], ebx |
667 | mov byte[run_file_70+20], 0 |
612 | mov byte[run_file_70+20], 0 |
668 | mov dword[run_file_70.FileName], openfile_path |
613 | mov dword[run_file_70.FileName], openfile_path |
669 | mov ebx,run_file_70 |
- | |
670 | int 0x40 ;§ £à㦠¥¬ ä ©« ¨§®¡à ¦¥¨ï |
614 | mcall SF_FILE,run_file_70 |
671 | cmp ebx,0xffffffff |
615 | cmp ebx,0xffffffff |
Line 672... | Line 616... | ||
672 | je .end_save_file |
616 | je .end_save_file |
673 | 617 | ||
Line 1160... | Line 1104... | ||
1160 | je .end_open_file |
1104 | je .end_open_file |
Line 1161... | Line 1105... | ||
1161 | 1105 | ||
1162 | ;stdcall mem.Alloc, dword size ;¢ë¤¥«ï¥¬ ¯ ¬ïâì ¤«ï ¨§®¡à ¦¥¨ï |
1106 | ;stdcall mem.Alloc, dword size ;¢ë¤¥«ï¥¬ ¯ ¬ïâì ¤«ï ¨§®¡à ¦¥¨ï |
Line 1163... | Line -... | ||
1163 | ;mov [buf],eax |
- | |
1164 | 1107 | ;mov [buf],eax |
|
1165 | mov eax,70 ;70-ï äãªæ¨ï à ¡®â á ä ©« ¬¨ |
1108 | |
1166 | mov [run_file_70.Function], 0 |
1109 | mov [run_file_70.Function], SSF_READ_FILE |
1167 | mov [run_file_70.Position], 0 |
1110 | mov [run_file_70.Position], 0 |
1168 | mov [run_file_70.Flags], 0 |
1111 | mov [run_file_70.Flags], 0 |
1169 | mov [run_file_70.Count], dword max_open_file_size |
1112 | mov [run_file_70.Count], dword max_open_file_size |
1170 | m2m [run_file_70.Buffer],dword[open_file_img] |
1113 | m2m [run_file_70.Buffer],dword[open_file_img] |
1171 | mov byte[run_file_70+20], 0 |
1114 | mov byte[run_file_70+20], 0 |
1172 | mov [run_file_70.FileName], openfile_path |
- | |
1173 | mov ebx,run_file_70 |
1115 | mov [run_file_70.FileName], openfile_path |
1174 | int 0x40 ;§ £à㦠¥¬ ä ©« ¨§®¡à ¦¥¨ï |
1116 | mcall SF_FILE,run_file_70 |
1175 | cmp ebx,0xffffffff |
1117 | cmp ebx,0xffffffff |
1176 | je .end_0 |
1118 | je .end_0 |
1177 | ;®¯à¥¤¥«ï¥¬ ¢¨¤ ¨§®¡à ¦¥¨ï ¨ ¯¥à¥¢®¤¨¬ ¥£® ¢® ¢à¥¬¥ë© ¡ãä¥à image_data |
1119 | ;®¯à¥¤¥«ï¥¬ ¢¨¤ ¨§®¡à ¦¥¨ï |
1178 | stdcall dword[img_decode], dword[open_file_img],ebx,0 |
1120 | stdcall dword[img_decode], dword[open_file_img],ebx,0 |
1179 | cmp eax,0 |
1121 | or eax,eax |
1180 | je .end_0 ;¥á«¨ àãè¥ ä®à¬ â ä ©« |
1122 | jz .end_0 ;¥á«¨ àãè¥ ä®à¬ â ä ©« |
1181 | mov dword[image_data],eax |
1123 | mov ebx,eax |
Line 1182... | Line -... | ||
1182 | ;¯à¥®¡à §ã¥¬ ¨§®¡à ¦¥¨¥ ª ä®à¬ âã rgb |
- | |
1183 | stdcall dword[img_to_rgb2], dword[image_data],dword[open_file_img] |
1124 | ;¯à¥®¡à §ã¥¬ ¨§®¡à ¦¥¨¥ ª ä®à¬ âã rgb |
1184 | 1125 | stdcall dword[img_to_rgb2], ebx,dword[open_file_img] |
|
1185 | mov eax,dword[image_data] |
1126 | |
1186 | mov edi,[buf] |
1127 | mov edi,[buf] |
1187 | cmp buf2d_data,0 |
1128 | cmp buf2d_data,0 |
1188 | jne @f |
1129 | jne @f |
1189 | m2m buf2d_w,dword[eax+4] ;+4 = image width |
1130 | m2m buf2d_w,dword[ebx+4] ;+4 = image width |
1190 | m2m buf2d_h,dword[eax+8] ;+8 = image heihht |
1131 | m2m buf2d_h,dword[ebx+8] ;+8 = image heihht |
1191 | stdcall [buf2d_create_f_img], edi,[open_file_img] |
- | |
1192 | jmp .end_1 |
1132 | stdcall [buf2d_create_f_img], edi,[open_file_img] |
1193 | @@: |
1133 | jmp .end_1 |
1194 | mov ebx,dword[eax+4] |
1134 | @@: |
1195 | mov ecx,dword[eax+8] |
1135 | mov ecx,dword[ebx+8] |
1196 | stdcall [buf2d_resize], edi, ebx,ecx,1 ;¨§¬¥ï¥¬ à §¬¥àë ¡ãä¥à |
1136 | stdcall [buf2d_resize], edi, [ebx+4],ecx,1 ;¨§¬¥ï¥¬ à §¬¥àë ¡ãä¥à |
1197 | imul ecx,ebx |
1137 | imul ecx,[ebx+4] |
1198 | lea ecx,[ecx+ecx*2] |
1138 | lea ecx,[ecx+ecx*2] |
1199 | mov edi,buf2d_data |
1139 | mov edi,buf2d_data |
1200 | mov esi,[open_file_img] |
1140 | mov esi,[open_file_img] |
Line 1201... | Line 1141... | ||
1201 | cld |
1141 | cld |
1202 | rep movsb ;copy image |
1142 | rep movsb ;copy image |
1203 | .end_1: |
1143 | .end_1: |
Line 1204... | Line 1144... | ||
1204 | 1144 | ||
1205 | ;㤠«ï¥¬ ¢à¥¬¥ë© ¡ãä¥à image_data |
1145 | ;㤠«ï¥¬ ¢à¥¬¥ë© ¡ãä¥à ¢ ebx |
1206 | stdcall dword[img_destroy], dword[image_data] |
1146 | stdcall dword[img_destroy], ebx |