/programs/develop/libraries/buf2d/trunk/about.htm |
---|
1,7 → 1,7 |
<html> |
<head> |
<title>áèáëèîòåêà äëÿ ðàáîòû ñ 2d áóôåðàìè</title> |
<meta http-equiv="content-type" content="text/html; charset=WINDOWS-1251"> |
<meta charset="WINDOWS-1251"> |
<style> |
body |
{ |
53,26 → 53,47 |
<li><a href="#fun">Ôóíêöèè</a><br> |
<ul> |
<li><a href="#f_init">lib_init</a></li> |
<li><a href="#f_b_create">buf2d_create</a></li> |
<li><a href="#f_b_create_f">buf2d_create_f_img</a></li> |
<li><a href="#f_b_clear">buf2d_clear</a></li> |
<li><a href="#f_b_draw">buf2d_draw</a></li> |
<li><a href="#f_b_delete">buf2d_delete</a></li> |
<li><a href="#f_b_rotate">buf2d_rotate</a></li> |
<li><a href="#f_b_resize">buf2d_resize</a></li> |
<li><a href="#f_b_line">buf2d_line</a></li> |
<li><a href="#f_b_line_sm">buf2d_line_sm</a></li> |
<li><a href="#f_b_rect">buf2d_rect_by_size</a></li> |
<li><a href="#f_b_fil_rect">buf2d_filled_rect_by_size</a></li> |
<li><a href="#f_b_circle">buf2d_circle</a></li> |
<li><a href="#f_b_hdiv2">buf2d_img_hdiv2</a></li> |
<li><a href="#f_b_wdiv2">buf2d_img_wdiv2</a></li> |
<li><a href="#f_create">buf2d_create</a></li> |
<li><a href="#f_create_f">buf2d_create_f_img</a></li> |
<li><a href="#f_clear">buf2d_clear</a></li> |
<li><a href="#f_draw">buf2d_draw</a></li> |
<li><a href="#f_delete">buf2d_delete</a></li> |
<li><a href="#f_rotate">buf2d_rotate</a></li> |
<li><a href="#f_resize">buf2d_resize</a></li> |
<li><a href="#f_line">buf2d_line</a></li> |
<li><a href="#f_line_sm">buf2d_line_sm</a></li> |
<li><a href="#f_rect">buf2d_rect_by_size</a></li> |
<li><a href="#f_fil_rect">buf2d_filled_rect_by_size</a></li> |
<li><a href="#f_circle">buf2d_circle</a></li> |
<li><a href="#f_hdiv2">buf2d_img_hdiv2</a></li> |
<li><a href="#f_wdiv2">buf2d_img_wdiv2</a></li> |
<li>buf2d_conv_24_to_8</li> |
<li>buf2d_conv_24_to_32</li> |
<li><a href="#f_bit_blt">buf2d_bit_blt</a></li> |
<li>buf2d_bit_blt_transp</li> |
<li>buf2d_bit_blt_alpha</li> |
<li>buf2d_curve_bezier</li> |
<li>buf2d_convert_text_matrix</li> |
<li>buf2d_draw_text</li> |
<li><a href="#f_c_color">buf2d_crop_color</a></li> |
<li>buf2d_offset_h</li> |
<li>buf2d_flood_fill</li> |
<li>buf2d_set_pixel</li> |
<li>buf2d_get_pixel</li> |
<li><a href="#f_flip_h">buf2d_flip_h</a></li> |
<li><a href="#f_flip_v">buf2d_flip_v</a></li> |
<li><a href="#f_filter_d">buf2d_filter_dither</a></li> |
<li><a href="#f_v_brush_c">buf2d_vox_brush_create</a></li> |
<li>buf2d_vox_brush_delete</li> |
<li>buf2d_vox_obj_draw_1g</li> |
<li>buf2d_vox_obj_get_img_w_3g</li> |
<li>buf2d_vox_obj_get_img_h_3g</li> |
<li>buf2d_vox_obj_draw_3g</li> |
<li>buf2d_vox_obj_draw_3g_scaled</li> |
<li>buf2d_vox_obj_draw_3g_shadows</li> |
<li>buf2d_vox_obj_draw_pl</li> |
<li>buf2d_vox_obj_draw_pl_scaled</li> |
</ul> |
</li> |
<li><a href="#const">Êîíñòàíòû</a></li> |
119,16 → 140,23 |
<h4><a name="f_init">lib_init</a></h4> |
<p>Ýòà ôóíêöèÿ ïîëó÷àåò óêàçàòåëè íà ôóíêöèè ðàáîòû ñ ïàìÿòüþ, âûçûâàòñÿ äîëæíà ïðè çàãðóçêå áèáëèîòåêè. Ìîæåòå èñïîëüçîâàòü ìàêðîñ <b>@use_library_mem</b>, äëÿ åå àâòîìàòè÷åñêîé íàñòðîéêè.</p> |
<h4><a name="f_b_create">buf2d_create</a></h4> |
<h4><a name="f_create">buf2d_create</a></h4> |
<p>Ñîçäàåò áóôåð è ÷èñòèò åãî ôîíîâûì öâåòîì. Ïðèìåð:</p> |
<pre>stdcall [buf2d_create], buf_0</pre> |
<p>ãäå buf_0 - ñòðóêòóðà áóôåðà.</p> |
<p>Ïàðàìåòðû äëÿ ñîçäàíèÿ áóôåðà áåðóòñÿ èç ñòðóêòóðû.</p> |
<h4><a name="f_b_create_f">buf2d_create_f_img</a></h4> |
<h4><a name="f_create_f">buf2d_create_f_img</a></h4> |
<p>Ñîçäàåò áóôåð íà îñíîâå èçîáðàæåíèÿ â ôîðìàòå <b>rgb</b>.</p> |
<pre>buf2d_w equ dword[edi+8] ;øèðèíà áóôåðà |
buf2d_h equ dword[edi+12] ;âûñîòà áóôåðà |
mov edi,buf_i0 |
mov buf2d_w,320 |
mov buf2d_h,240 |
stdcall [buf2d_create_f_img], edi,[open_file_img]</pre> |
<p>ãäå buf_0 - ñòðóêòóðà áóôåðà, open_file_img - óêàçàòåëü íà äàííûå èçîáðàæåíèÿ â ôîðìàòå <b>rgb</b>, 320 - øèðèíà èçîáðàæåíèÿ â ïèêñåëÿõ, 240 - âûñîòà èçîáðàæåíèÿ â ïèêñåëÿõ.</p> |
<h4><a name="f_b_clear">buf2d_clear</a></h4> |
<h4><a name="f_clear">buf2d_clear</a></h4> |
<p>×èñòèò áóôåð óêàçàíûì öâåòîì. Ïðèìåð:</p> |
<pre>buf2d_color equ dword[edi+16] ;öâåò ôîíà áóôåðà |
mov edi,buf_0 |
135,18 → 163,18 |
stdcall [buf2d_clear], edi, buf2d_color ;î÷èùàåì ýêðàí ôîíîâûì öâåòîì</pre> |
<p>ãäå buf_0 - ñòðóêòóðà áóôåðà.</p> |
<h4><a name="f_b_draw">buf2d_draw</a></h4> |
<h4><a name="f_draw">buf2d_draw</a></h4> |
<p>Ðèñóåò áóôåð íà ýêðàíå (ðàáîòàåò ÷åðåç ñèñòåìíóþ ô. 7). Ðèñóþòñÿ òîëüêî áóôåðà ñ ãëóáèíîé öâåòà 24 áèòà.</p> |
<h4><a name="f_b_delete">buf2d_delete</a></h4> |
<h4><a name="f_delete">buf2d_delete</a></h4> |
<p>Îñâîáîæäàåò ïàìÿòü çàíÿòóþ èçîáðàæåíèåì áóôåðà.</p> |
<h4><a name="f_b_rotate">buf2d_rotate</a></h4> |
<h4><a name="f_rotate">buf2d_rotate</a></h4> |
<p>Ïîâîðà÷èâàåò áóôåð íà 90 èëè 180 ãðàäóñîâ. Ïðèìåð:</p> |
<pre>stdcall [buf2d_rotate], buf_0, 90</pre> |
<p>ãäå buf_0 - ñòðóêòóðà áóôåðà (ìîæåò áûòü 8, 24 èëè 32 áèòíûì); 90 - óãîë ïîâîðîòà.</p> |
<h4><a name="f_b_resize">buf2d_resize</a></h4> |
<h4><a name="f_resize">buf2d_resize</a></h4> |
<p>Èçìåíÿåò ðàçìåðû áóôåðà èëè èçîáðàæåíèÿ â áóôåðå. Ïîêà ïîääåðæèâàþòñÿ áóôåðà ñ ãëóáèíîé öâåòà 24 áèòà.</p> |
<p>Ïðèìåð 1:</p> |
<pre>stdcall [buf2d_resize], buf_0, 0,300, 1 ;èçìåíÿåì âûñîòó áóôåðà</pre> |
156,34 → 184,34 |
<p>ãäå 250 - íîâàÿ øèðèíà áóôåðà; 0 - íîâàÿ âûñîòà áóôåðà (0 îçíà÷àåò íå èçìåíÿòü ðàçìåð); 2 - ïàðàìåòð óêàçûâàþùèé ÷òî èçìåíÿåì èçîáðàæåíèå â áóôåðå.</p> |
<p>Åñëè ïîñëåäíèé ïàðàìåòð ðàâåí 2 òî ðàçìåð áóôåðà îñòàåòñÿ íåèçìåííûì è ôóíêöèÿ ðàáîòàåò àíàëîãè÷íî òàê êàê è ôóíêöèè <b>buf2d_img_hdiv2</b>, <b>buf2d_img_wdiv2</b>. Ðàçíèöà â òîì, ÷òî buf2d_resize ìîæåò ñæèìàòü èçîáðàæåíèÿ äî çàäàííîãî ðàçìåðà, à íå ðîâíî â 2 ðàçà.</p> |
<h4><a name="f_b_line">buf2d_line</a></h4> |
<h4><a name="f_line">buf2d_line</a></h4> |
<p>Ðèñóåò â áóôåðå ëèíèþ ñ çàäàííûì öâåòîì è êîîðäèíàòàìè. Ïðèìåð:</p> |
<pre>stdcall [buf2d_line], buf_0, 30,10, 110,70, 0xffff00 ;ðèñóåì ëèíèþ</pre> |
<p>ãäå buf_0 - ñòðóêòóðà áóôåðà â êîòîðîì áóäåò ðèñîâàòüñÿ ëèíèÿ; 30, 10, 110, 70 - êîîðäèíàòû ëèíèè; 0xffff00 - öâåò ëèíèè.</p> |
<p>Äëÿ ðèñîâàíèÿ ñãëàæåííîé ëèíèè èñïîëüçóéòå <b>buf2d_line_sm</b>.</p> |
<h4><a name="f_b_line_sm">buf2d_line_sm</a></h4> |
<h4><a name="f_line_sm">buf2d_line_sm</a></h4> |
<p>Ðèñóåò â áóôåðå ëèíèþ ïðèíèìàåò òàêèæå ïàðàìåòðû êàê è ôóíêöèÿ <b>buf2d_line</b>. Äàííàÿ ôóíêöèÿ ðèñóåò ñãëàæåííóþ ëèíèþ áîëåå êðàñèâóþ ÷åì <b>buf2d_line</b>, íî ðàáîòàåò ìåäëåííåå íå¸ çà ñ÷åò âû÷èñëåíèÿ ñìåøàííûõ öâåòîâ ôîíà è ñàìîé ëèíèè.</p> |
<h4><a name="f_b_rect">buf2d_rect_by_size</a></h4> |
<h4><a name="f_rect">buf2d_rect_by_size</a></h4> |
<p>Ðèñóåò ïðÿìîóãîëüíóþ ðàìêó, ïî äâóì êîîðäèíàòàì, 2-ÿ êîîðäèíàòà çàäàíà ïî ðàçìåðó. Åñëè ðàçìåðû îòðèöàòåëüíûå ðàìêà ðèñóåòñÿ â îáðàòíîì íàïðàâëåíèè.</p> |
<pre>stdcall [buf2d_rect_by_size], buf_0, 10,10,150,100, 0x8080</pre> |
<p>ãäå buf_0 - ñòðóêòóðà áóôåðà â êîòîðîì áóäåò ðèñîâàòüñÿ ïðÿìîóãîëüíèê; 10, 10 - êîîðäèíàòû ëåâîãî âåðõíåãî óãëà (ïðè îòðèöàòåëüíûõ ðàçìåðàõ êîîðäèíàòà ïðàâîãî íèæíåãî); 150, 100 - ðàçìåð ïðÿìîóãîëüíèêà; 0x8080 - öâåò ëèíèè.</p> |
<h4><a name="f_b_fil_rect">buf2d_filled_rect_by_size</a></h4> |
<h4><a name="f_fil_rect">buf2d_filled_rect_by_size</a></h4> |
<p>Ðèñóåò çàêðàøåííûé ïðÿìîóãîëüíèê, ïî äâóì êîîðäèíàòàì, 2-ÿ êîîðäèíàòà çàäàíà ïî ðàçìåðó. Åñëè ðàçìåð çàäàòü 1*1, òî áóäåò íàðèñîâàíà òî÷êà ðàçìåðîì â 1 ïèêñåëü, ò.å. ðàçìåð ïðÿìîóãîëüíèêà â ïèêñåëÿõ áóäåò ðàâåí óêàçàííîìó. Åñëè ðàçìåðû îòðèöàòåëüíûå ïðÿìîóãîëüíèê ðèñóåòñÿ â îáðàòíîì íàïðàâëåíèè.</p> |
<pre>stdcall [buf2d_rect_by_size], buf_0, 10,10,150,100, 0x8080</pre> |
<p>ãäå buf_0 - ñòðóêòóðà áóôåðà â êîòîðîì áóäåò ðèñîâàòüñÿ ïðÿìîóãîëüíèê; 10, 10 - êîîðäèíàòû ëåâîãî âåðõíåãî óãëà (ïðè îòðèöàòåëüíûõ ðàçìåðàõ êîîðäèíàòà ïðàâîãî íèæíåãî); 150, 100 - ðàçìåð ïðÿìîóãîëüíèêà; 0x8080 - öâåò ïðÿìîóãîëèêà.</p> |
<h4><a name="f_b_circle">buf2d_circle</a></h4> |
<h4><a name="f_circle">buf2d_circle</a></h4> |
<p>Ðèñóåò â áóôåðå îêðóæíîñòü ñ çàäàííûì öâåòîì è ðàäèóñîì. Ïðèìåð:</p> |
<pre>stdcall [buf2d_circle], buf_0, 25, 70, 15, 0xff0000</pre> |
<p>ãäå buf_0 - ñòðóêòóðà áóôåðà â êîòîðîì áóäåò ðèñîâàòüñÿ îêðóæíîñòü; 25, 70 - êîîðäèíàòû öåíòðà; 15 - ðàäèóñ; 0xff0000 - öâåò.</p> |
<h4><a name="f_b_hdiv2">buf2d_img_hdiv2</a></h4> |
<h4><a name="f_hdiv2">buf2d_img_hdiv2</a></h4> |
<p>Ñæèìàåò èçîáðàæåíèå â áóôåðå ïî âûñîòå â 2 ðàçà, ïðè ýòîì ðàçìåð ñàìîãî áóôåðà íå óìåíüøàåòñÿ.</p> |
<h4><a name="f_b_wdiv2">buf2d_img_wdiv2</a></h4> |
<h4><a name="f_wdiv2">buf2d_img_wdiv2</a></h4> |
<p>Ñæèìàåò èçîáðàæåíèå â áóôåðå ïî øèðèíå â 2 ðàçà, ïðè ýòîì ðàçìåð ñàìîãî áóôåðà íå óìåíüøàåòñÿ.</p> |
<h4>buf2d_conv_24_to_8</h4> |
198,7 → 226,7 |
<p>Äî âûïîëíåíèÿ ôóíêöèè áóôåð buf_a äîëæåí áûòü 24 áèòíûì, à áóôåð buf_b - 8 áèòíûì. |
Ïîñëå âûïîëíåíèÿ ôóíêöèè áóôåð buf_a ñòàíåò 32 áèòíûì, áóôåð buf_b íå èçìåíèòñÿ.</p> |
<h4>buf2d_bit_blt</h4> |
<h4><a name="f_bit_blt">buf2d_bit_blt</a></h4> |
<p>Ðèñóåò â áóôåðå èçîáðàæåíèå èç äðóãîãî áóôåðà â óêàçàííûõ êîîðäèíàòàõ. Áóôåð â êîòîðîì ðèñóò (ïðèåìíèê) äîëæåí áûòü 24 áèòíûì, à òîò êîòîðûé ðèñóåòñÿ (èñòî÷íèê) 24 èëè 32 áèòíûì. Åñëè áóôåð èñòî÷íèê 32 áèòíûé, òî åãî ïðîçðà÷íîñòü ïðè ðèñîâàíèè íå ó÷èòûâàåòñÿ, äëÿ ó÷åòà ïðîçðà÷íîñòè èñïîëüçóåòñÿ ôóíêöèÿ <i>buf2d_bit_blt_transp</i>. Ïðèìåð:</p> |
<pre>stdcall [buf2d_bit_blt], buf_0, 50,30, buf_1 ;ïðîðèñîâêà ñðåäíåãî ñêèíà</pre> |
<p>ãäå buf_0 - ñòðóêòóðà áóôåðà â êîòîðîì áóäåò ðèñîâàòüñÿ èçîáðàæåíèå (ïðèåìíèê); |
446,8 → 474,8 |
<p>29.07.10 - äîáàâëåíû ôóíêöèè buf2d_crop_color è buf2d_offset_h; |
èñïðàâëåíèÿ â ôóíêöèè buf2d_delete.</p> |
<p>30.09.10 - äîáàâëåíà ôóíêöèÿ buf2d_rect_by_size.</p> |
<p>04.10.10 - äîáàâëåíà ôóíêöèÿ buf2d_filled_rect_by_size, äîðàáîòàíà ôóíêöèÿ buf_bit_blt_alpha.</p> |
<p>07.10.10 - äîðàáîòàíà ôóíêöèÿ buf_bit_blt (ïðè ïîïûòêå íàðèñîâàòü èçîáðàæåíèå çà ïðåäåëàìè ïðàâîãî êðàÿ áóôåðà ïðèëîæåíèå âûçâàâøåå ôóíêöèþ ïàäàëî).</p> |
<p>04.10.10 - äîáàâëåíà ôóíêöèÿ buf2d_filled_rect_by_size, äîðàáîòàíà ôóíêöèÿ buf2d_bit_blt_alpha.</p> |
<p>07.10.10 - äîðàáîòàíà ôóíêöèÿ buf2d_bit_blt (ïðè ïîïûòêå íàðèñîâàòü èçîáðàæåíèå çà ïðåäåëàìè ïðàâîãî êðàÿ áóôåðà ïðèëîæåíèå âûçâàâøåå ôóíêöèþ ïàäàëî).</p> |
<p>11.10.10 - èñïðàâëåíî çàäàíèå öâåòîâ â íåêîòîðûõ ôóíêöèÿõ, êðàñíûé è ñèíèé öâåòà ïîìåíÿë ìåñòàìè. Òåïåðü öâåòà ñîâïàäàþò ñ ñèñåìíûìè ôóíêöèÿìè.</p> |
<p>02.11.10 - äîáàâëåíà ôóíêöèÿ buf2d_flood_fill.</p> |
<p>22.12.10 - èçìåíåíî èìÿ ôóíêöèè buf2d_cruve_bezier íà buf2d_curve_bezier.</p> |
461,10 → 489,11 |
<p>12.06.12 - äîáàâëåíû ôóíêöèè äëÿ ðèñîâàíèÿ âîêñåëüíîé ãðàôèêè.</p> |
<p>11.08.12 - ôóíêöèè äëÿ ñæàòèÿ èçîáðàæåíèé buf2d_img_hdiv2 è buf2d_img_wdiv2 ðàáîòàþò ñ 32 áèòíûìè áóôåðàìè.</p> |
<p>01.10.12 - äîáàâëåíà ôóíêöèÿ ïîâîðîòà èçîáðàæåíèé íà 90 è 180 ãðàäóñîâ buf2d_rotate.</p> |
<p>15.11.12 - äîáàâëåíà ôóíêöèÿ îòðàæåíèÿ 24 áèòíûõ èçîáðàæåíèé ïî âåðòèêàëè buf_flip_v, èñïðàâëåíèÿ â ôóíêöèè buf2d_img_hdiv2.</p> |
<p>15.11.12 - äîáàâëåíà ôóíêöèÿ îòðàæåíèÿ 24 áèòíûõ èçîáðàæåíèé ïî âåðòèêàëè buf2d_flip_v, èñïðàâëåíèÿ â ôóíêöèè buf2d_img_hdiv2.</p> |
<p>14.12.12 - äîáàâëåíà ôóíêöèÿ íàëîæåíèÿ ôèëüòðà buf2d_filter_dither.</p> |
<p>24.12.12 - äîáàâëåíû 2 íîâûõ àëãîðèòìà â ôóíêöèþ íàëîæåíèÿ ôèëüòðà buf2d_filter_dither.</p> |
<p>30.01.15 - äîáàâëåíà ïîääåðæêà 32 áèòíûõ áóôåðîâ â ôóíêöèþ buf_flip_v, äîáàâëåíà ôóíêöèÿ îòðàæåíèÿ ïî ãîðèçîíòàëè buf_flip_h.</p> |
<p>30.01.15 - äîáàâëåíà ïîääåðæêà 32 áèòíûõ áóôåðîâ â ôóíêöèþ buf2d_flip_v, äîáàâëåíà ôóíêöèÿ îòðàæåíèÿ ïî ãîðèçîíòàëè buf2d_flip_h.</p> |
<p>09.02.16 - èçìåíåíà ôóíêöèÿ buf2d_resize äîáàâëåí äîïîëíèòåëüíûé ïàðàìåòð, êîòîðûé óêàçûâàåò ìåíÿòü ëè èçîáðàæåíèå èëè ðàçìåðû áóôåðà.</p> |
<p>04.05.20 - ôóíêöèÿ buf2d_bit_blt ìîæåò ïðèíèìàòü îòðèöàòåëüíûå êîîðäèíàòû â ïîçèöèè êîïèðóåìîãî áóôåðà.</p> |
</body> |
</html> |
/programs/develop/libraries/buf2d/trunk/buf2d.asm |
---|
2050,7 → 2050,7 |
align 4 |
proc buf_bit_blt, buf_destination:dword, coord_x:dword, coord_y:dword, buf_source:dword |
locals |
right_bytes dd ? |
lost_bytes dd ? ;ç¨á«® ¯®â¥àïëå ¡ ©â®¢ ¢ áâப¥ ª®¯¨à㥬®£® ¨§®¡à ¦¥ï (â¥å çâ® ¥ ¢« §ïâ ¢ ¡ãä¥à) |
endl |
pushad |
2081,7 → 2081,6 |
cmp edx,0 |
jle .copy_end ;¥á«¨ ª®¯¨à㥬®¥ ¨§®¡à ¦¥¨¥ 室¨âáï ¯®«®áâìî ¤ ¢¥à奩 £à ¨æ¥© ¡ãä¥à (coord_y<0 ¨ |coord_y|>buf_source.h) |
neg ecx |
;inc ecx |
imul ecx,eax |
lea ecx,[ecx+ecx*2] ;¯® 3 ¡ ©â ¯¨ªá¥«ì |
add esi,ecx ;ᤢ¨£ ¥¬ 㪠§ ⥫ì á ª®¯¨à㥬묨 ¤ 묨, á ãç¥â®¬ ¯à®¯ã襮© ç á⨠|
2111,15 → 2110,28 |
sub ebx,eax |
mov edi,ecx ;edi 㪠§ â¥«ì ¤ ë¥ ¡ãä¥à , ªã¤ ¡ã¤¥â ¯à®¨§¢®¤¨âáï ª®¯¨à®¢ ¨¥ |
mov [right_bytes],0 |
mov dword[lost_bytes],0 |
mov ecx,[coord_x] |
cmp ecx,0 |
jge @f |
neg ecx |
cmp eax,ecx ;eax - è¨à¨ ª®¯¨à㥬®© ª à⨪¨ |
jle .copy_end ;¥á«¨ ª®¯¨à㥬®¥ ¨§®¡à ¦¥¨¥ 室¨âáï ¯®«®áâìî § «¥¢®© £à ¨æ¥© ¡ãä¥à (coord_x<0 ¨ |coord_x|>buf_source.w) |
sub eax,ecx ;㪮à 稢 ¥¬ ª®¯¨à㥬ãî áâபã |
add ebx,ecx ;㤫¨ï¥¬ áâப㠤«ï ᤢ¨£ £« ¢®© ª à⨪¨ ¡ãä¥à |
lea ecx,[ecx+ecx*2] |
mov [lost_bytes],ecx |
add esi,ecx |
add edi,ecx ;edi 㪠§ â¥«ì ¤ ë¥ ¡ãä¥à , ªã¤ ¡ã¤¥â ¯à®¨§¢®¤¨âáï ª®¯¨à®¢ ¨¥ |
xor ecx,ecx |
@@: |
cmp ecx,ebx |
jl @f |
jle @f |
sub ecx,ebx |
sub eax,ecx ;㪮à 稢 ¥¬ ª®¯¨à㥬ãî áâபã |
add ebx,ecx ;㤫¨ï¥¬ áâப㠤«ï ᤢ¨£ £« ¢®© ª à⨪¨ ¡ãä¥à |
lea ecx,[ecx+ecx*2] ;ecx - ç¨á«® ¡ ©â ¢ 1-© áâப¥ ª à⨪¨, ª®â®àë¥ ¢ë« §ïâ § ¯à ¢ãî áâ®à®ã |
mov [right_bytes],ecx |
lea ecx,[ecx+ecx*2] ;ecx - ç¨á«® ¯¨ªá¥«¥© ¢ 1-© áâப¥ ª à⨪¨, ª®â®àë¥ ¢ë« §ïâ § ¯à ¢ãî áâ®à®ã |
add [lost_bytes],ecx |
@@: |
lea eax,[eax+eax*2] ;ª®««¨ç¥á⢮ ¡ ©â ¢ 1-© áâப¥ ª®¯¨à㥬®© ª à⨪¨ |
2126,7 → 2138,7 |
lea ebx,[ebx+ebx*2] ;ª®««¨ç¥á⢮ ¡ ©â ¢ 1-© áâப¥ ¡ãä¥à ¬¨ãá ç¨á«® ¡ ©â ¢ 1-© áâப¥ ª®¯¨à㥬®© ª à⨪¨ |
cld |
cmp [right_bytes],0 |
cmp [lost_bytes],0 |
jg .copy_1 |
.copy_0: ;¯à®á⮥ ª®¯¨à®¢ ¨¥ |
mov ecx,eax |
2140,7 → 2152,7 |
mov ecx,eax |
rep movsb |
add edi,ebx |
add esi,[right_bytes] ;¤®¡ ¢«ï¥¬ ¡ ©âë, ª®â®àë¥ ¢ë« §ïâ § ¯à ¢ãî £à ¨æã |
add esi,[lost_bytes] ;¤®¡ ¢«ï¥¬ ¡ ©âë, ª®â®àë¥ ¢ë« §ïâ § ¯à ¢ãî £à ¨æã |
dec edx |
cmp edx,0 |
jg .copy_1 |
2166,7 → 2178,6 |
cmp edx,0 |
jle .copy_end ;¥á«¨ ª®¯¨à㥬®¥ ¨§®¡à ¦¥¨¥ 室¨âáï ¯®«®áâìî ¤ ¢¥à奩 £à ¨æ¥© ¡ãä¥à (coord_y<0 ¨ |coord_y|>buf_source.h) |
neg ecx |
;inc ecx |
imul ecx,eax |
shl ecx,2 ;¯® 4 ¡ ©â ¯¨ªá¥«ì |
add esi,ecx ;ᤢ¨£ ¥¬ 㪠§ ⥫ì á ª®¯¨à㥬묨 ¤ 묨, á ãç¥â®¬ ¯à®¯ã襮© ç á⨠|
2199,15 → 2210,28 |
sub ebx,eax |
mov edi,ecx ;edi 㪠§ â¥«ì ¤ ë¥ ¡ãä¥à , ªã¤ ¡ã¤¥â ¯à®¨§¢®¤¨âáï ª®¯¨à®¢ ¨¥ |
mov [right_bytes],0 |
mov dword[lost_bytes],0 |
mov ecx,[coord_x] |
cmp ecx,0 |
jge @f |
neg ecx |
cmp eax,ecx ;eax - è¨à¨ ª®¯¨à㥬®© ª à⨪¨ |
jle .copy_end ;¥á«¨ ª®¯¨à㥬®¥ ¨§®¡à ¦¥¨¥ 室¨âáï ¯®«®áâìî § «¥¢®© £à ¨æ¥© ¡ãä¥à (coord_x<0 ¨ |coord_x|>buf_source.w) |
sub eax,ecx ;㪮à 稢 ¥¬ ª®¯¨à㥬ãî áâபã |
add ebx,ecx ;㤫¨ï¥¬ áâப㠤«ï ᤢ¨£ £« ¢®© ª à⨪¨ ¡ãä¥à |
shl ecx,2 |
mov [lost_bytes],ecx |
add esi,ecx |
add edi,ecx ;edi 㪠§ â¥«ì ¤ ë¥ ¡ãä¥à , ªã¤ ¡ã¤¥â ¯à®¨§¢®¤¨âáï ª®¯¨à®¢ ¨¥ |
xor ecx,ecx |
@@: |
cmp ecx,ebx |
jl @f |
jle @f |
sub ecx,ebx |
sub eax,ecx ;㪮à 稢 ¥¬ ª®¯¨à㥬ãî áâபã |
add ebx,ecx ;㤫¨ï¥¬ áâப㠤«ï ᤢ¨£ £« ¢®© ª à⨪¨ ¡ãä¥à |
shl ecx,2 ;ecx - ç¨á«® ¡ ©â ¢ 1-© áâப¥ ª à⨪¨, ª®â®àë¥ ¢ë« §ïâ § ¯à ¢ãî áâ®à®ã |
mov [right_bytes],ecx |
shl ecx,2 ;ecx - ç¨á«® ¯¨ªá¥«¥© ¢ 1-© áâப¥ ª à⨪¨, ª®â®àë¥ ¢ë« §ïâ § ¯à ¢ãî áâ®à®ã |
add [lost_bytes],ecx |
@@: |
;eax - ª®««¨ç¥á⢮ ¯¨ªá¥«¥© ¢ 1-© áâப¥ ª®¯¨à㥬®© ª à⨪¨ |
2214,7 → 2238,7 |
lea ebx,[ebx+ebx*2] ;ª®««¨ç¥á⢮ ¡ ©â ¢ 1-© áâப¥ ¡ãä¥à ¬¨ãá ç¨á«® ¡ ©â ¢ 1-© áâப¥ ª®¯¨à㥬®© ª à⨪¨ |
cld |
cmp [right_bytes],0 |
cmp [lost_bytes],0 |
jg .copy_3 |
.copy_2: ;¯à®á⮥ ª®¯¨à®¢ ¨¥ |
mov ecx,eax |
2236,7 → 2260,7 |
inc esi |
loop @b |
add edi,ebx |
add esi,[right_bytes] ;¤®¡ ¢«ï¥¬ ¡ ©âë, ª®â®àë¥ ¢ë« §ïâ § ¯à ¢ãî £à ¨æã |
add esi,[lost_bytes] ;¤®¡ ¢«ï¥¬ ¡ ©âë, ª®â®àë¥ ¢ë« §ïâ § ¯à ¢ãî £à ¨æã |
dec edx |
cmp edx,0 |
jg .copy_3 |
2288,7 → 2312,7 |
align 4 |
proc buf_bit_blt_transp, buf_destination:dword, coord_x:dword, coord_y:dword, buf_source:dword |
locals |
lost_bytes dd ? |
lost_bytes dd ? ;ç¨á«® ¯®â¥àïëå ¡ ©â®¢ ¢ áâப¥ ª®¯¨à㥬®£® ¨§®¡à ¦¥ï (â¥å çâ® ¥ ¢« §ïâ ¢ ¡ãä¥à) |
endl |
pushad |
2311,7 → 2335,6 |
cmp edx,0 |
jle .copy_end ;¥á«¨ ª®¯¨à㥬®¥ ¨§®¡à ¦¥¨¥ 室¨âáï ¯®«®áâìî ¤ ¢¥à奩 £à ¨æ¥© ¡ãä¥à (coord_y<0 ¨ |coord_y|>buf_source.h) |
neg ecx |
;inc ecx |
imul ecx,eax |
shl ecx,2 ;¯® 4 ¡ ©â ¯¨ªá¥«ì |
add esi,ecx ;ᤢ¨£ ¥¬ 㪠§ ⥫ì á ª®¯¨à㥬묨 ¤ 묨, á ãç¥â®¬ ¯à®¯ã襮© ç á⨠|
2346,15 → 2369,14 |
cmp ecx,0 |
jge @f |
neg ecx |
;inc ecx |
cmp eax,ecx ;eax - è¨à¨ ª®¯¨à㥬®© ª à⨪¨ |
jle .copy_end ;¥á«¨ ª®¯¨à㥬®¥ ¨§®¡à ¦¥¨¥ 室¨âáï ¯®«®áâìî § «¥¢®© £à ¨æ¥© ¡ãä¥à (coord_x<0 ¨ |coord_x|>buf_source.w) |
sub eax,ecx ;㪮à 稢 ¥¬ ª®¯¨à㥬ãî áâபã |
add ebx,ecx ;㤫¨ï¥¬ áâப㠤«ï ᤢ¨£ £« ¢®© ª à⨪¨ ¡ãä¥à |
shl ecx,2 |
mov [lost_bytes],ecx |
add esi,ecx |
shr ecx,2 |
sub eax,ecx ;㪮à 稢 ¥¬ ª®¯¨à㥬ãî áâபã |
add ebx,ecx ;㤫¨ï¥¬ áâப㠤«ï ᤢ¨£ £« ¢®© ª à⨪¨ ¡ãä¥à |
lea ecx,[ecx+ecx*2] |
add edi,ecx ;edi 㪠§ â¥«ì ¤ ë¥ ¡ãä¥à , ªã¤ ¡ã¤¥â ¯à®¨§¢®¤¨âáï ª®¯¨à®¢ ¨¥ |
xor ecx,ecx |
2368,17 → 2390,6 |
add [lost_bytes],ecx |
@@: |
; mov [right_bytes],0 |
; mov ecx,[coord_x] |
; cmp ecx,ebx |
; jl @f |
; sub ecx,ebx |
; sub eax,ecx ;㪮à 稢 ¥¬ ª®¯¨à㥬ãî áâபã |
; add ebx,ecx ;㤫¨ï¥¬ áâப㠤«ï ᤢ¨£ £« ¢®© ª à⨪¨ ¡ãä¥à |
; shl ecx,2 ;ecx - ç¨á«® ¡ ©â ¢ 1-© áâப¥ ª à⨪¨, ª®â®àë¥ ¢ë« §ïâ § ¯à ¢ãî áâ®à®ã |
; mov [right_bytes],ecx |
; @@: |
lea ebx,[ebx+ebx*2] ;ª®««¨ç¥á⢮ ¡ ©â ¢ 1-© áâப¥ ¡ãä¥à ¬¨ãá ç¨á«® ¡ ©â ¢ 1-© áâப¥ ª®¯¨à㥬®© ª à⨪¨ |
cld |
2487,7 → 2498,6 |
cmp edx,0 |
jle .copy_end ;¥á«¨ ª®¯¨à㥬®¥ ¨§®¡à ¦¥¨¥ 室¨âáï ¯®«®áâìî ¤ ¢¥à奩 £à ¨æ¥© ¡ãä¥à (coord_y<0 ¨ |coord_y|>buf_source.h) |
neg ecx |
;inc ecx |
imul ecx,eax |
add esi,ecx ;ᤢ¨£ ¥¬ 㪠§ ⥫ì á ª®¯¨à㥬묨 ¤ 묨, á ãç¥â®¬ ¯à®¯ã襮© ç á⨠|
xor ecx,ecx ;®¡ã«ï¥¬ ª®®à¤¨ âã coord_y |
2521,12 → 2531,11 |
cmp ecx,0 |
jge @f |
neg ecx |
;inc ecx |
cmp eax,ecx ;eax - è¨à¨ ª®¯¨à㥬®© ª à⨪¨ |
jle .copy_end ;¥á«¨ ª®¯¨à㥬®¥ ¨§®¡à ¦¥¨¥ 室¨âáï ¯®«®áâìî § «¥¢®© £à ¨æ¥© ¡ãä¥à (coord_x<0 ¨ |coord_x|>buf_source.w) |
mov [lost_bytes],ecx |
sub eax,ecx ;㪮à 稢 ¥¬ ª®¯¨à㥬ãî áâபã |
add ebx,ecx ;㤫¨ï¥¬ áâப㠤«ï ᤢ¨£ £« ¢®© ª à⨪¨ ¡ãä¥à |
mov [lost_bytes],ecx |
add esi,ecx |
lea ecx,[ecx+ecx*2] |
add edi,ecx ;edi 㪠§ â¥«ì ¤ ë¥ ¡ãä¥à , ªã¤ ¡ã¤¥â ¯à®¨§¢®¤¨âáï ª®¯¨à®¢ ¨¥ |
/programs/media/voxel_editor/utilites/Tupfile.lua |
---|
1,2 → 1,3 |
if tup.getconfig("NO_FASM") ~= "" then return end |
tup.foreach_rule({"vox_creator.asm", "vox_mover.asm", "vox_tgl.asm"}, "fasm %f %o " .. tup.getconfig("KPACK_CMD"), "%B") |
tup.rule("echo lang fix " .. ((tup.getconfig("LANG") == "") and "en" or tup.getconfig("LANG")) .. " > lang.inc", {"lang.inc"}) |
tup.foreach_rule({"vox_creator.asm", "vox_mover.asm", "vox_tgl.asm", extra_inputs = {"lang.inc"}}, "fasm %f %o " .. tup.getconfig("KPACK_CMD"), "%B") |
/programs/media/voxel_editor/utilites/build_en.bat |
---|
0,0 → 1,10 |
if not exist bin mkdir bin |
@erase lang.inc |
@echo lang fix en >lang.inc |
@fasm.exe -m 16384 vox_creator.asm bin\vox_creator.kex |
@kpack bin\vox_creator.kex |
@fasm.exe -m 16384 vox_mover.asm bin\vox_mover.kex |
@kpack bin\vox_mover.kex |
@fasm.exe -m 16384 vox_tgl.asm bin\vox_tgl.kex |
@kpack bin\vox_tgl.kex |
pause |
/programs/media/voxel_editor/utilites/build_ru.bat |
---|
1,6 → 1,6 |
if not exist bin mkdir bin |
if not exist bin\buf2d.obj @fasm.exe -m 16384 ..\..\..\develop\libraries\TinyGL\asm_fork\tinygl.asm bin\tinygl.obj |
@kpack bin\tinygl.obj |
@erase lang.inc |
@echo lang fix ru >lang.inc |
@fasm.exe -m 16384 vox_creator.asm bin\vox_creator.kex |
@kpack bin\vox_creator.kex |
@fasm.exe -m 16384 vox_mover.asm bin\vox_mover.kex |
/programs/media/voxel_editor/utilites/vox_creator.asm |
---|
8,6 → 8,7 |
include '../../../../programs/KOSfuncs.inc' |
include '../../../../programs/load_img.inc' |
include '../trunk/str.inc' |
include 'lang.inc' |
vox_offs_tree_table equ 4 |
vox_offs_data equ 12 |
15,7 → 16,11 |
include '../trunk/vox_rotate.inc' |
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load |
caption db 'Voxel creator 22.03.18',0 ;¯®¤¯¨áì ®ª |
if lang eq ru |
caption db '®§¤ â¥«ì ¢®ªá¥«¥© 04.05.20',0 ;¯®¤¯¨áì ®ª |
else |
caption db 'Voxel creator 04.05.20',0 |
end if |
BUF_STRUCT_SIZE equ 21 |
buf2d_data equ dword[edi] ;¤ ë¥ ¡ãä¥à ¨§®¡à ¦¥¨ï |
27,14 → 32,16 |
buf2d_color equ dword[edi+16] ;梥â ä® ¡ãä¥à |
buf2d_bits equ byte[edi+20] ;ª®«¨ç¥á⢮ ¡¨â ¢ 1-© â®çª¥ ¨§®¡à ¦¥¨ï |
vox_offs_tree_table equ 4 |
vox_offs_data equ 12 |
run_file_70 FileInfoBlock |
vox_obj_size dd 0 ;à §¬¥à ¢®ªá¥«ì®£® ®¡ê¥ªâ (¤«ï ãáª®à¥¨ï ¢áâ ¢ª¨) |
txt_space db ' ',0 |
if lang eq ru |
txt_pref db ' ¡ ',0,' ¡',0,' ¡',0,' ¡',0 ;¯à¨áâ ¢ª¨: ª¨«®, ¬¥£ , £¨£ |
txt_f_size: db ' §¬¥à: ' |
else |
txt_pref db ' b ',0,' Kb',0,' Mb',0,' Gb',0 ;¯à¨áâ ¢ª¨: ª¨«®, ¬¥£ , £¨£ |
txt_f_size: db 'Size: ' |
end if |
.size: rb 16 |
IMAGE_TOOLBAR_ICON_SIZE equ 16*16*3 |
469,42 → 476,52 |
cmp ah,3 |
jne @f |
call but_new_file |
jmp still |
@@: |
cmp ah,4 |
jne @f |
call but_open_file |
call but_open_file ;®âªàë⨥ ¢®ªá¥«ì®£® ä ©« |
jmp still |
@@: |
cmp ah,5 |
jne @f |
call but_save_file |
jmp still |
@@: |
cmp ah,6 |
jne @f |
call but_1 |
jmp still |
@@: |
cmp ah,7 |
jne @f |
call but_2 |
jmp still |
@@: |
cmp ah,8 |
jne @f |
call but_3 |
jmp still |
@@: |
cmp ah,9 |
jne @f |
stdcall but_run, 0 |
jmp still |
@@: |
cmp ah,10 |
jne @f |
stdcall but_run, 1 |
jmp still |
@@: |
cmp ah,11 |
jne @f |
call but_5 |
call but_stop |
jmp still |
@@: |
cmp ah,12 |
jne @f |
call but_rot_z |
jmp still |
@@: |
cmp ah,1 |
jne still |
769,7 → 786,7 |
k_scale dd 0 |
n_plane dd 0 |
calc db 0 |
calc db 0 ;¥á«¨ =1, â® ¨¤¥â ᮧ¤ ¨¥ ®¡ê¥ªâ |
; ᮧ¤ ¨¥ ¢®ªá¥«ï ¢ 3 íâ ¯ : |
; 1) ¨é¥¬ ¬¥áâ® ¢ áâàãªâãॠ¤¥à¥¢ , ªã¤ ¤® ¢áâ ¢¨âì (¥á«¨ ¢¥â¢ì áãé¥áâ¢ã¥â, 2-© íâ ¯ ¯à®¯ã᪠¥¬) |
988,7 → 1005,6 |
ret |
endp |
; |
;output: |
; eax - à §¬¥à ¢ ¡ ©â å § ¨¬ ¥¬ë© ®¡ê¥ªâ®¬ v_obj |
align 4 |
1080,8 → 1096,9 |
ret |
endp |
;¯à¥ªà â¨âì ᮧ¤ ¨¥ ®¡ê¥ªâ |
align 4 |
but_5: |
but_stop: |
cmp byte[calc],0 |
je @f |
call draw_object |
1131,6 → 1148,9 |
stdcall dword[img_decode], dword[open_file_img],ebx,0 |
or eax,eax |
jz .end_0 ;¥á«¨ àãè¥ ä®à¬ â ä ©« |
mov ebx,[eax+4] ;+4 = image width |
cmp ebx,[eax+8] ;+8 = image height |
jne .err_s0 |
mov ebx,eax |
;¯à¥®¡à §ã¥¬ ¨§®¡à ¦¥¨¥ ª ä®à¬ âã rgb |
stdcall dword[img_to_rgb2], ebx,dword[open_file_img] |
1139,11 → 1159,11 |
cmp buf2d_data,0 |
jne @f |
m2m buf2d_w,dword[ebx+4] ;+4 = image width |
m2m buf2d_h,dword[ebx+8] ;+8 = image heihht |
m2m buf2d_h,dword[ebx+8] ;+8 = image height |
stdcall [buf2d_create_f_img], edi,[open_file_img] |
jmp .end_1 |
@@: |
mov ecx,dword[ebx+8] |
mov ecx,[ebx+8] |
stdcall [buf2d_resize], edi, [ebx+4],ecx,1 ;¨§¬¥ï¥¬ à §¬¥àë ¡ãä¥à |
imul ecx,[ebx+4] |
lea ecx,[ecx+ecx*2] |
1151,8 → 1171,11 |
mov esi,[open_file_img] |
cld |
rep movsb ;copy image |
jmp .end_1 |
.err_s0: ;®è¨¡ª , ¨§®¡à ¦¥¨¥ ¤«ï ¯à¥®¡à §®¢ ¨ï ¥ ¯®¤å®¤¨â (¥ ª¢ ¤à ⮥) |
mov ebx,eax |
notify_window_run txt_img_not_square |
.end_1: |
;㤠«ï¥¬ ¢à¥¬¥ë© ¡ãä¥à ¢ ebx |
stdcall dword[img_destroy], ebx |
.end_0: |
1199,6 → 1222,8 |
db ' ªàëâì',0 |
db 0 |
txt_img_not_square db '"¨¬ ¨¥',13,10,'âªàë¢ ¥¬®¥ ¨§®¡à ¦¥¨¥ ¥ ª¢ ¤à ⮥" -tW',0 |
;¤ ë¥ ¤«ï ¤¨ «®£ ®âªàëâ¨ï ä ©«®¢ |
align 4 |
OpenDialog_data: |
1244,29 → 1269,40 |
head_f_i: |
head_f_l db '¨á⥬ ï ®è¨¡ª ',0 |
system_dir_0 db '/sys/lib/' |
lib_name_0 db 'proc_lib.obj',0 |
err_message_found_lib_0 db '¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'proc_lib.obj',39,0 |
err_message_import_0 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'proc_lib.obj',39,0 |
system_dir_1 db '/sys/lib/' |
lib_name_1 db 'libimg.obj',0 |
err_message_found_lib_1 db '¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'libimg.obj',39,0 |
err_message_import_1 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'libimg.obj',39,0 |
system_dir_2 db '/sys/lib/' |
lib_name_2 db 'buf2d.obj',0 |
err_msg_found_lib_2 db '¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'buf2d.obj',39,0 |
err_msg_import_2 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'buf2d',39,0 |
system_dir_3 db '/sys/lib/' |
lib_name_3 db 'msgbox.obj',0 |
err_msg_found_lib_3 db '¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'msgbox.obj',39,0 |
err_msg_import_3 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'msgbox',39,0 |
align 4 |
head_f_i: |
if lang eq ru |
head_f_l db '"¨á⥬ ï ®è¨¡ª ',0 |
err_message_found_lib_0 db '¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'proc_lib.obj',39,'" -tE',0 |
err_message_import_0 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'proc_lib.obj',39,'" -tE',0 |
err_message_found_lib_1 db '¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'libimg.obj',39,'" -tE',0 |
err_message_import_1 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'libimg.obj',39,'" -tE',0 |
err_msg_found_lib_2 db '¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'buf2d.obj',39,'" -tE',0 |
err_msg_import_2 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'buf2d',39,'" -tE',0 |
err_msg_found_lib_3 db '¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'msgbox.obj',39,'" -tE',0 |
err_msg_import_3 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'msgbox',39,'" -tE',0 |
else |
head_f_l db '"System error',0 |
err_message_found_lib_0 db 'Sorry I cannot found library ',39,'proc_lib.obj',39,'" -tE',0 |
err_message_import_0 db 'Error on load import library ',39,'proc_lib.obj',39,'" -tE',0 |
err_message_found_lib_1 db 'Sorry I cannot found library ',39,'libimg.obj',39,'" -tE',0 |
err_message_import_1 db 'Error on load import library ',39,'libimg.obj',39,'" -tE',0 |
err_msg_found_lib_2 db 'Sorry I cannot found library ',39,'buf2d.obj',39,'" -tE',0 |
err_msg_import_2 db 'Error on load import library ',39,'buf2d',39,'" -tE',0 |
err_msg_found_lib_3 db 'Sorry I cannot found library ',39,'msgbox.obj',39,'" -tE',0 |
err_msg_import_3 db 'Error on load import library ',39,'msgbox',39,'" -tE',0 |
end if |
align 4 |
l_libs_start: |
lib_0 l_libs lib_name_0, sys_path, file_name, system_dir_0,\ |
err_message_found_lib_0, head_f_l, proclib_import,err_message_import_0, head_f_i |
1419,7 → 1455,7 |
; amb_reinit db 'mb_reinit',0 |
; amb_setfunctions db 'mb_setfunctions',0 |
mouse_dd dd 0x0 |
mouse_dd dd 0 |
sc system_colors |
last_time dd 0 |
1444,6 → 1480,7 |
.color: dd 0 ;+16 color |
db 32 ;+20 bit in pixel |
;⥪áâãà 1 (¢¥àåïï) |
align 4 |
buf_i0: dd 0 |
dw 5 ;+4 left |
1453,6 → 1490,7 |
.color: dd 0 ;+16 color |
db 24 ;+20 bit in pixel |
;⥪áâãà 2 |
align 4 |
buf_i1: dd 0 |
dw 105 ;+4 left |
1462,6 → 1500,7 |
.color: dd 0 ;+16 color |
db 24 ;+20 bit in pixel |
;⥪áâãà 3 |
align 4 |
buf_i2: dd 0 |
dw 205 ;+4 left |
1471,6 → 1510,10 |
.color: dd 0 ;+16 color |
db 24 ;+20 bit in pixel |
; «£®à¨â¬ ᮧ¤ ¨ï ¬®¤¥«¨ ¨á¯®«ì§ã¥â 3 á¥ç¥¨ï: |
; ¯à¥¤ë¤ã饥, ⥪ã饥, ¯®á«¥¤ãî饥 (íâ® ¥®¡å®¤¨¬® ¤«ï ®âᥨ¢ ¨ï ¢®ªá¥«¥© ¢ãâਠ®¡ê¥ªâ ) |
;¯à¥¤ë¤ã饥 á¥ç¥¨¥ |
align 4 |
buf_npl_p: dd 0 |
dw 0 ;+4 left |
1480,6 → 1523,7 |
.color: dd 0 ;+16 color |
db 24 ;+20 bit in pixel |
;⥪ã饥 á¥ç¥¨¥ |
align 4 |
buf_npl: dd 0 |
dw 5 ;+4 left |
1489,6 → 1533,7 |
.color: dd 0 ;+16 color |
db 24 ;+20 bit in pixel |
;¯®á«¥¤ãî饥 á¥ç¥¨¥ |
align 4 |
buf_npl_n: dd 0 |
dw 0 ;+4 left |
/programs/media/voxel_editor/utilites/vox_mover.asm |
---|
10,9 → 10,14 |
include '../trunk/vox_draw.inc' |
include '../trunk/vox_rotate.inc' |
include '../trunk/str.inc' |
include 'lang.inc' |
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load |
caption db 'Voxel mover 22.03.18',0 ;¯®¤¯¨áì ®ª |
if lang eq ru |
caption db '¥à¥¬¥é¥¨¥ ¢®ªá¥«¥© 04.05.20',0 ;¯®¤¯¨áì ®ª |
else |
caption db 'Voxel mover 04.05.20',0 |
end if |
run_file_70 FileInfoBlock |
518,80 → 523,98 |
stdcall but_new_file, [open_file_vox] |
call draw_objects |
call draw_pok |
jmp still |
@@: |
cmp ah,4 |
jne @f |
call but_open_file |
jmp still |
@@: |
cmp ah,5 |
jne @f |
call but_save_file |
jmp still |
@@: |
cmp ah,6 |
jne @f |
call but_zoom_p |
jmp still |
@@: |
cmp ah,7 |
jne @f |
call but_zoom_m |
jmp still |
@@: |
cmp ah,8 |
jne @f |
call but_3 |
jmp still |
@@: |
cmp ah,9 |
jne @f |
call but_4 |
jmp still |
@@: |
cmp ah,10 |
jne @f |
call but_plane_inc |
jmp still |
@@: |
cmp ah,11 |
jne @f |
call but_plane_dec |
jmp still |
@@: |
cmp ah,12 |
jne @f |
call but_light |
jmp still |
@@: |
cmp ah,13 |
jne @f |
call but_rend_2_2 |
jmp still |
@@: |
cmp ah,14 |
jne @f |
call but_move |
jmp still |
@@: |
cmp ah,15 |
jne @f |
dec dword[mov_x] |
call draw_pok |
jmp still |
@@: |
cmp ah,16 |
jne @f |
inc dword[mov_x] |
call draw_pok |
jmp still |
@@: |
cmp ah,17 |
jne @f |
dec dword[mov_y] |
call draw_pok |
jmp still |
@@: |
cmp ah,18 |
jne @f |
inc dword[mov_y] |
call draw_pok |
jmp still |
@@: |
cmp ah,19 |
jne @f |
dec dword[mov_z] |
call draw_pok |
jmp still |
@@: |
cmp ah,20 |
jne @f |
inc dword[mov_z] |
call draw_pok |
jmp still |
@@: |
cmp ah,1 |
jne still |
633,8 → 656,8 |
align 4 |
but_open_file: |
copy_path open_dialog_name,communication_area_default_path,file_name,0 |
pushad |
copy_path open_dialog_name,communication_area_default_path,file_name,0 |
mov [OpenDialog_data.type],0 |
stdcall [OpenDialog_Start],OpenDialog_data |
cmp [OpenDialog_data.status],2 |
676,8 → 699,8 |
align 4 |
but_save_file: |
pushad |
copy_path open_dialog_name,communication_area_default_path,file_name,0 |
pushad |
mov [OpenDialog_data.type],1 |
stdcall [OpenDialog_Start],OpenDialog_data |
cmp [OpenDialog_data.status],2 |
1133,6 → 1156,7 |
dd 1 shl 31,1 shl 30,1 shl 30,1 shl 30,1 shl 31 |
rd 999 ;32*32-25 |
if lang eq ru |
txt_zoom db ' áèâ ¡:',0 |
txt_curor: db 'ãàá®à: ' |
.size: rb 10 |
1139,6 → 1163,14 |
txt_n_plane db '¥ç¥¨¥:',0 |
txt_color db '¢¥â:',0 |
txt_mov_offs: db '¬¥é¥¨¥: ' |
else |
txt_zoom db 'Scale:',0 |
txt_curor: db 'Cursor: ' |
.size: rb 10 |
txt_n_plane db 'Section:',0 |
txt_color db 'Color:',0 |
txt_mov_offs: db 'Offset: ' |
end if |
.size: rb 30 |
txt_mull db '*',0 |
txt_space db ' ',0 |
1292,30 → 1324,39 |
db 0 |
head_f_i: |
head_f_l db '¨á⥬ ï ®è¨¡ª ',0 |
system_dir_0 db '/sys/lib/' |
lib_name_0 db 'proc_lib.obj',0 |
err_message_found_lib_0 db '¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'proc_lib.obj',39,0 |
err_message_import_0 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'proc_lib.obj',39,0 |
system_dir_1 db '/sys/lib/' |
lib_name_1 db 'libimg.obj',0 |
err_message_found_lib_1 db '¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'libimg.obj',39,0 |
err_message_import_1 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'libimg.obj',39,0 |
system_dir_2 db '/sys/lib/' |
lib_name_2 db 'buf2d.obj',0 |
err_msg_found_lib_2 db '¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'buf2d.obj',39,0 |
err_msg_import_2 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'buf2d',39,0 |
system_dir_3 db '/sys/lib/' |
lib_name_3 db 'libini.obj',0 |
err_msg_found_lib_3 db '¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'libini.obj',39,0 |
err_msg_import_3 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'libini',39,0 |
align 4 |
head_f_i: |
if lang eq ru |
head_f_l db '"¨á⥬ ï ®è¨¡ª ',0 |
err_message_found_lib_0 db '¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'proc_lib.obj',39,'" -tE',0 |
err_message_import_0 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'proc_lib.obj',39,'" -tE',0 |
err_message_found_lib_1 db '¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'libimg.obj',39,'" -tE',0 |
err_message_import_1 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'libimg.obj',39,'" -tE',0 |
err_msg_found_lib_2 db '¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'buf2d.obj',39,'" -tE',0 |
err_msg_import_2 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'buf2d',39,'" -tE',0 |
err_msg_found_lib_3 db '¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'libini.obj',39,'" -tE',0 |
err_msg_import_3 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'libini',39,'" -tE',0 |
else |
head_f_l db '"System error',0 |
err_message_found_lib_0 db 'Sorry I cannot found library ',39,'proc_lib.obj',39,'" -tE',0 |
err_message_import_0 db 'Error on load import library ',39,'proc_lib.obj',39,'" -tE',0 |
err_message_found_lib_1 db 'Sorry I cannot found library ',39,'libimg.obj',39,'" -tE',0 |
err_message_import_1 db 'Error on load import library ',39,'libimg.obj',39,'" -tE',0 |
err_msg_found_lib_2 db 'Sorry I cannot found library ',39,'buf2d.obj',39,'" -tE',0 |
err_msg_import_2 db 'Error on load import library ',39,'buf2d',39,'" -tE',0 |
err_msg_found_lib_3 db 'Sorry I cannot found library ',39,'libini.obj',39,'" -tE',0 |
err_msg_import_3 db 'Error on load import library ',39,'libini',39,'" -tE',0 |
end if |
l_libs_start: |
lib0 l_libs lib_name_0, sys_path, file_name, system_dir_0,\ |
err_message_found_lib_0, head_f_l, proclib_import,err_message_import_0, head_f_i |
1469,7 → 1510,7 |
aini_get_int db 'ini_get_int',0 |
aini_get_color db 'ini_get_color',0 |
mouse_dd dd 0x0 |
mouse_dd dd 0 |
sc system_colors |
align 16 |
/programs/media/voxel_editor/utilites/vox_tgl.asm |
---|
10,9 → 10,14 |
include '../../../../programs/develop/libraries/TinyGL/asm_fork/opengl_const.inc' |
include 'vox_3d.inc' |
include '../trunk/str.inc' |
include 'lang.inc' |
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load |
caption db 'Voxel viewer 22.03.18',0 ;¯®¤¯¨áì ®ª |
if lang eq ru |
caption db 'à®á¬®âà ¢®ªá¥«¥© 04.05.20',0 ;¯®¤¯¨áì ®ª |
else |
caption db 'Voxel viewer 04.05.20',0 |
end if |
3d_wnd_l equ 5 ;®âáâ㯠¤«ï tinygl ¡ãä¥à á«¥¢ |
3d_wnd_t equ 30 ;®âáâ㯠¤«ï tinygl ¡ãä¥à ᢥàåã |
355,42 → 360,52 |
cmp ah,3 |
jne @f |
call but_new_file |
jmp still |
@@: |
cmp ah,4 |
jne @f |
call but_open_file |
jmp still |
@@: |
cmp ah,5 |
jne @f |
call but_save_file |
jmp still |
@@: |
cmp ah,6 |
jne @f |
call but_zoom_p |
jmp still |
@@: |
cmp ah,7 |
jne @f |
call but_zoom_m |
jmp still |
@@: |
cmp ah,8 |
jne @f |
call but_3 |
call but_light |
jmp still |
@@: |
cmp ah,9 |
jne @f |
call but_4 |
jmp still |
@@: |
cmp ah,10 |
jne @f |
call but_5 |
jmp still |
@@: |
cmp ah,11 |
jne @f |
call but_6 |
call but_info |
jmp still |
@@: |
cmp ah,12 |
jne @f |
call but_draw_cadr |
jmp still |
@@: |
cmp ah,1 |
jne still |
417,8 → 432,8 |
align 4 |
but_open_file: |
copy_path open_dialog_name,communication_area_default_path,file_name,0 |
pushad |
copy_path open_dialog_name,communication_area_default_path,file_name,0 |
mov [OpenDialog_data.type],0 |
stdcall [OpenDialog_Start],OpenDialog_data |
cmp [OpenDialog_data.status],2 |
564,8 → 579,8 |
align 4 |
but_save_file: |
copy_path open_dialog_name,communication_area_default_path,file_name,0 |
pushad |
copy_path open_dialog_name,communication_area_default_path,file_name,0 |
mov [OpenDialog_data.type],1 |
stdcall [OpenDialog_Start],OpenDialog_data |
cmp [OpenDialog_data.status],2 |
618,7 → 633,7 |
endp |
align 4 |
proc but_3 uses eax ebx ecx edx |
proc but_light uses eax ebx ecx edx |
xor word[opt_light],1 |
cmp word[opt_light],0 |
je @f |
652,7 → 667,7 |
endp |
align 4 |
proc but_6 uses eax ebx ecx edx edi |
proc but_info uses eax ebx ecx edx edi |
;¢ëç¨á«¥¨¥ áâ â¨á⨪¨ ¯® ¢®ªá¥«ï¬ |
mov eax,[open_file_ogl] |
or eax,eax |
707,10 → 722,17 |
align 4 |
txt_stat_m1: |
if lang eq ru |
db 'â â¨á⨪ ',13,10,'®ªá¥«¥©: ' |
.v: rb 70 |
txt_stat_m2: |
db 13,10,'â®¡à ¦ ¥¬ëå £à ¥©: ' |
else |
db 'Statistics',13,10,'Voxels: ' |
.v: rb 70 |
txt_stat_m2: |
db 13,10,'Facets displayed: ' |
end if |
.v: rb 20 |
align 4 |
842,29 → 864,39 |
head_f_i: |
head_f_l db '¨á⥬ ï ®è¨¡ª ',0 |
system_dir_0 db '/sys/lib/' |
lib_name_0 db 'proc_lib.obj',0 |
err_message_found_lib_0 db '¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'proc_lib.obj',39,0 |
err_message_import_0 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'proc_lib.obj',39,0 |
system_dir_1 db '/sys/lib/' |
lib_name_1 db 'libimg.obj',0 |
err_message_found_lib_1 db '¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'libimg.obj',39,0 |
err_message_import_1 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'libimg.obj',39,0 |
system_dir_2 db '/sys/lib/' |
lib_name_2 db 'buf2d.obj',0 |
err_msg_found_lib_2 db '¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'buf2d.obj',39,0 |
err_msg_import_2 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'buf2d',39,0 |
system_dir_3 db '/sys/lib/' |
lib_name_3 db 'tinygl.obj',0 |
err_msg_found_lib_3 db '¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'tinygl.obj',39,0 |
err_msg_import_3 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'tinygl',39,0 |
align 4 |
head_f_i: |
if lang eq ru |
head_f_l db '"¨á⥬ ï ®è¨¡ª ',0 |
err_message_found_lib_0 db '¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'proc_lib.obj',39,'" -tE',0 |
err_message_import_0 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'proc_lib.obj',39,'" -tE',0 |
err_message_found_lib_1 db '¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'libimg.obj',39,'" -tE',0 |
err_message_import_1 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'libimg.obj',39,'" -tE',0 |
err_msg_found_lib_2 db '¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'buf2d.obj',39,'" -tE',0 |
err_msg_import_2 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'buf2d',39,'" -tE',0 |
err_msg_found_lib_3 db '¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'tinygl.obj',39,'" -tE',0 |
err_msg_import_3 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'tinygl',39,'" -tE',0 |
else |
head_f_l db '"System error',0 |
err_message_found_lib_0 db 'Sorry I cannot found library ',39,'proc_lib.obj',39,'" -tE',0 |
err_message_import_0 db 'Error on load import library ',39,'proc_lib.obj',39,'" -tE',0 |
err_message_found_lib_1 db 'Sorry I cannot found library ',39,'libimg.obj',39,'" -tE',0 |
err_message_import_1 db 'Error on load import library ',39,'libimg.obj',39,'" -tE',0 |
err_msg_found_lib_2 db 'Sorry I cannot found library ',39,'buf2d.obj',39,'" -tE',0 |
err_msg_import_2 db 'Error on load import library ',39,'buf2d',39,'" -tE',0 |
err_msg_found_lib_3 db 'Sorry I cannot found library ',39,'tinygl.obj',39,'" -tE',0 |
err_msg_import_3 db 'Error on load import library ',39,'tinygl',39,'" -tE',0 |
end if |
l_libs_start: |
lib_0 l_libs lib_name_0, sys_path, file_name, system_dir_0,\ |
err_message_found_lib_0, head_f_l, proclib_import,err_message_import_0, head_f_i |
/programs/other/t_edit_synt/te_data.inc |
---|
267,8 → 267,12 |
;conv_tabl rb 128 ;â ¡«¨æ ¤«ï ª®¢¥àâ¨à®¢ ¨ï scan-ª®¤ ¢ ascii-ª®¤ |
buf db BUF_SIZE dup(0) ;¡ãä¥à ¤«ï ª®¯¨à®¢ ¨ï | ¢áâ ¢ª¨ |
capt_header db 'macro wo txt,f1,p1,p2,p3{',13 |
db '@@: db txt',13,'rb @b+40-$',13,'dd f1+0',13,'db p1',13,'dw p2+0',13,'db p3',13,'}',13 |
capt_header db 'macro wo txt,lf1,p1,p2,p3{',13 |
db '@@: db txt',13,'rb @b+40-$',13 |
db 'if lf1 eq',13,'dd 0',13 ;¥á«¨ áá뫪 f1 ¯ãáâ ï |
db 'else if lf1 eq 0',13,'dd 0',13 ;¥á«¨ áá뫪 f1 à ¢ 0 |
db 'else',13,'dd f1.#lf1-f1',13,'end if',13 ;¥á«¨ áá뫪 f1 § ¤ ¬¥âª®© |
db 'db p1',13,'dw p2+0',13,'db p3',13,'}',13 |
db 'count_colors_text dd (text-color_wnd_text)/4',13 |
db 'count_key_words dd (f1-text)/48',13,0 |
col_1 db 'color_cursor dd ',0 ;+ 98 梥⠪ãàá®à |
286,9 → 290,7 |
capt_type_dd db 9,'dd ',0 |
capt_lbl_f1 db 'f1: db 0',13,0 |
capt_end_word_f1 db 39,',0',13,0 |
capt_calc_f1 db 'f1' |
capt_point db '.',0 |
capt_lbl_f1_use db '-f1',0 |
capt_null db '0',0 |
KM_SHIFT equ 0x00010000 |
/programs/other/t_edit_synt/te_syntax.asm |
---|
56,8 → 56,13 |
copy_path fn_syntax_dir,sys_path,file_name,0 ;¡¥à¥¬ ¯ãâì ª ¯ ¯ª¥ á ä ©« ¬¨ á¨â ªá¨á |
mcall SF_FILE,tree_file_struct |
cmp ebx,0 |
jle .end_dir_init |
cmp ebx,2 |
jg @f |
notify_window_run file_name ;á®®¡é¥¨¥ ¥á«¨ ¥ 㤠«®áì ®âªàëâì ä ©«ë |
jmp .end_dir_init |
@@: |
;cmp ebx,0 |
;jle .end_dir_init |
mov eax,dir_mem+32+40 |
mov ecx,ebx |
@@: |
353,7 → 358,7 |
;@@: |
ret |
hed db 'TextEditor syntax file converter 29.01.19',0 ;¯®¤¯¨áì ®ª |
hed db 'TextEditor syntax file converter 06.02.20',0 ;¯®¤¯¨áì ®ª |
conv_tabl rb 128 ; â ¡«¨æ ¤«ï ª®¢¥àâ¨à®¢ ¨ï scan-ª®¤ ¢ ascii-ª®¤ |
txt_load_f db ' £à. ä ©«',0 |
/programs/other/t_edit_synt/te_work.inc |
---|
246,9 → 246,7 |
cmp dword[ecx+TexColViv.f1],0 |
je @f |
stdcall str_cat,edi,capt_calc_f1 |
stdcall str_cat_value,edi,[index] |
stdcall str_cat,edi,capt_lbl_f1_use |
@@: |
stdcall str_len,edi |
322,6 → 320,8 |
stdcall str_len,esi |
mov ecx,eax |
mov edi,[out_text] |
or ecx,ecx |
jz .end_copy ;åñëè ñòðîêà ñî ñïðàâêîé ïóñòàß |
.copy: |
mov al,byte[esi] |