Subversion Repositories Kolibri OS

Compare Revisions

No changes between revisions

Regard whitespace Rev 5415 → Rev 5949

/programs/media/voxel_editor/docs/vox_tgl/about.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/programs/media/voxel_editor/docs/vox_tgl.htm
0,0 → 1,79
<html>
<head>
<title>Îãëàâëåíèå</title>
<meta http-equiv="content-type" content="text/html; charset=WINDOWS-1251">
<style>
body
{
font-size: 15px;
font-family: "Bookman Old Style";
color: black;
text-align: justify;
}
h1 { color: green; font-size: 23px; }
h2 { color: green; font-size: 21px; }
h3 { color: green; font-size: 19px; }
h4 { color: #803f00; font-size: 17px; }
i { color: #0099cc; }
b { color: #0099cc; }
p {
text-indent: 1em;
margin-top: 3px;
margin-bottom: 2px;
margin-left: 0px;
margin-right: 0px;
}
ol, ul, dl{
margin-top: 3px;
margin-bottom: 2px;
}
pre
{
padding: 2px;
padding-left: 20px;
margin-top: 5px;
margin-bottom: 5px;
margin-left: 0px;
margin-right: 0px;
font-family: "Courier New";
font-size: 15px;
color: #004000;
background-color: #ffd0ff;
}
table
{
font-size: 15px;
}
</style>
</head>
 
<body>
<h1>Âñïîìîãàòåëüíàÿ ïðîãðàììà äëÿ ðåäàêòîðà âîêñåëüíîé ãðàôèêè âåðñèÿ îò 07.12.2015</h1>
<p>Îãëàâëåíèå</p>
<ul>
<li><a href="#about">Î ïðîãðàììå</a></li>
<li><a href="#algor">Ðàáîòà ñ ïðîãðàììîé</a>
</li>
<li>Àâòîð</li>
</ul>
 
<h2><a name="about">Î ïðîãðàììå</a></h2>
<p>Ïðîãðàììà äëÿ ïðîñìîòðà 3-õ ìåðíîé âîêñåëüíîé ãðàôèêè ñ èñïîëüçîâàíèåì áèáëèîòåêè tinygl.</p>
<p><img src="vox_tgl/about.png"></p>
<p>Âíåøíèé âèä ïðîãðàììû.</p>
<p>Äëÿ ïðîñìîòðà 3-õ ìåðíîãî îáúåêòà íåîáõîäèìî îòêðûòü âîêñåëüíîå èçîáðàæåíèå èç ôàéëà ñ ðàñøèðåíèåì <b>*.vox</b>. Ýòè èçîáðàæåíèÿ ìîæíî ñîçäàâàòü â ïðîãðàììå âîêñåëüíîãî ðåäàêòîðà, íî îí ïîçâîëÿåò ðàññìàòðèâàòü ñîçäàííóþ ìîäåëü òîëüêî ïîä ôèêñèðîâàííûìè óãëàìè. Ñ ïîìîùüþ äàííîé óòèëèòû ìîæíî âèäåòü âîêñåëüíûé îáúåêò ïîä ðàçíûìè óãëàìè îáçîðà.</p>
 
<h2><a name="algor">Ðàáîòà ñ ïðîãðàììîé</a></h2>
<p>Â îêíå ïðîãðàììû åñòü ïàíåëü èíñòðóìåíòîâ, îêíî äëÿ ïðîñìîòðà îáúåêòà âîêñåëüíîé ãðàôèêè è îêíî äëÿ ïîêàçà 8-ìè óìåíüøåííûõ êàäðîâ îáúåêòà ïîä ôèêñèðîâàííûìè óãëàìè. Äëÿ ïðîñìîòðà îáúåêòà â ãëàâíîì îêíå ïîä ðàçíûìè óãëàìè ìîæíî íàæèìàòü êóðñîðû íà êëàâèàòóðå èëè æå íàæèìàòü è âîäèòü êóðñîðîì ìûøè ïî îêíó ñ 3-õ ìåðíîé ãðàôèêîé. Íà ïàíåëè èíñòðóìåíòîâ ìîæíî ìåíÿòü ðåæèìû îáçîðà ìîäåëè, ñìîòðåòü ñòàòèñòèêó ïî ìîäåëè è îáíîâëÿòü îêíî ñ ìèíèàòþðàìè.</p>
 
<h3>Îïèñàíèå ïàíåëè èíñòðóìåíòîâ</h3>
<p><img src="tb_new.png"> - ñîçäàíèå íîâîãî ôàéëà.</p>
<p><img src="tb_open.png"> - îòêðûòèå ôàéëîâ.</p>
<p><img src="tb_save.png"> - ñîõðàíåíèå ôàéëîâ. Äàííàÿ ïðîãðàììà íå ðåäàêòèðóåò ñàìó ìîäåëü, åäèíñòâåííîå ÷òî îíà ìîæåò ìåíÿòü ýòî óðîâåíü äåòàëèçàöèè ìîäåëè êîòîðûé áóäåò èñïîëüçîâàòüñÿ ïðè îòêðûòèè ìîäåëè. Ïîòîìó ýòà êîìàíäà ðåäêî èñïîëüçóåòñÿ.</p>
 
<h2>Àâòîð</h2>
<p>Èãîðü À. (IgorA) - ðàçðàáîòêà ïðîãðàììû.</p>
<p>Ëèöåíçèÿ ñâîáîäíàÿ.</p>
 
</body>
</html>
/programs/media/voxel_editor/utilites/vox_tgl.asm
1,13 → 1,7
use32
org 0x0
db 'MENUET01' ;¨¤¥­â¨ä. ¨á¯®«­ï¥¬®£® ä ©«  ¢á¥£¤  8 ¡ ©â
dd 0x1
dd start
dd i_end ;à §¬¥à ¯à¨«®¦¥­¨ï
dd mem
dd stacktop
dd 0
dd sys_path
dd 1, start, i_end, mem, stacktop, 0, sys_path
 
include '../../../../programs/macros.inc'
include '../../../../programs/proc32.inc'
18,7 → 12,7
include '../trunk/str.inc'
 
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load
caption db 'Voxel viewer 17.02.15',0 ;¯®¤¯¨áì ®ª­ 
caption db 'Voxel viewer 07.12.15',0 ;¯®¤¯¨áì ®ª­ 
 
struct FileInfoBlock
Function dd ?
30,7 → 24,11
FileName dd ?
ends
 
run_file_70 FileInfoBlock
3d_wnd_l equ 5 ;®âáâ㯠¤«ï tinygl ¡ãä¥à  á«¥¢ 
3d_wnd_t equ 30 ;®âáâ㯠¤«ï tinygl ¡ãä¥à  ᢥàåã
3d_wnd_w equ 512
3d_wnd_h equ 512
 
image_data dd 0 ;㪠§ â¥«ì ­  ¢à¥¬¥­­ãî ¯ ¬ïâì. ¤«ï ­ã¦¥­ ¯à¥®¡à §®¢ ­¨ï ¨§®¡à ¦¥­¨ï
 
IMAGE_TOOLBAR_ICON_SIZE equ 16*16*3
48,24 → 46,22
db 0
@@:
;32 - áâ ­¤ àâ­ë©  ¤à¥á ¯® ª®â®à®¬ã ¤®«¦¥­ ¡ëâì ¡ãä¥à á á¨á⥬­ë¬ ¯ã⥬
copy_path .path_str,[32],file_name,0x0
copy_path .path_str,[32],file_name,0
else
copy_path path,[32],file_name,0x0 ;ä®à¬¨à㥬 ¯®«­ë© ¯ãâì ª ä ©«ã ¨§®¡à ¦¥­¨ï, ¯®¤à §ã¬¥¢ ¥¬ çâ® ®­ ¢ ®¤­®© ¯ ¯ª¥ á ¯à®£à ¬¬®©
copy_path path,[32],file_name,0 ;ä®à¬¨à㥬 ¯®«­ë© ¯ãâì ª ä ©«ã ¨§®¡à ¦¥­¨ï, ¯®¤à §ã¬¥¢ ¥¬ çâ® ®­ ¢ ®¤­®© ¯ ¯ª¥ á ¯à®£à ¬¬®©
end if
 
stdcall mem.Alloc, dword size ;¢ë¤¥«ï¥¬ ¯ ¬ïâì ¤«ï ¨§®¡à ¦¥­¨ï
mov [buf],eax
 
mov eax,70 ;70-ï äã­ªæ¨ï à ¡®â  á ä ©« ¬¨
mov [run_file_70.Function], 0
mov [run_file_70.Position], 0
mov [run_file_70.Flags], 0
mov [run_file_70.Count], dword size
m2m [run_file_70.Buffer], [buf]
mov [run_file_70.Buffer], eax
mov byte[run_file_70+20], 0
mov [run_file_70.FileName], file_name
mov ebx,run_file_70
int 0x40 ;§ £à㦠¥¬ ä ©« ¨§®¡à ¦¥­¨ï
mcall 70,run_file_70 ;§ £à㦠¥¬ ä ©« ¨§®¡à ¦¥­¨ï
cmp ebx,0xffffffff
je @f
;®¯à¥¤¥«ï¥¬ ¢¨¤ ¨§®¡à ¦¥­¨ï ¨ ¯¥à¥¢®¤¨¬ ¥£® ¢® ¢à¥¬¥­­ë© ¡ãä¥à image_data
103,7 → 99,7
mcall 26,9
mov [last_time],eax
 
stdcall [kosglMakeCurrent], 5,30,512,512,ctx1
stdcall [kosglMakeCurrent], 3d_wnd_l,3d_wnd_t,3d_wnd_w,3d_wnd_h,ctx1
stdcall [glEnable], GL_DEPTH_TEST
stdcall [glEnable], GL_NORMALIZE ;¤¥« ¬ ­®à¬ «¨ ®¤¨­ ª®¢®© ¢¥«¨ç¨­ë ¢® ¨§¡¥¦ ­¨¥  àâ¥ä ªâ®¢
stdcall [glClearColor], 0.0,0.0,0.0,0.0
139,6 → 135,10
jz key
cmp al,3
jz button
cmp al,6
jne @f
call mouse
@@:
 
jmp still
 
317,6 → 317,88
 
 
align 4
mouse:
push eax ebx
mcall 37,3
bt eax,0
jnc .end_m
;mouse l. but. move
cmp dword[mouse_drag],1
jne .end_m
mcall 37,1 ;get mouse coords
mov ebx,eax
shr ebx,16 ;mouse.x
cmp ebx,3d_wnd_l
jg @f
mov ebx,3d_wnd_l
@@:
sub ebx,3d_wnd_l
cmp ebx,3d_wnd_w
jle @f
mov ebx,3d_wnd_w
@@:
and eax,0xffff ;mouse.y
cmp eax,3d_wnd_t
jg @f
mov eax,3d_wnd_t
@@:
sub eax,3d_wnd_t
cmp eax,3d_wnd_h
jle @f
mov eax,3d_wnd_h
@@:
finit
fild dword[mouse_y]
mov [mouse_y],eax
fisub dword[mouse_y]
fdiv dword[angle_dxm] ;¥á«¨ ªãàá®à ¤¢¨¦¥âáï ¯® ®á¨ y (¢¢¥àå ¨«¨ ¢­¨§) â® ¯®¢®à®â ¤¥« ¥¬ ¢®ªà㣠®á¨ x
fadd dword[angle_x]
fstp dword[angle_x]
 
fild dword[mouse_x]
mov [mouse_x],ebx
fisub dword[mouse_x]
fdiv dword[angle_dym] ;¥á«¨ ªãàá®à ¤¢¨¦¥âáï ¯® ®á¨ x (¢¢¥àå ¨«¨ ¢­¨§) â® ¯®¢®à®â ¤¥« ¥¬ ¢®ªà㣠®á¨ y
fadd dword[angle_y]
fstp dword[angle_y]
 
call draw_3d
stdcall [kosglSwapBuffers]
jmp .end_d
.end_m:
bt eax,16
jnc @f
;mouse l. but. up
mov dword[mouse_drag],0
jmp .end_d
@@:
bt eax,8
jnc .end_d
;mouse l. but. press
mcall 37,1 ;get mouse coords
mov ebx,eax
shr ebx,16 ;mouse.x
cmp ebx,3d_wnd_l
jl .end_d
sub ebx,3d_wnd_l
cmp ebx,3d_wnd_w
jg .end_d
and eax,0xffff ;mouse.y
cmp eax,3d_wnd_t
jl .end_d
sub eax,3d_wnd_t
cmp eax,3d_wnd_h
jg .end_d
mov dword[mouse_drag],1
mov dword[mouse_x],ebx
mov dword[mouse_y],eax
.end_d:
 
;stdcall [kmainmenu_dispatch_cursorevent], [main_menu]
pop ebx eax
ret
 
align 4
button:
mcall 17
cmp ah,3
668,11 → 750,11
mov edi,txt_stat_m1.v
stdcall convert_int_to_str,20
 
;mov eax,ebx
;mov edi,txt_stat_m2.v
;stdcall convert_int_to_str,20
mov eax,ebx
mov edi,txt_stat_m2.v
stdcall convert_int_to_str,20
 
;stdcall str_n_cat,txt_stat_m1.v,txt_stat_m2,50
stdcall str_n_cat,txt_stat_m1.v,txt_stat_m2,50
notify_window_run txt_stat_m1
.end_stat:
ret
681,7 → 763,7
align 4
txt_stat_m1:
db '‘â â¨á⨪ ',13,10,'‚®ªá¥«¥©: '
.v: rb 50
.v: rb 70
txt_stat_m2:
db 13,10,'Žâ®¡à ¦ ¥¬ëå £à ­¥©: '
.v: rb 20
717,6 → 799,7
;­® ¢á¥ ¦¥ ¯à¨ ¯®¢®à®â å ¡ã¤ãâ ®âᥪ âáï ªà ï, ª®â®àë¥ ¢ë«¥§ãâ §  ¯à¥¤¥«ë ¯«®áª®á⥩ ®âá¥ç¥­¨ï
;¢ ¢¥àᨨ opengl ¯®¤ Win ª®®à¤¨­ âë ¨¤ãâ ®â -1.0 ¤® 1.0 ¯®â®¬ã â ¬ í⮣® ¤¥« âì ­¥ ­ã¦­®
stdcall [glScalef], [scale], [scale], [scale] ;㢥«¨ç¨¢ ¥¬ ¢®ªá¥«ì­ë© ®¡ê¥ªâ, çâ®-¡ë ­¥ ¡ë« ®ç¥­ì ¬ «¥­ìª¨¬
stdcall [glScalef], 1.0, 1.0, 0.5 ;çâ®-¡ë ªà ï ®¡ê¥ªâ  ­¥ ¢ë« §¨«¨ §  £à ­¨ ®âá¥ç¥­¨ï
stdcall [glRotatef], [angle_x],1.0,0.0,0.0
stdcall [glRotatef], [angle_y],0.0,1.0,0.0
stdcall [glRotatef], [angle_z],0.0,0.0,1.0
973,12 → 1056,8
err_msg_import_3 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'tinygl',39,0
;--------------------------------------------------
 
sc system_colors
last_time dd 0
 
align 16
procinfo process_information
 
align 4
buf_0: dd 0 ;㪠§ â¥«ì ­  ¡ãä¥à ¨§®¡à ¦¥­¨ï
dw 530 ;+4 left
1006,6 → 1085,11
angle_y dd 0.0
angle_z dd 0.0
delt_size dd 3.0
mouse_drag dd 0 ;०¨¬ ¯®¢®à®â  áæ¥­ë ®â ¯¥à¥¬¥é¥­¨¨ ªãàá®à  ¬ëè¨
mouse_x dd 0
mouse_y dd 0
angle_dxm dd 2.8444 ;~ 3d_wnd_w/180 - ¯à¨¡ ¢«¥­¨¥ 㣫®¢ ¯®¢®à®â  áæ¥­ë ¯à¨ ¢à é¥­¨¨ ¬ë襩
angle_dym dd 2.8444 ;~ 3d_wnd_h/180
 
opt_light dw 0 ;®¯æ¨ï ¤«ï ¢ª«î祭¨ï/¢ëª«î祭¨ï ᢥâ 
opt_cube_box dw 1 ;®¯æ¨ï ¤«ï à¨á®¢ ­¨ï à ¬ª¨ ¢®ªà㣠®¡ê¥ªâ 
1026,10 → 1110,12
rb 4096
stacktop:
sys_path rb 1024
file_name:
rb 1024 ;4096
file_name rb 2048
library_path rb 1024
plugin_path rb 4096
openfile_path rb 4096
filename_area rb 256
sc system_colors
procinfo process_information
run_file_70 FileInfoBlock
mem: