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> |