Subversion Repositories Kolibri OS

Rev

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