Subversion Repositories Kolibri OS

Rev

Rev 5388 | Rev 6259 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 5388 Rev 6175
Line 1... Line 1...
1
use32
1
use32
2
	org 0x0
2
	org 0x0
3
	db 'MENUET01' ;¨¤¥­â¨ä. ¨á¯®«­ï¥¬®£® ä ©«  ¢á¥£¤  8 ¡ ©â
3
	db 'MENUET01' ;¨¤¥­â¨ä. ¨á¯®«­ï¥¬®£® ä ©«  ¢á¥£¤  8 ¡ ©â
4
	dd 0x1
-
 
5
	dd start
-
 
6
	dd i_end ;à §¬¥à ¯à¨«®¦¥­¨ï
4
	dd 1,start,i_end,mem,stacktop,0,sys_path
7
	dd mem
-
 
8
	dd stacktop
-
 
9
	dd 0
-
 
10
	dd sys_path
-
 
Line 11... Line 5...
11
 
5
 
12
include '../../../../programs/macros.inc'
6
include '../../../../programs/macros.inc'
-
 
7
include '../../../../programs/proc32.inc'
13
include '../../../../programs/proc32.inc'
8
include '../../../../programs/KOSfuncs.inc'
14
include '../../../../programs/develop/libraries/box_lib/load_lib.mac'
9
include '../../../../programs/develop/libraries/box_lib/load_lib.mac'
15
include '../../../../programs/dll.inc'
10
include '../../../../programs/dll.inc'
Line 16... Line 11...
16
include '../trunk/str.inc'
11
include '../trunk/str.inc'
17
 
12
 
18
vox_offs_tree_table equ 4
13
vox_offs_tree_table equ 4
19
vox_offs_data equ 12
14
vox_offs_data equ 12
Line 20... Line 15...
20
txt_buf rb 8
15
txt_buf rb 8
21
include '../trunk/vox_rotate.inc'
16
include '../trunk/vox_rotate.inc'
Line 22... Line 17...
22
 
17
 
23
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load
18
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load
24
caption db 'Voxel creator 29.01.15',0 ;¯®¤¯¨áì ®ª­ 
19
caption db 'Voxel creator 08.02.16',0 ;¯®¤¯¨áì ®ª­ 
25
 
20
 
Line 68... Line 63...
68
			local .path_str
63
			local .path_str
69
			.path_str db path ;ä®à¬¨à㥬 «®ª «ì­ãî ¯¥à¥¬¥­­ãî
64
			.path_str db path ;ä®à¬¨à㥬 «®ª «ì­ãî ¯¥à¥¬¥­­ãî
70
			db 0
65
			db 0
71
		@@:
66
		@@:
72
		;32 - áâ ­¤ àâ­ë©  ¤à¥á ¯® ª®â®à®¬ã ¤®«¦¥­ ¡ëâì ¡ãä¥à á á¨á⥬­ë¬ ¯ã⥬
67
		;32 - áâ ­¤ àâ­ë©  ¤à¥á ¯® ª®â®à®¬ã ¤®«¦¥­ ¡ëâì ¡ãä¥à á á¨á⥬­ë¬ ¯ã⥬
73
		copy_path .path_str,[32],file_name,0x0
68
		copy_path .path_str,[32],file_name,0
74
	else
69
	else
75
		copy_path path,[32],file_name,0x0 ;ä®à¬¨à㥬 ¯®«­ë© ¯ãâì ª ä ©«ã ¨§®¡à ¦¥­¨ï, ¯®¤à §ã¬¥¢ ¥¬ çâ® ®­ ¢ ®¤­®© ¯ ¯ª¥ á ¯à®£à ¬¬®©
70
		copy_path path,[32],file_name,0 ;ä®à¬¨à㥬 ¯®«­ë© ¯ãâì ª ä ©«ã ¨§®¡à ¦¥­¨ï, ¯®¤à §ã¬¥¢ ¥¬ çâ® ®­ ¢ ®¤­®© ¯ ¯ª¥ á ¯à®£à ¬¬®©
76
	end if
71
	end if
Line 77... Line 72...
77
 
72
 
78
	stdcall mem.Alloc, dword size ;¢ë¤¥«ï¥¬ ¯ ¬ïâì ¤«ï ¨§®¡à ¦¥­¨ï
73
	stdcall mem.Alloc, dword size ;¢ë¤¥«ï¥¬ ¯ ¬ïâì ¤«ï ¨§®¡à ¦¥­¨ï
Line 79... Line -...
79
	mov [buf],eax
-
 
80
 
74
	mov [buf],eax
81
	mov eax,70 ;70-ï äã­ªæ¨ï à ¡®â  á ä ©« ¬¨
75
 
82
	mov [run_file_70.Function], 0
76
	mov [run_file_70.Function], SSF_READ_FILE
83
	mov [run_file_70.Position], 0
77
	mov [run_file_70.Position], 0
84
	mov [run_file_70.Flags], 0
78
	mov [run_file_70.Flags], 0
85
	mov [run_file_70.Count], dword size
79
	mov [run_file_70.Count], dword size
86
	m2m [run_file_70.Buffer], [buf]
80
	mov [run_file_70.Buffer], eax
87
	mov byte[run_file_70+20], 0
-
 
88
	mov [run_file_70.FileName], file_name
81
	mov byte[run_file_70+20], 0
89
	mov ebx,run_file_70
82
	mov [run_file_70.FileName], file_name
90
	int 0x40 ;§ £à㦠¥¬ ä ©« ¨§®¡à ¦¥­¨ï
83
	mcall SF_FILE,run_file_70 ;§ £à㦠¥¬ ä ©« ¨§®¡à ¦¥­¨ï
91
	cmp ebx,0xffffffff
84
	cmp ebx,0xffffffff
92
	je @f
85
	je @f
93
		;®¯à¥¤¥«ï¥¬ ¢¨¤ ¨§®¡à ¦¥­¨ï ¨ ¯¥à¥¢®¤¨¬ ¥£® ¢® ¢à¥¬¥­­ë© ¡ãä¥à image_data
86
		;®¯à¥¤¥«ï¥¬ ¢¨¤ ¨§®¡à ¦¥­¨ï ¨ ¯¥à¥¢®¤¨¬ ¥£® ¢® ¢à¥¬¥­­ë© ¡ãä¥à image_data
Line 107... Line 100...
107
	load_libraries l_libs_start,l_libs_end
100
	load_libraries l_libs_start,l_libs_end
108
	;¯à®¢¥àª  ­  ᪮«ìª® 㤠筮 § £ã§¨« áì ¡¨¡«¨®â¥ª 
101
	;¯à®¢¥àª  ­  ᪮«ìª® 㤠筮 § £ã§¨« áì ¡¨¡«¨®â¥ª 
109
	mov	ebp,lib_0
102
	mov	ebp,lib_0
110
	cmp	dword [ebp+ll_struc_size-4],0
103
	cmp	dword [ebp+ll_struc_size-4],0
111
	jz	@f
104
	jz	@f
112
		mcall -1 ;exit not correct
105
		mcall SF_TERMINATE_PROCESS
113
	@@:
106
	@@:
114
	mcall 48,3,sc,sizeof.system_colors
107
	mcall SF_STYLE_SETTINGS,SSF_GET_COLORS,sc,sizeof.system_colors
115
	mcall 40,0x27
108
	mcall SF_SET_EVENTS_MASK,0x27
116
	stdcall [OpenDialog_Init],OpenDialog_data ;¯®¤£®â®¢ª  ¤¨ «®£ 
109
	stdcall [OpenDialog_Init],OpenDialog_data ;¯®¤£®â®¢ª  ¤¨ «®£ 
Line 117... Line 110...
117
 
110
 
118
	stdcall [buf2d_create], buf_0 ;ᮧ¤ ­¨¥ ¡ãä¥à 
111
	stdcall [buf2d_create], buf_0 ;ᮧ¤ ­¨¥ ¡ãä¥à 
119
	stdcall [buf2d_create], buf_0z
112
	stdcall [buf2d_create], buf_0z
Line 124... Line 117...
124
	stdcall mem.Alloc,max_open_file_size
117
	stdcall mem.Alloc,max_open_file_size
125
	mov dword[open_file_vox],eax
118
	mov dword[open_file_vox],eax
126
	stdcall mem.Alloc,max_open_file_size
119
	stdcall mem.Alloc,max_open_file_size
127
	mov dword[open_file_img],eax
120
	mov dword[open_file_img],eax
Line 128... Line 121...
128
 
121
 
129
	mcall 26,9
122
	mcall SF_SYSTEM_GET,SSF_TIME_COUNT
Line 130... Line 123...
130
	mov [last_time],eax
123
	mov [last_time],eax
131
 
124
 
132
align 4
125
align 4
Line 133... Line 126...
133
red_win:
126
red_win:
134
	call draw_window
127
	call draw_window
135
 
128
 
136
align 4
129
align 4
137
still:
130
still:
138
	mcall 26,9
131
	mcall SF_SYSTEM_GET,SSF_TIME_COUNT
139
	mov ebx,[last_time]
132
	mov ebx,[last_time]
140
	add ebx,10 ;§ ¤¥à¦ª 
133
	add ebx,10 ;§ ¤¥à¦ª 
141
	cmp ebx,eax
134
	cmp ebx,eax
142
	jge @f
135
	jge @f
143
		mov ebx,eax
136
		mov ebx,eax
144
	@@:
-
 
145
	sub ebx,eax
-
 
146
	;cmp ebx,10 ;§ ¤¥à¦ª 
-
 
147
	;ja timer_funct
-
 
148
	;test ebx,ebx
137
	@@:
149
	;jz timer_funct
138
	sub ebx,eax
Line 150... Line 139...
150
	mcall 23
139
	mcall SF_WAIT_EVENT_TIMEOUT
151
	cmp eax,0
140
	cmp eax,0
Line 164... Line 153...
164
timer_funct:
153
timer_funct:
165
	cmp byte[calc],0
154
	cmp byte[calc],0
166
	je still
155
	je still
Line 167... Line 156...
167
 
156
 
168
	pushad
157
	pushad
169
	mcall 26,9
158
	mcall SF_SYSTEM_GET,SSF_TIME_COUNT
Line 170... Line 159...
170
	mov [last_time],eax
159
	mov [last_time],eax
171
 
160
 
172
	; ᪨¤ë¢ ¥¬ 㪠§ â¥«¨ ¡ãä¥à®¢ buf_npl_p, buf_npl, buf_npl_n
161
	; ᪨¤ë¢ ¥¬ 㪠§ â¥«¨ ¡ãä¥à®¢ buf_npl_p, buf_npl, buf_npl_n
Line 392... Line 381...
392
	ret
381
	ret
Line 393... Line 382...
393
 
382
 
394
align 4
383
align 4
395
draw_window:
384
draw_window:
396
pushad
385
pushad
Line 397... Line 386...
397
	mcall 12,1
386
	mcall SF_REDRAW,SSF_BEGIN_DRAW
398
 
-
 
399
	; *** à¨á®¢ ­¨¥ £« ¢­®£® ®ª­  (¢ë¯®«­ï¥âáï 1 à § ¯à¨ § ¯ã᪥) ***
387
 
400
	xor eax,eax
388
	; *** à¨á®¢ ­¨¥ £« ¢­®£® ®ª­  (¢ë¯®«­ï¥âáï 1 à § ¯à¨ § ¯ã᪥) ***
401
	mov edx,[sc.work]
389
	mov edx,[sc.work]
Line 402... Line 390...
402
	or  edx,(3 shl 24)+0x30000000
390
	or  edx,(3 shl 24)+0x30000000
403
	mcall ,(20 shl 16)+410,(20 shl 16)+520,,,caption
391
	mcall SF_CREATE_WINDOW,(20 shl 16)+410,(20 shl 16)+520,,,caption
404
 
392
 
Line 405... Line 393...
405
	; *** ᮧ¤ ­¨¥ ª­®¯®ª ­  ¯ ­¥«ì ***
393
	; *** ᮧ¤ ­¨¥ ª­®¯®ª ­  ¯ ­¥«ì ***
406
	mov esi,[sc.work_button]
394
	mov esi,[sc.work_button]
407
	mcall 8,(5 shl 16)+20,(5 shl 16)+20,3
395
	mcall SF_DEFINE_BUTTON,(5 shl 16)+20,(5 shl 16)+20,3
Line 442... Line 430...
442
	mov edx,12
430
	mov edx,12
443
	int 0x40
431
	int 0x40
Line 444... Line 432...
444
 
432
 
445
	; *** à¨á®¢ ­¨¥ ¨ª®­®ª ­  ª­®¯ª å ***
433
	; *** à¨á®¢ ­¨¥ ¨ª®­®ª ­  ª­®¯ª å ***
446
	mov edx,(7 shl 16)+7 ;icon new
434
	mov edx,(7 shl 16)+7 ;icon new
Line 447... Line 435...
447
	mcall 7,[image_data_toolbar],(16 shl 16)+16
435
	mcall SF_PUT_IMAGE,[image_data_toolbar],(16 shl 16)+16
448
 
436
 
449
	add ebx,IMAGE_TOOLBAR_ICON_SIZE
437
	add ebx,IMAGE_TOOLBAR_ICON_SIZE
450
	add edx,(25 shl 16) ;icon open
438
	add edx,(25 shl 16) ;icon open
Line 476... Line 464...
476
	int 0x40
464
	int 0x40
Line 477... Line 465...
477
 
465
 
478
	call draw_buffers
466
	call draw_buffers
Line 479... Line 467...
479
	call draw_pok
467
	call draw_pok
480
 
468
 
481
	mcall 12,2
469
	mcall SF_REDRAW,SSF_END_DRAW
Line 482... Line 470...
482
popad
470
popad
483
	ret
471
	ret
Line 511... Line 499...
511
 
499
 
512
	;à¨á®¢ ­¨¥ ⥪áâ 
500
	;à¨á®¢ ­¨¥ ⥪áâ 
513
	mov ecx,[sc.work_text]
501
	mov ecx,[sc.work_text]
514
	or  ecx,0x80000000 or (1 shl 30)
502
	or  ecx,0x80000000 or (1 shl 30)
515
	mov edi,[sc.work] ;梥â ä®­  ®ª­ 
503
	mov edi,[sc.work] ;梥â ä®­  ®ª­ 
Line 516... Line 504...
516
	mcall 4,(275 shl 16)+7,,txt_f_size
504
	mcall SF_DRAW_TEXT,(275 shl 16)+7,,txt_f_size
Line 517... Line 505...
517
 
505
 
518
	ret
506
	ret
519
 
507
 
520
align 4
508
align 4
Line 521... Line 509...
521
key:
509
key:
522
	mcall 2
510
	mcall SF_GET_KEY
523
	jmp still
511
	jmp still
524
 
512
 
525
 
513
 
526
align 4
514
align 4
527
button:
515
button:
528
	mcall 17
516
	mcall SF_GET_BUTTON
Line 579... Line 567...
579
	stdcall [buf2d_delete],buf_npl
567
	stdcall [buf2d_delete],buf_npl
580
	stdcall [buf2d_delete],buf_npl_n
568
	stdcall [buf2d_delete],buf_npl_n
581
	stdcall mem.Free,[image_data_toolbar]
569
	stdcall mem.Free,[image_data_toolbar]
582
	stdcall mem.Free,[open_file_vox]
570
	stdcall mem.Free,[open_file_vox]
583
	stdcall mem.Free,[open_file_img]
571
	stdcall mem.Free,[open_file_img]
584
	mcall -1
572
	mcall SF_TERMINATE_PROCESS
Line 585... Line 573...
585
 
573
 
586
 
574
 
587
align 4
575
align 4
Line 639... Line 627...
639
			inc edi
627
			inc edi
640
			loop @b
628
			loop @b
641
		cmp bx,28 ;28=0+1+2+...+7
629
		cmp bx,28 ;28=0+1+2+...+7
642
		jne .err_open
630
		jne .err_open
Line 643... Line 631...
643
 
631
 
644
		mcall 71,1,openfile_path
632
		mcall SF_SET_CAPTION,1,openfile_path
645
		stdcall buf2d_vox_obj_get_size,[open_file_vox]
633
		stdcall buf2d_vox_obj_get_size,[open_file_vox]
646
		mov [vox_obj_size],eax
634
		mov [vox_obj_size],eax
Line 647... Line 635...
647
		call draw_object
635
		call draw_object
Line 1106... Line 1094...
1106
			m2m buf2d_h,eax
1094
			m2m buf2d_h,eax
1107
			stdcall [buf2d_create],edi
1095
			stdcall [buf2d_create],edi
1108
			jmp .end_0
1096
			jmp .end_0
1109
		@@:
1097
		@@:
1110
			; *** ¨§¬¥­ï¥¬ à §¬¥àë ¡ãä¥à®¢
1098
			; *** ¨§¬¥­ï¥¬ à §¬¥àë ¡ãä¥à®¢
1111
			stdcall [buf2d_resize], edi, eax,eax
1099
			stdcall [buf2d_resize], edi, eax,eax,1
1112
			mov edi,buf_npl_p
1100
			mov edi,buf_npl_p
1113
			stdcall [buf2d_resize], edi, eax,eax
1101
			stdcall [buf2d_resize], edi, eax,eax,1
1114
			mov edi,buf_npl_n
1102
			mov edi,buf_npl_n
1115
			stdcall [buf2d_resize], edi, eax,eax
1103
			stdcall [buf2d_resize], edi, eax,eax,1
1116
		.end_0:
1104
		.end_0:
1117
		mov dword[n_plane],1
1105
		mov dword[n_plane],1
1118
		mov byte[calc],1
1106
		mov byte[calc],1
1119
		call get_scale
1107
		call get_scale
1120
		call set_borders
1108
		call set_borders
Line 1203... Line 1191...
1203
			stdcall [buf2d_create_f_img], edi,[open_file_img]
1191
			stdcall [buf2d_create_f_img], edi,[open_file_img]
1204
			jmp .end_1
1192
			jmp .end_1
1205
		@@:
1193
		@@:
1206
			mov ebx,dword[eax+4]
1194
			mov ebx,dword[eax+4]
1207
			mov ecx,dword[eax+8]
1195
			mov ecx,dword[eax+8]
1208
			stdcall [buf2d_resize], edi, ebx,ecx ;¨§¬¥­ï¥¬ à §¬¥àë ¡ãä¥à 
1196
			stdcall [buf2d_resize], edi, ebx,ecx,1 ;¨§¬¥­ï¥¬ à §¬¥àë ¡ãä¥à 
1209
			imul ecx,ebx
1197
			imul ecx,ebx
1210
			lea ecx,[ecx+ecx*2]
1198
			lea ecx,[ecx+ecx*2]
1211
			mov edi,buf2d_data
1199
			mov edi,buf2d_data
1212
			mov esi,[open_file_img]
1200
			mov esi,[open_file_img]
1213
			cld
1201
			cld