Subversion Repositories Kolibri OS

Rev

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

Rev 5415 Rev 5949
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'
13
include '../../../../programs/proc32.inc'
7
include '../../../../programs/proc32.inc'
14
include '../../../../programs/develop/libraries/box_lib/load_lib.mac'
8
include '../../../../programs/develop/libraries/box_lib/load_lib.mac'
15
include '../../../../programs/dll.inc'
9
include '../../../../programs/dll.inc'
16
include '../../../../programs/develop/libraries/TinyGL/asm_fork/opengl_const.inc'
10
include '../../../../programs/develop/libraries/TinyGL/asm_fork/opengl_const.inc'
17
include 'vox_3d.inc'
11
include 'vox_3d.inc'
Line 18... Line 12...
18
include '../trunk/str.inc'
12
include '../trunk/str.inc'
19
 
13
 
Line 20... Line 14...
20
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load
14
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load
21
caption db 'Voxel viewer 17.02.15',0 ;¯®¤¯¨áì ®ª­ 
15
caption db 'Voxel viewer 07.12.15',0 ;¯®¤¯¨áì ®ª­ 
22
 
16
 
23
struct FileInfoBlock
17
struct FileInfoBlock
Line 28... Line 22...
28
	Buffer	 dd ?
22
	Buffer	 dd ?
29
		db ?
23
		db ?
30
	FileName dd ?
24
	FileName dd ?
31
ends
25
ends
Line -... Line 26...
-
 
26
 
-
 
27
3d_wnd_l equ   5 ;®âáâ㯠¤«ï tinygl ¡ãä¥à  á«¥¢ 
-
 
28
3d_wnd_t equ  30 ;®âáâ㯠¤«ï tinygl ¡ãä¥à  ᢥàåã
32
 
29
3d_wnd_w equ 512
-
 
30
3d_wnd_h equ 512
33
run_file_70 FileInfoBlock
31
 
Line 34... Line 32...
34
image_data dd 0 ;㪠§ â¥«ì ­  ¢à¥¬¥­­ãî ¯ ¬ïâì. ¤«ï ­ã¦¥­ ¯à¥®¡à §®¢ ­¨ï ¨§®¡à ¦¥­¨ï
32
image_data dd 0 ;㪠§ â¥«ì ­  ¢à¥¬¥­­ãî ¯ ¬ïâì. ¤«ï ­ã¦¥­ ¯à¥®¡à §®¢ ­¨ï ¨§®¡à ¦¥­¨ï
35
 
33
 
36
IMAGE_TOOLBAR_ICON_SIZE equ 16*16*3
34
IMAGE_TOOLBAR_ICON_SIZE equ 16*16*3
Line 46... Line 44...
46
			local .path_str
44
			local .path_str
47
			.path_str db path ;ä®à¬¨à㥬 «®ª «ì­ãî ¯¥à¥¬¥­­ãî
45
			.path_str db path ;ä®à¬¨à㥬 «®ª «ì­ãî ¯¥à¥¬¥­­ãî
48
			db 0
46
			db 0
49
		@@:
47
		@@:
50
		;32 - áâ ­¤ àâ­ë©  ¤à¥á ¯® ª®â®à®¬ã ¤®«¦¥­ ¡ëâì ¡ãä¥à á á¨á⥬­ë¬ ¯ã⥬
48
		;32 - áâ ­¤ àâ­ë©  ¤à¥á ¯® ª®â®à®¬ã ¤®«¦¥­ ¡ëâì ¡ãä¥à á á¨á⥬­ë¬ ¯ã⥬
51
		copy_path .path_str,[32],file_name,0x0
49
		copy_path .path_str,[32],file_name,0
52
	else
50
	else
53
		copy_path path,[32],file_name,0x0 ;ä®à¬¨à㥬 ¯®«­ë© ¯ãâì ª ä ©«ã ¨§®¡à ¦¥­¨ï, ¯®¤à §ã¬¥¢ ¥¬ çâ® ®­ ¢ ®¤­®© ¯ ¯ª¥ á ¯à®£à ¬¬®©
51
		copy_path path,[32],file_name,0 ;ä®à¬¨à㥬 ¯®«­ë© ¯ãâì ª ä ©«ã ¨§®¡à ¦¥­¨ï, ¯®¤à §ã¬¥¢ ¥¬ çâ® ®­ ¢ ®¤­®© ¯ ¯ª¥ á ¯à®£à ¬¬®©
54
	end if
52
	end if
Line 55... Line 53...
55
 
53
 
56
	stdcall mem.Alloc, dword size ;¢ë¤¥«ï¥¬ ¯ ¬ïâì ¤«ï ¨§®¡à ¦¥­¨ï
54
	stdcall mem.Alloc, dword size ;¢ë¤¥«ï¥¬ ¯ ¬ïâì ¤«ï ¨§®¡à ¦¥­¨ï
Line 57... Line -...
57
	mov [buf],eax
-
 
58
 
55
	mov [buf],eax
59
	mov eax,70 ;70-ï äã­ªæ¨ï à ¡®â  á ä ©« ¬¨
56
 
60
	mov [run_file_70.Function], 0
57
	mov [run_file_70.Function], 0
61
	mov [run_file_70.Position], 0
58
	mov [run_file_70.Position], 0
62
	mov [run_file_70.Flags], 0
59
	mov [run_file_70.Flags], 0
63
	mov [run_file_70.Count], dword size
60
	mov [run_file_70.Count], dword size
64
	m2m [run_file_70.Buffer], [buf]
61
	mov [run_file_70.Buffer], eax
65
	mov byte[run_file_70+20], 0
-
 
66
	mov [run_file_70.FileName], file_name
62
	mov byte[run_file_70+20], 0
67
	mov ebx,run_file_70
63
	mov [run_file_70.FileName], file_name
68
	int 0x40 ;§ £à㦠¥¬ ä ©« ¨§®¡à ¦¥­¨ï
64
	mcall 70,run_file_70 ;§ £à㦠¥¬ ä ©« ¨§®¡à ¦¥­¨ï
69
	cmp ebx,0xffffffff
65
	cmp ebx,0xffffffff
70
	je @f
66
	je @f
71
		;®¯à¥¤¥«ï¥¬ ¢¨¤ ¨§®¡à ¦¥­¨ï ¨ ¯¥à¥¢®¤¨¬ ¥£® ¢® ¢à¥¬¥­­ë© ¡ãä¥à image_data
67
		;®¯à¥¤¥«ï¥¬ ¢¨¤ ¨§®¡à ¦¥­¨ï ¨ ¯¥à¥¢®¤¨¬ ¥£® ¢® ¢à¥¬¥­­ë© ¡ãä¥à image_data
Line 101... Line 97...
101
	stdcall img_to_gray, [image_data_toolbar],eax,(IMAGE_TOOLBAR_SIZE)/3
97
	stdcall img_to_gray, [image_data_toolbar],eax,(IMAGE_TOOLBAR_SIZE)/3
Line 102... Line 98...
102
 
98
 
103
	mcall 26,9
99
	mcall 26,9
Line 104... Line 100...
104
	mov [last_time],eax
100
	mov [last_time],eax
105
 
101
 
106
	stdcall [kosglMakeCurrent], 5,30,512,512,ctx1
102
	stdcall [kosglMakeCurrent], 3d_wnd_l,3d_wnd_t,3d_wnd_w,3d_wnd_h,ctx1
107
	stdcall [glEnable], GL_DEPTH_TEST
103
	stdcall [glEnable], GL_DEPTH_TEST
108
	stdcall [glEnable], GL_NORMALIZE ;¤¥« ¬ ­®à¬ «¨ ®¤¨­ ª®¢®© ¢¥«¨ç¨­ë ¢® ¨§¡¥¦ ­¨¥  àâ¥ä ªâ®¢
104
	stdcall [glEnable], GL_NORMALIZE ;¤¥« ¬ ­®à¬ «¨ ®¤¨­ ª®¢®© ¢¥«¨ç¨­ë ¢® ¨§¡¥¦ ­¨¥  àâ¥ä ªâ®¢
Line 137... Line 133...
137
	jz red_win
133
	jz red_win
138
	cmp al,2
134
	cmp al,2
139
	jz key
135
	jz key
140
	cmp al,3
136
	cmp al,3
141
	jz button
137
	jz button
-
 
138
	cmp al,6
-
 
139
	jne @f 
-
 
140
		call mouse
-
 
141
	@@:
Line 142... Line 142...
142
 
142
 
Line 143... Line 143...
143
	jmp still
143
	jmp still
144
 
144
 
Line 315... Line 315...
315
 
315
 
Line 316... Line 316...
316
	jmp still
316
	jmp still
-
 
317
 
-
 
318
 
-
 
319
align 4
-
 
320
mouse:
-
 
321
	push eax ebx
-
 
322
	mcall 37,3
-
 
323
	bt eax,0
-
 
324
	jnc .end_m
-
 
325
		;mouse l. but. move
-
 
326
		cmp dword[mouse_drag],1
-
 
327
		jne .end_m
-
 
328
		mcall 37,1 ;get mouse coords
-
 
329
		mov ebx,eax
-
 
330
		shr ebx,16 ;mouse.x
-
 
331
		cmp ebx,3d_wnd_l
-
 
332
		jg @f
-
 
333
			mov ebx,3d_wnd_l
-
 
334
		@@:
-
 
335
		sub ebx,3d_wnd_l
-
 
336
		cmp ebx,3d_wnd_w
-
 
337
		jle @f
-
 
338
			mov ebx,3d_wnd_w
-
 
339
		@@:
-
 
340
		and eax,0xffff ;mouse.y
-
 
341
		cmp eax,3d_wnd_t
-
 
342
		jg @f
-
 
343
			mov eax,3d_wnd_t
-
 
344
		@@:
-
 
345
		sub eax,3d_wnd_t
-
 
346
		cmp eax,3d_wnd_h
-
 
347
		jle @f
-
 
348
			mov eax,3d_wnd_h
-
 
349
		@@:
-
 
350
		finit
-
 
351
		fild dword[mouse_y]
-
 
352
		mov [mouse_y],eax
-
 
353
		fisub dword[mouse_y]
-
 
354
		fdiv dword[angle_dxm] ;¥á«¨ ªãàá®à ¤¢¨¦¥âáï ¯® ®á¨ y (¢¢¥àå ¨«¨ ¢­¨§) â® ¯®¢®à®â ¤¥« ¥¬ ¢®ªà㣠®á¨ x
-
 
355
		fadd dword[angle_x]
-
 
356
		fstp dword[angle_x]
-
 
357
 
-
 
358
		fild dword[mouse_x]
-
 
359
		mov [mouse_x],ebx
-
 
360
		fisub dword[mouse_x]
-
 
361
		fdiv dword[angle_dym] ;¥á«¨ ªãàá®à ¤¢¨¦¥âáï ¯® ®á¨ x (¢¢¥àå ¨«¨ ¢­¨§) â® ¯®¢®à®â ¤¥« ¥¬ ¢®ªà㣠®á¨ y
-
 
362
		fadd dword[angle_y]
-
 
363
		fstp dword[angle_y]
-
 
364
 
-
 
365
		call draw_3d
-
 
366
		stdcall [kosglSwapBuffers]
-
 
367
		jmp .end_d
-
 
368
	.end_m:
-
 
369
	bt eax,16
-
 
370
	jnc @f
-
 
371
		;mouse l. but. up
-
 
372
		mov dword[mouse_drag],0
-
 
373
		jmp .end_d
-
 
374
	@@:
-
 
375
	bt eax,8
-
 
376
	jnc .end_d
-
 
377
		;mouse l. but. press
-
 
378
		mcall 37,1 ;get mouse coords
-
 
379
		mov ebx,eax
-
 
380
		shr ebx,16 ;mouse.x
-
 
381
		cmp ebx,3d_wnd_l
-
 
382
		jl .end_d
-
 
383
		sub ebx,3d_wnd_l
-
 
384
		cmp ebx,3d_wnd_w
-
 
385
		jg .end_d
-
 
386
		and eax,0xffff ;mouse.y
-
 
387
		cmp eax,3d_wnd_t
-
 
388
		jl .end_d
-
 
389
		sub eax,3d_wnd_t
-
 
390
		cmp eax,3d_wnd_h
-
 
391
		jg .end_d
-
 
392
		mov dword[mouse_drag],1
-
 
393
		mov dword[mouse_x],ebx
-
 
394
		mov dword[mouse_y],eax
-
 
395
	.end_d:
-
 
396
 
-
 
397
	;stdcall [kmainmenu_dispatch_cursorevent], [main_menu]
-
 
398
	pop ebx eax
317
 
399
	ret
318
 
400
 
319
align 4
401
align 4
320
button:
402
button:
321
	mcall 17
403
	mcall 17
Line 666... Line 748...
666
 
748
 
667
		mov eax,edx
749
		mov eax,edx
668
		mov edi,txt_stat_m1.v
750
		mov edi,txt_stat_m1.v
Line 669... Line 751...
669
		stdcall convert_int_to_str,20
751
		stdcall convert_int_to_str,20
670
 
752
 
671
		;mov eax,ebx
753
		mov eax,ebx
Line 672... Line 754...
672
		;mov edi,txt_stat_m2.v
754
		mov edi,txt_stat_m2.v
673
		;stdcall convert_int_to_str,20
755
		stdcall convert_int_to_str,20
674
 
756
 
675
		;stdcall str_n_cat,txt_stat_m1.v,txt_stat_m2,50
757
		stdcall str_n_cat,txt_stat_m1.v,txt_stat_m2,50
676
		notify_window_run txt_stat_m1
758
		notify_window_run txt_stat_m1
Line 677... Line 759...
677
	.end_stat:
759
	.end_stat:
678
	ret
760
	ret
679
endp
761
endp
680
 
762
 
681
align 4
763
align 4
682
txt_stat_m1:
764
txt_stat_m1:
683
	db '‘â â¨á⨪ ',13,10,'‚®ªá¥«¥©: '
765
	db '‘â â¨á⨪ ',13,10,'‚®ªá¥«¥©: '
Line 684... Line 766...
684
.v: rb 50
766
.v: rb 70
Line 715... Line 797...
715
	stdcall [glTranslatef], 0.0,0.0,0.5 ;ª®®à¤¨­ âë ¯® ®á¨ z ¤®«¦­ë ¡ëâì ¢ ¯à¥¤¥« å ®â 0.0 ¤® 1.0, ¨­ ç¥ ¨§®¡à ¦¥­¨¥ ¡ã¤¥â ®âᥪ âìáï
797
	stdcall [glTranslatef], 0.0,0.0,0.5 ;ª®®à¤¨­ âë ¯® ®á¨ z ¤®«¦­ë ¡ëâì ¢ ¯à¥¤¥« å ®â 0.0 ¤® 1.0, ¨­ ç¥ ¨§®¡à ¦¥­¨¥ ¡ã¤¥â ®âᥪ âìáï
716
		;¢®ªá¥«ì­ë© ®¡ê¥ªâ ¨¬¥¥â ª®®à¤¨­ âë ¯® ®áï¬ ®â -0.5 ¤® 0.5, ¯®â®¬ã ¥£® ¤¢¨£ ¥¬ ­  +0.5
798
		;¢®ªá¥«ì­ë© ®¡ê¥ªâ ¨¬¥¥â ª®®à¤¨­ âë ¯® ®áï¬ ®â -0.5 ¤® 0.5, ¯®â®¬ã ¥£® ¤¢¨£ ¥¬ ­  +0.5
717
		;­® ¢á¥ ¦¥ ¯à¨ ¯®¢®à®â å ¡ã¤ãâ ®âᥪ âáï ªà ï, ª®â®àë¥ ¢ë«¥§ãâ §  ¯à¥¤¥«ë ¯«®áª®á⥩ ®âá¥ç¥­¨ï
799
		;­® ¢á¥ ¦¥ ¯à¨ ¯®¢®à®â å ¡ã¤ãâ ®âᥪ âáï ªà ï, ª®â®àë¥ ¢ë«¥§ãâ §  ¯à¥¤¥«ë ¯«®áª®á⥩ ®âá¥ç¥­¨ï
718
		;¢ ¢¥àᨨ opengl ¯®¤ Win ª®®à¤¨­ âë ¨¤ãâ ®â -1.0 ¤® 1.0 ¯®â®¬ã â ¬ í⮣® ¤¥« âì ­¥ ­ã¦­®
800
		;¢ ¢¥àᨨ opengl ¯®¤ Win ª®®à¤¨­ âë ¨¤ãâ ®â -1.0 ¤® 1.0 ¯®â®¬ã â ¬ í⮣® ¤¥« âì ­¥ ­ã¦­®
719
	stdcall [glScalef], [scale], [scale], [scale] ;㢥«¨ç¨¢ ¥¬ ¢®ªá¥«ì­ë© ®¡ê¥ªâ, çâ®-¡ë ­¥ ¡ë« ®ç¥­ì ¬ «¥­ìª¨¬
801
	stdcall [glScalef], [scale], [scale], [scale] ;㢥«¨ç¨¢ ¥¬ ¢®ªá¥«ì­ë© ®¡ê¥ªâ, çâ®-¡ë ­¥ ¡ë« ®ç¥­ì ¬ «¥­ìª¨¬
-
 
802
	stdcall [glScalef], 1.0, 1.0, 0.5 ;çâ®-¡ë ªà ï ®¡ê¥ªâ  ­¥ ¢ë« §¨«¨ §  £à ­¨ ®âá¥ç¥­¨ï
720
	stdcall [glRotatef], [angle_x],1.0,0.0,0.0
803
	stdcall [glRotatef], [angle_x],1.0,0.0,0.0
721
	stdcall [glRotatef], [angle_y],0.0,1.0,0.0
804
	stdcall [glRotatef], [angle_y],0.0,1.0,0.0
722
	stdcall [glRotatef], [angle_z],0.0,0.0,1.0
805
	stdcall [glRotatef], [angle_z],0.0,0.0,1.0
723
	stdcall draw_voxels_3d,[open_file_ogl]
806
	stdcall draw_voxels_3d,[open_file_ogl]
Line 971... Line 1054...
971
lib_name_3 db 'tinygl.obj',0
1054
lib_name_3 db 'tinygl.obj',0
972
err_msg_found_lib_3 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'tinygl.obj',39,0
1055
err_msg_found_lib_3 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'tinygl.obj',39,0
973
err_msg_import_3 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'tinygl',39,0
1056
err_msg_import_3 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'tinygl',39,0
974
;--------------------------------------------------
1057
;--------------------------------------------------
Line 975... Line -...
975
 
-
 
976
sc system_colors 
1058
 
Line 977... Line -...
977
last_time dd 0
-
 
978
 
-
 
979
align 16
-
 
980
procinfo process_information 
1059
last_time dd 0
981
 
1060
 
982
align 4
1061
align 4
983
buf_0: dd 0 ;㪠§ â¥«ì ­  ¡ãä¥à ¨§®¡à ¦¥­¨ï
1062
buf_0: dd 0 ;㪠§ â¥«ì ­  ¡ãä¥à ¨§®¡à ¦¥­¨ï
984
	dw 530 ;+4 left
1063
	dw 530 ;+4 left
Line 1004... Line 1083...
1004
scale dd 1.414213562
1083
scale dd 1.414213562
1005
angle_x dd 0.0
1084
angle_x dd 0.0
1006
angle_y dd 0.0
1085
angle_y dd 0.0
1007
angle_z dd 0.0
1086
angle_z dd 0.0
1008
delt_size dd 3.0
1087
delt_size dd 3.0
-
 
1088
mouse_drag dd 0 ;०¨¬ ¯®¢®à®â  áæ¥­ë ®â ¯¥à¥¬¥é¥­¨¨ ªãàá®à  ¬ëè¨
-
 
1089
mouse_x dd 0
-
 
1090
mouse_y dd 0
-
 
1091
angle_dxm dd 2.8444 ;~ 3d_wnd_w/180 - ¯à¨¡ ¢«¥­¨¥ 㣫®¢ ¯®¢®à®â  áæ¥­ë ¯à¨ ¢à é¥­¨¨ ¬ë襩
-
 
1092
angle_dym dd 2.8444 ;~ 3d_wnd_h/180
Line 1009... Line 1093...
1009
 
1093
 
1010
opt_light dw 0 ;®¯æ¨ï ¤«ï ¢ª«î祭¨ï/¢ëª«î祭¨ï ᢥâ 
1094
opt_light dw 0 ;®¯æ¨ï ¤«ï ¢ª«î祭¨ï/¢ëª«î祭¨ï ᢥâ 
1011
opt_cube_box dw 1 ;®¯æ¨ï ¤«ï à¨á®¢ ­¨ï à ¬ª¨ ¢®ªà㣠®¡ê¥ªâ 
1095
opt_cube_box dw 1 ;®¯æ¨ï ¤«ï à¨á®¢ ­¨ï à ¬ª¨ ¢®ªà㣠®¡ê¥ªâ 
Line 1024... Line 1108...
1024
align 16
1108
align 16
1025
i_end:
1109
i_end:
1026
	rb 4096
1110
	rb 4096
1027
stacktop:
1111
stacktop:
1028
	sys_path rb 1024
1112
	sys_path rb 1024
1029
	file_name:
1113
	file_name rb 2048 
1030
		rb 1024 ;4096 
-
 
1031
	library_path rb 1024
1114
	library_path rb 1024
1032
	plugin_path rb 4096
1115
	plugin_path rb 4096
1033
	openfile_path rb 4096
1116
	openfile_path rb 4096
1034
	filename_area rb 256
1117
	filename_area rb 256
-
 
1118
	sc system_colors
-
 
1119
	procinfo process_information
-
 
1120
	run_file_70 FileInfoBlock
1035
mem:
1121
mem: