Files
kolibrios/programs/develop/libraries/buf2d/about.htm
T
ace-dent e05b57a95e develop/libraries: Post-SVN tidy (#436)
- Move source code from `trunk` into root directory for each library.
- Update build files and ASM include paths. Add SPDX license header where appropriate.
- Note: Line endings standardised from `CRLF` > `LF`, so best to view diffs with whitespace changes hidden.

(Work towards #75, point 3)

Reviewed-on: KolibriOS/kolibrios#436
Reviewed-by: Burer <burer@kolibrios.org>
Reviewed-by: Ivan B <1+dunkaist@noreply.localhost>
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Co-authored-by: Andrew <dent.ace@gmail.com>
Co-committed-by: Andrew <dent.ace@gmail.com>
2026-04-25 09:20:05 +00:00

499 lines
26 KiB
HTML

<html>
<head>
<title>сшсышюЄхър фы  ЁрсюЄ√ ё 2d сєЇхЁрьш</title>
<meta 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>╬уыртыхэшх</h1>
<ul>
<li>┬ёЄєяыхэшх</li>
<li><a href="#format_buf">╘юЁьрЄ√ сєЇхЁют</a></li>
<li><a href="#fun">╘єэъЎшш</a><br>
<ul>
<li><a href="#f_init">lib_init</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>
<li><a href="#tabl_e">╥рсышЎр ¤ъёяюЁЄр</a></li>
<li><a href="#hist">╚ёЄюЁш </a></li>
</ul>
<h1>┬ёЄєяыхэшх</h1>
<p>─юъєьхэЄрЎш  ъ ётюсюфэющ сшсышюЄхъх <b>buf2d.asm</b>, фы  <b>╬╤ ╩юышсЁш</b>.
▌Єр сшсышюЄхър ёючфрэр фы  ЁрсюЄ√ ё 2d шчюсЁрцхэш ьш.
╤ хх яюью∙№■ ьюцэю ёючфртрЄ№ сєЇхЁр ё шчюсЁрцхэш ьш т ярь Єш, ш яЁш эхюсїюфшьюёЄш т√тюфшЄ№ шї эр ¤ъЁрэ.
╚чюсЁрцхэш  ьюцэю эръырф√трЄ№ юфэю эр фЁєуюх, яюффхЁцштрхЄё  ЁрсюЄр ё яЁючЁрўэ√ьш шчюсЁрцхэш ьш.
┼ёЄ№ ЇєэъЎшш Ёшёютрэш  ышэшщ, ъЁшт√ї ┴хч№х, яЁ ьюєуюы№эшъют, юъЁєцэюёЄхщ.
╥ръцх хёЄ№ ЇєэъЎшш фы  Ёшёютрэшщ тюъёхы№эющ уЁрЇшъш.</p>
<p>╧юёыхфэхх юсэютыхэшх сшсышюЄхъш 09.02.16.</p>
<h1><a name="format_buf">╘юЁьрЄ√ сєЇхЁют</a></h1>
<p>╧юффхЁцштрхЄё  3 ЇюЁьрЄр сєЇхЁют.
╩рцфр  ЇєэъЎш  яЁш ЁрсюЄх ё сєЇхЁрьш ьюцхЄ с√Є№ ЁрёўшЄрэр эр ЁрсюЄє ё юяЁхфхыхээ√ьш ЇюЁьрЄрьш шчюсЁрцхэшщ.</p>
<h4>8 сшЄ</h4>
<p>╤юцхЁцшЄ ры№Їр ърэры <b>a</b> (яЁючЁрўэюёЄ№) шчюсЁрцхэш . ═р ¤ъЁрэ эх т√тюфшЄё . ╚ёяюы№чєхЄё  фы  ёючфрэ  32-сшЄэ√ї сєЇхЁют.</p>
<h4>24 сшЄ</h4>
<p>─рээ√щ сєЇхЁ ёюфхЁцшЄ шчюсЁрцхэшх т ЇюЁьрЄх <b>rgb</b>. ╠юцхЄ т√тюфшЄё  эр ¤ъЁрэ.</p>
<h4>32 сшЄ</h4>
<p>╤юфхЁцшЄ яЁючЁрўэюх шчюсЁрцхэшх т ЇюЁьрЄх <b>rgba</b>. ═р ¤ъЁрэ эх т√тюфшЄё . ╚ёяюы№чєхЄё  фы  эрыюцхэш  шчюсЁрцхэшщ. ┼ёыш <b>a=255</b> Єю яшъёхы№ яЁючЁрўэ√щ, хёыш <b>0</b> эх яЁючЁрўэ√щ.</p>
<h1><a name="fun">╘єэъЎшш</a></h1>
<p>╧юўЄш тёх ЇєэъЎшш 1-ь ярЁрьхЄЁюь яЁшэшьр■Є єърчрЄхы№ эр ёЄЁєъЄєЁє сєЇхЁр,
шч ъюЄюЁющ ьюуєЄ шёяюы№чютрЄ№ё  ярЁрьхЄЁ√, эєцэ√х фы  ЁрсюЄ√ ъюэъЁхЄэющ ЇєэъЎшш.
╧ЁшьхЁ ёЄЁєъЄєЁ√ сєЇхЁр шчюсЁрцхэш :</p>
<pre>align 4
buf_0:
dd 0 ;+ 0 єърчрЄхы№ эр сєЇхЁ шчюсЁрцхэш 
dw 100 ;+ 4 юЄёЄєя ёыхтр
dw 10 ;+ 6 юЄёЄєя ёяЁртр
dd 150 ;+ 8 °шЁшэр
dd 100 ;+12 т√ёюЄр
dd 0x80 ;+16 Їюэют√щ ЎтхЄ
db 24 ;+20 сшЄ эр яшъёхы№</pre>
<h4><a name="f_init">lib_init</a></h4>
<p>▌Єр ЇєэъЎш  яюыєўрхЄ єърчрЄхыш эр ЇєэъЎшш ЁрсюЄ√ ё ярь Є№■, т√ч√трЄё  фюыцэр яЁш чруЁєчъх сшсышюЄхъш. ╠юцхЄх шёяюы№чютрЄ№ ьръЁюё <b>@use_library_mem</b>, фы  хх ртЄюьрЄшўхёъющ эрёЄЁющъш.</p>
<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_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_clear">buf2d_clear</a></h4>
<p>╫шёЄшЄ сєЇхЁ єърчрэ√ь ЎтхЄюь. ╧ЁшьхЁ:</p>
<pre>buf2d_color equ dword[edi+16] ;ЎтхЄ Їюэр сєЇхЁр
mov edi,buf_0
stdcall [buf2d_clear], edi, buf2d_color ;юўш∙рхь ¤ъЁрэ Їюэют√ь ЎтхЄюь</pre>
<p>уфх buf_0 - ёЄЁєъЄєЁр сєЇхЁр.</p>
<h4><a name="f_draw">buf2d_draw</a></h4>
<p>╨шёєхЄ сєЇхЁ эр ¤ъЁрэх (ЁрсюЄрхЄ ўхЁхч ёшёЄхьэє■ Ї. 7). ╨шёє■Єё  Єюы№ъю сєЇхЁр ё уыєсшэющ ЎтхЄр 24 сшЄр.</p>
<h4><a name="f_delete">buf2d_delete</a></h4>
<p>╬ётюсюцфрхЄ ярь Є№ чрэ Єє■ шчюсЁрцхэшхь сєЇхЁр.</p>
<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_resize">buf2d_resize</a></h4>
<p>╚чьхэ хЄ ЁрчьхЁ√ сєЇхЁр шыш шчюсЁрцхэш  т сєЇхЁх. ╧юър яюффхЁцштр■Єё  сєЇхЁр ё уыєсшэющ ЎтхЄр 24 сшЄр.</p>
<p>╧ЁшьхЁ 1:</p>
<pre>stdcall [buf2d_resize], buf_0, 0,300, 1 ;шчьхэ хь т√ёюЄє сєЇхЁр</pre>
<p>уфх buf_0 - ёЄЁєъЄєЁр сєЇхЁр т ъюЄюЁюь сєфхЄ ЁшёютрЄ№ё  ышэш ; 0 - эютр  °шЁшэр сєЇхЁр (0 ючэрўрхЄ эх шчьхэ Є№ ЁрчьхЁ); 300 - эютр  т√ёюЄр сєЇхЁр; 1 - ярЁрьхЄЁ єърч√тр■∙шщ ўЄю шчьхэ ■Єё  ЁрчьхЁ√ сєЇхЁр.</p>
<p>╧ЁшьхЁ 2:</p>
<pre>stdcall [buf2d_resize], buf_0, 250,0, 2 ;шчьхэ хь шчюсЁрцхэшх т сєЇхЁх</pre>
<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_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_line_sm">buf2d_line_sm</a></h4>
<p>╨шёєхЄ т сєЇхЁх ышэш■ яЁшэшьрхЄ Єръшцх ярЁрьхЄЁ√ ъръ ш ЇєэъЎш  <b>buf2d_line</b>. ─рээр  ЇєэъЎш  ЁшёєхЄ ёуырцхээє■ ышэш■ сюыхх ъЁрёштє■ ўхь <b>buf2d_line</b>, эю ЁрсюЄрхЄ ьхфыхээхх эх╕ чр ёўхЄ т√ўшёыхэш  ёьх°рээ√ї ЎтхЄют Їюэр ш ёрьющ ышэшш.</p>
<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_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_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_hdiv2">buf2d_img_hdiv2</a></h4>
<p>╤цшьрхЄ шчюсЁрцхэшх т сєЇхЁх яю т√ёюЄх т 2 Ёрчр, яЁш ¤Єюь ЁрчьхЁ ёрьюую сєЇхЁр эх єьхэ№°рхЄё .</p>
<h4><a name="f_wdiv2">buf2d_img_wdiv2</a></h4>
<p>╤цшьрхЄ шчюсЁрцхэшх т сєЇхЁх яю °шЁшэх т 2 Ёрчр, яЁш ¤Єюь ЁрчьхЁ ёрьюую сєЇхЁр эх єьхэ№°рхЄё .</p>
<h4>buf2d_conv_24_to_8</h4>
<p>╧ЁхюсЁрчютрэшх сєЇхЁр шч 24-сшЄэюую т 8-сшЄэ√щ.
╧Ёш яЁхюсЁрчютрэшш єърч√трхЄё  ъръющ ЎтхЄ схЁрЄ№: 0-ёшэшщ, 1-чхыхэ√щ, 2-ъЁрёэ√щ.
╬ёЄры№э√х ЎтхЄр яЁш яЁхюсЁрчютрэшш ЄхЁ ■Єё .</p>
<h4>buf2d_conv_24_to_32</h4>
<p>╧ЁхюсЁрчютрэшх сєЇхЁр шч 24-сшЄэюую т 32-сшЄэ√щ.
╧Ёш яЁхюсЁрчютрэшш єърч√трхЄё  Єръцх 8-сшЄэ√щ сєЇхЁ, ъюЄюЁ√щ сєфхЄ шёяюы№чютрэ фы  ёючфрэш  ры№Їр ърэрыр. ╧ЁшьхЁ:</p>
<pre>stdcall [buf2d_conv_24_to_32],buf_a,buf_b ;фхырхь сєЇхЁ rgba 32сшЄ</pre>
<p>─ю т√яюыэхэш  ЇєэъЎшш сєЇхЁ buf_a фюыцхэ с√Є№ 24 сшЄэ√ь, р сєЇхЁ buf_b - 8 сшЄэ√ь.
╧юёых т√яюыэхэш  ЇєэъЎшш сєЇхЁ buf_a ёЄрэхЄ 32 сшЄэ√ь, сєЇхЁ buf_b эх шчьхэшЄё .</p>
<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 - ёЄЁєъЄєЁр сєЇхЁр т ъюЄюЁюь сєфхЄ ЁшёютрЄ№ё  шчюсЁрцхэшх (яЁшхьэшъ);
buf_1 - ёЄЁєъЄєЁр сєЇхЁр ё Ёшёєхь√ь шчюсЁрцхэшхь (шёЄюўэшъ);
50,30 - ъююЁфшэрЄ√ фы  т√тюфр шчюсЁрцхэш , юяЁхфхы ■Є яюыюцхэшх Ёшёєхьющ ърЁЄшэъш т buf_0.</p>
<h4>buf2d_bit_blt_transp</h4>
<p>╨шёєхЄ т сєЇхЁх шчюсЁрцхэшх шч фЁєуюую сєЇхЁр т єърчрээ√ї ъююЁфшэрЄрї, яЁш ¤Єюь єўшЄ√трхЄё  яЁючЁрўэюёЄ№.
┴єЇхЁ ъюЄюЁ√щ сєфхЄ эрЁшёютрэ фюыцхэ с√Є№ 32 сшЄэ√ь, р ЄюЄ т ъюЄюЁюь Ёшёє■Є 24 сшЄэ√ь.</p>
<h4>buf2d_bit_blt_alpha</h4>
<p>╨шёєхЄ т сєЇхЁх шчюсЁрцхэшх шч фЁєуюую сєЇхЁр т єърчрээ√ї ъююЁфшэрЄрї, яЁш ¤Єюь єўшЄ√трхЄё  яЁючЁрўэюёЄ№.
┴єЇхЁ ъюЄюЁ√щ сєфхЄ эрЁшёютрэ фюыцхэ с√Є№ 8 сшЄэ√ь, р ЄюЄ т ъюЄюЁюь Ёшёє■Є 24 сшЄэ√ь.</p>
<h4>buf2d_curve_bezier</h4>
<p>╨шёєхЄ яю ЄЁхь Єюўърь юЄЁхчюъ ъЁштющ схч№х.</p>
<pre>stdcall [buf2d_curve_bezier], buf_0, (10 shl 16)+20,(110 shl 16)+10,(50 shl 16)+90, dword 0xff</pre>
<p>уфх buf_0 - ёЄЁєъЄєЁр сєЇхЁр т ъюЄюЁюь сєфхЄ ЁшёютрЄ№ё  ъЁштр ;
(10 shl 16)+20,(110 shl 16)+10,(50 shl 16)+90 - ъююЁфшэрЄ√ Єюўхъ (10,20), (110,10), (50,90);
0xff - ЎтхЄ яЁ ьющ.</p>
<h4>buf2d_convert_text_matrix</h4>
<p>╧ЁхюсЁрчєхЄ ьрЄЁшЎє ё ЄхъёЄюь ЁрчьхЁюь 16*16 т ЁрчьхЁ 1*256. ═хюсїюфшью фы  ёючфрэш  ьрЄЁшЎ√ фы  Ёшёютрэш  ЄхъёЄр. ╧хЁхф шёяюы№чютрэшхь фрээющ ЇєэъЎшш яЁхфяюырурхЄё  ўЄю хёЄ№ шчюсЁрцхэшх ё яюыэ√ь эрсюЁюь ёшьтюыют ЁрчьхЁюь 16 ёЄюысЎют эр 16 ёЄЁюъ, шч ъюЄюЁюую яЁхфтрЁшЄхы№эю с√ы ёючфрэ 8 сшЄэ√щ сєЇхЁ.</p>
<pre>stdcall [buf2d_create_f_img], buf_1,[image_data] ;ёючфрхь сєЇхЁ 24 сшЄ эр юёэютх фрээ√ї шчюсЁрцхэш 
stdcall [buf2d_conv_24_to_8], buf_1,1 ;фхырхь сєЇхЁ яЁючЁрўэюёЄш 8 сшЄ
stdcall [buf2d_convert_text_matrix], buf_1</pre>
<p>уфх buf_1 - ёЄЁєъЄєЁр сєЇхЁр фы  ЇюЁьшЁютрэш  ЄхъёЄютющ ьрЄЁшЎ√;
image_data - фрээ√х шчюсЁрцхэш  ЄхъёЄютющ ьрЄЁшЎ√ т ЇюЁьрЄх rgb, ЁрчьхЁюь 16*16 ёшьтюыют.</p>
<h4>buf2d_draw_text</h4>
<p>╨шёєхЄ ЄхъёЄ т сєЇхЁх, шёяюы№чє  ьрЄЁшЎє ё ЄхъёЄюь ЁрчьхЁюь 1*256 ёшьтюыют. ╧ЁшьхЁ:</p>
<pre>stdcall [buf2d_draw_text], buf_0, buf_1,some_text,20,10,0x4040ff ;Ёшёєхь ёЄЁюъє ё ЄхъёЄюь</pre>
<p>уфх buf_0 - ёЄЁєъЄєЁр сєЇхЁр т ъюЄюЁюь сєфхЄ ЁшёютрЄ№ё  ЄхъёЄ;</p>
<p>buf_1 - ёЄЁєъЄєЁр сєЇхЁр ё ЄхъёЄютющ ьрЄЁшЎхщ т ЇюЁьрЄх 8 сшЄ, ЁрчьхЁюь 1*256 ёшьтюыют;</p>
<p>some_text - ЄхъёЄ, ъюЄюЁ√щ сєфхЄ т√тхфхэ т сєЇхЁ buf_0.</p>
<h4><a name="f_c_color">buf2d_crop_color</a></h4>
<p>╬сЁхчрэшх сєЇхЁр, яю єърчрээюьє ЎтхЄє. ╘єэъЎш  шёяюы№чєхЄё  фы  єьхэ№°хэш  ярь Єш, чрэшьрхьющ сєЇхЁюь. ╬ЄЁхчр■Єё  ъЁрщэшх ўрёЄш сєЇхЁр шьх■∙шх юфшэръют√щ ЎтхЄ. ╧ЁшьхЁ:</p>
<pre>stdcall [buf2d_crop_color], buf_0,0xffffff,BUF2D_OPT_CROP_TOP+BUF2D_OPT_CROP_BOTTOM</pre>
<p>уфх buf_0 - ёЄЁєъЄєЁр сєЇхЁр ъюЄюЁ√щ сєфхЄ юсЁхчрэ;</p>
<p>0xffffff - ЎтхЄ яю ъюЄюЁюьє сєфхЄ юсЁхчрЄ№ё  сєЇхЁ;</p>
<p>BUF2D_OPT_CROP_TOP ш BUF2D_OPT_CROP_BOTTOM - ъюэёЄрэЄ√, єърч√тр■∙шх ё ъръшї ёЄюЁюэ юсЁхчрЄ№ сєЇхЁ.</p>
<h4>buf2d_offset_h</h4>
<p>╤фтшу шчюсЁрцхэш  т сєЇхЁх яю т√ёюЄх ттхЁї шыш тэшч.</p>
<h4>buf2d_flood_fill</h4>
<p>╘єэъЎш  фы  ЁхъєЁёштэющ чрыштъш т√сЁрээ√ь ЎтхЄюь. ╚ьххЄё  фтр трЁшрэЄр чрыштъш. ╧ЁшьхЁ:</p>
<pre>stdcall [buf2d_flood_fill], buf_0, 100,200, 0, 0xff,0xff0000</pre>
<p>уфх buf_0 - ёЄЁєъЄєЁр сєЇхЁр;</p>
<p>100,200 - ъююЁфшэрЄ√ Єюўъш, ё ъюЄюЁющ эрўэхЄё  чрыштър;</p>
<p>0 - ярЁрьхЄЁ, юяЁхфхы хЄ рыуюЁшЄь чрыштъш (ьюцхЄ с√Є№ 0 шыш 1);</p>
<p>0xff - ЎтхЄ чрыштъш;</p>
<p>0xff0000 - чртшёшЄ юЄ чэрўхэш  4-ую ярЁрьхЄЁр, 1) хёыш 0 - ЎтхЄ фю ъюЄюЁюую сєфхЄ чрыштрЄ№ё  юсырёЄ№; 2) хёыш 1 - ЎтхЄ юсырёЄш ъюЄюЁр  сєфхЄ чрыштрЄё ;</p>
<h4>buf2d_set_pixel</h4>
<p>╘єэъЎш  ёЄртшЄ Єюўъє, яЁшэшьрхЄ ъююЁфшэрЄ√ ш ЎтхЄ. ╧ЁшьхЁ:</p>
<pre>stdcall [buf2d_set_pixel], buf_0, 100,150, 0xff0000</pre>
<p>уфх buf_0 - ёЄЁєъЄєЁр сєЇхЁр;</p>
<p>100,150 - ъююЁфшэрЄ√ Єюўъш;</p>
<p>0xff0000 - ЎтхЄ Єюўъш.</p>
<h4>buf2d_get_pixel</h4>
<p>╘єэъЎш  чряшё√трхЄ ЎтхЄ Єюўъш т ЁхушёЄЁ eax, яЁшэшьрхЄ ъююЁфшэрЄ√. ╧ЁшьхЁ:</p>
<pre>stdcall [buf2d_get_pixel], buf_0, 100,150</pre>
<p>уфх buf_0 - ёЄЁєъЄєЁр сєЇхЁр;</p>
<p>100,150 - ъююЁфшэрЄ√ Єюўъш;</p>
<p>eax - ЎтхЄ Єюўъш (фы  8 ш 24 сшЄэ√ї сєЇхЁют эх шёяюы№чєхь√х ёЄрЁ°шх сшЄ√ т eax Ёртэ√ 0) шыш чэрўхэшх -1 т ёыєўрх ю°шсъш.</p>
<h4><a name="f_flip_h">buf2d_flip_h</a></h4>
<p>╬ЄЁрцрхЄ шчюсЁрцхэшх т сєЇхЁх яю уюЁшчюэЄрыш (ыхтю ш яЁртю ьхэ ■Єё  ьхёЄрьш). ╧ЁшьхЁ:</p>
<pre>stdcall buf2d_flip_h, buf_0</pre>
<p>уфх buf_0 - ёЄЁєъЄєЁр 24-ї шыш 32-ї сшЄэюую сєЇхЁр.</p>
<h4><a name="f_flip_v">buf2d_flip_v</a></h4>
<p>╬ЄЁрцрхЄ шчюсЁрцхэшх т сєЇхЁх яю тхЁЄшърыш (тхЁї ш эшч ьхэ ■Єё  ьхёЄрьш). ╧ЁшьхЁ:</p>
<pre>stdcall buf2d_flip_v, buf_0</pre>
<p>уфх buf_0 - ёЄЁєъЄєЁр 24-ї шыш 32-ї сшЄэюую сєЇхЁр.</p>
<h4><a name="f_filter_d">buf2d_filter_dither</a></h4>
<p>╘шы№ЄЁ, ъюЄюЁ√щ яЁхюсЁрчєхЄ шчюсЁрцхэшх шч 24 сшЄэюую сєЇхЁр т 8-ьш ЎтхЄэюх. ╨рчЁ фэюёЄ№ сєЇхЁр эх ьхэ хЄё . ╧ЁшьхЁ:</p>
<pre>stdcall [buf2d_filter_dither], buf_0, 0</pre>
<p>уфх buf_0 - ёЄЁєъЄєЁр 24-ї сшЄэюую сєЇхЁр;</p>
<p>0 - рыуюЁшЄь (тючьюцэ√х чэрўхэш : 0 - Sierra Lite, 1 - Floyd-Steinberg, 2 - Burkers, 3 - Heavyiron_mod, 4 - Atkinson).</p>
<h4><a name="f_v_brush_c">buf2d_vox_brush_create</a></h4>
<p>╤ючфрэшх тюъёхы№эющ ъшёЄш. ╧ЁшьхЁ:</p>
<pre>stdcall [buf2d_vox_brush_create], buf_vox, vox_6_7_z
.........
align 4
vox_6_7_z: ;фрээ√х фы  ёючфрэш  ьшэшьры№эюую хфшэшўэюую тюъёхы 
dd 0,0,1,1,0,0,\
0,2,2,2,2,0,\
2,2,2,2,2,2,\
2,3,2,2,3,2,\
2,3,3,3,3,2,\
0,3,3,3,3,0,\
0,0,3,3,0,0
align 4
buf_vox: ;фрээ√х фы  ёючфрэш  эрсюЁр тюъёхы№э√ї ъшёЄхщ
db 6,7,4,3 ;w,h,h_osn,n
rb BUF_STRUCT_SIZE*(3+1)</pre>
<p>уфх vox_6_7_z - фрээ√х фы  ёючфрэш  ьшэшьры№эюую хфшэшўэюую тюъёхы  (0 - ючэрўрхЄ яЁючЁрўэ√щ яшъёхы№, фЁєушх ЎшЇЁ√ юяЁхфхы ■Є уыєсшэє фы  чряюыэхэш  сєЇхЁр уыєсшэ√);</p>
<p>buf_vox - фрээ√х фы  ёючфрэш  эрсюЁр тюъёхы№э√ї ъшёЄхщ (6 ш 7 - ЁрчьхЁ ьшэшьры№эюую хфшэшўэюую тюъёхы , 4 - т√ёюЄр тхЁїэхую юёэютрэш  ьшэшьры№эюую хфшэшўэюую тюъёхы , 3 - ўшёыю ёючфртрхь√ї тюъёхы№э√ї ъшёЄхщ фы  Ёшёютрэш  тюъёхыхщ тхЁїэшї єЁютэхщ);</p>
<h4>buf2d_vox_brush_delete</h4>
<p>╙фрыхэшх тюъёхы№эющ ъшёЄш.</p>
<h4>buf2d_vox_obj_draw_1g</h4>
<p>╨шёютрэшх тюъёхы№эюую юс·хъЄр ё 1-щ уЁрэ№■.</p>
<h4>buf2d_vox_obj_get_img_w_3g</h4>
<p>┬ючтЁр°рхЄ °шЁшэє тюъёхы№эюую шчюсЁрцхэш  ё 3-ь  уЁрэ ьш (ъюЄюЁюх ЁшёєхЄё  ЇєэъЎшхщ <b>buf2d_vox_obj_draw_3g</b>), яЁшэшьрхЄ єърчрЄхы№ эр ъшёЄ№ ш ьрё°Єрс.</p>
<h4>buf2d_vox_obj_get_img_h_3g</h4>
<p>┬ючтЁр°рхЄ т√ёюЄє тюъёхы№эюую шчюсЁрцхэш  ё 3-ь  уЁрэ ьш (ъюЄюЁюх ЁшёєхЄё  ЇєэъЎшхщ <b>buf2d_vox_obj_draw_3g</b>), яЁшэшьрхЄ єърчрЄхы№ эр ъшёЄ№ ш ьрё°Єрс.</p>
<h4>buf2d_vox_obj_draw_3g</h4>
<p>╨шёютрэшх тюъёхы№эюую юс·хъЄр ё 3-ь  уЁрэ ьш.</p>
<h4>buf2d_vox_obj_draw_3g_scaled</h4>
<p>╨шёютрэшх ўрёЄш тюъёхы№эюую юс·хъЄр.</p>
<h4>buf2d_vox_obj_draw_3g_shadows</h4>
<p>╘єэъЎш  Ёшёє■∙р  Єхэш фы  шчюсЁрцхэшщ эрЁшёютрээ√ї ё яюью∙№■ ЇєэъЎшш <b>buf2d_vox_obj_draw_3g</b> шыш <b>buf2d_vox_obj_draw_3g_scaled</b>.</p>
<h4>buf2d_vox_obj_draw_pl</h4>
<p>╘єэъЎш  Ёшёє■∙р  ёЁхч тюъёхы№эюую юс№хъЄр.</p>
<h4>buf2d_vox_obj_draw_pl_scaled</h4>
<p>╘єэъЎш  Ёшёє■∙р  ёЁхч ўрёЄш тюъёхы№эюую юс№хъЄр.</p>
<h1><a name="const">╩юэёЄрэЄ√</a></h1>
<h4>BUF2D_OPT_CROP_TOP equ 1</h4>
<p>╩юэёЄрэЄр фы  ЇєэъЎшш <a href="#f_c_color">buf2d_crop_color</a>, юсючэрўрхЄ юсЁхчъє сєЇхЁр ётхЁїє</p>
<h4>BUF2D_OPT_CROP_LEFT equ 2</h4>
<p>╩юэёЄрэЄр фы  ЇєэъЎшш <a href="#f_c_color">buf2d_crop_color</a>, юсючэрўрхЄ юсЁхчъє сєЇхЁр ёыхтр</p>
<h4>BUF2D_OPT_CROP_BOTTOM equ 4</h4>
<p>╩юэёЄрэЄр фы  ЇєэъЎшш <a href="#f_c_color">buf2d_crop_color</a>, юсючэрўрхЄ юсЁхчъє сєЇхЁр ёэшчє</p>
<h4>BUF2D_OPT_CROP_RIGHT equ 8</h4>
<p>╩юэёЄрэЄр фы  ЇєэъЎшш <a href="#f_c_color">buf2d_crop_color</a>, юсючэрўрхЄ юсЁхчъє сєЇхЁр ёяЁртр</p>
<h1><a name="tabl_e">╥рсышЎр ¤ъёяюЁЄр</a></h1>
<p>╧ЁшьхЁ ЄрсышЎ√ ¤ъёяюЁЄр, ЁрёўшЄрээющ эр шёяюы№чютрэшх ьръЁюёр <b>@use_library_mem</b>:</p>
<pre>align 4
import_buf2d_lib:
dd sz_lib_init
buf2d_create dd sz_buf2d_create
buf2d_create_f_img dd sz_buf2d_create_f_img
buf2d_clear dd sz_buf2d_clear
buf2d_draw dd sz_buf2d_draw
buf2d_delete dd sz_buf2d_delete
buf2d_rotate dd sz_buf2d_rotate
buf2d_resize dd sz_buf2d_resize
buf2d_line dd sz_buf2d_line
buf2d_line_sm dd sz_buf2d_line_sm
buf2d_rect_by_size dd sz_buf2d_rect_by_size
buf2d_filled_rect_by_size dd sz_buf2d_filled_rect_by_size
buf2d_circle dd sz_buf2d_circle
buf2d_img_hdiv2 dd sz_buf2d_img_hdiv2
buf2d_img_wdiv2 dd sz_buf2d_img_wdiv2
buf2d_conv_24_to_8 dd sz_buf2d_conv_24_to_8
buf2d_conv_24_to_32 dd sz_buf2d_conv_24_to_32
buf2d_bit_blt dd sz_buf2d_bit_blt
buf2d_bit_blt_transp dd sz_buf2d_bit_blt_transp
buf2d_bit_blt_alpha dd sz_buf2d_bit_blt_alpha
buf2d_curve_bezier dd sz_buf2d_curve_bezier
buf2d_convert_text_matrix dd sz_buf2d_convert_text_matrix
buf2d_draw_text dd sz_buf2d_draw_text
buf2d_crop_color dd sz_buf2d_crop_color
buf2d_offset_h dd sz_buf2d_offset_h
buf2d_flood_fill dd sz_buf2d_flood_fill
buf2d_set_pixel dd sz_buf2d_set_pixel
buf2d_get_pixel dd sz_buf2d_get_pixel
buf2d_flip_h dd sz_buf2d_flip_h
buf2d_flip_v dd sz_buf2d_flip_v
buf2d_filter_dither dd sz_buf2d_filter_dither
;тюъёхы№э√х ЇєэъЎшш:
buf2d_vox_brush_create dd sz_buf2d_vox_brush_create
buf2d_vox_brush_delete dd sz_buf2d_vox_brush_delete
buf2d_vox_obj_draw_1g dd sz_buf2d_vox_obj_draw_1g
buf2d_vox_obj_get_img_w_3g dd sz_buf2d_vox_obj_get_img_w_3g
buf2d_vox_obj_get_img_h_3g dd sz_buf2d_vox_obj_get_img_h_3g
buf2d_vox_obj_draw_3g dd sz_buf2d_vox_obj_draw_3g
buf2d_vox_obj_draw_3g_scaled dd sz_buf2d_vox_obj_draw_3g_scaled
buf2d_vox_obj_draw_3g_shadows dd sz_buf2d_vox_obj_draw_3g_shadows
buf2d_vox_obj_draw_pl dd sz_buf2d_vox_obj_draw_pl
buf2d_vox_obj_draw_pl_scaled dd sz_buf2d_vox_obj_draw_pl_scaled
dd 0,0
sz_lib_init db 'lib_init',0
sz_buf2d_create db 'buf2d_create',0
sz_buf2d_create_f_img db 'buf2d_create_f_img',0
sz_buf2d_clear db 'buf2d_clear',0
sz_buf2d_draw db 'buf2d_draw',0
sz_buf2d_delete db 'buf2d_delete',0
sz_buf2d_rotate db 'buf2d_rotate',0
sz_buf2d_resize db 'buf2d_resize',0
sz_buf2d_line db 'buf2d_line',0
sz_buf2d_line_sm db 'buf2d_line_sm',0
sz_buf2d_rect_by_size db 'buf2d_rect_by_size',0
sz_buf2d_filled_rect_by_size db 'buf2d_filled_rect_by_size',0
sz_buf2d_circle db 'buf2d_circle',0
sz_buf2d_img_hdiv2 db 'buf2d_img_hdiv2',0
sz_buf2d_img_wdiv2 db 'buf2d_img_wdiv2',0
sz_buf2d_conv_24_to_8 db 'buf2d_conv_24_to_8',0
sz_buf2d_conv_24_to_32 db 'buf2d_conv_24_to_32',0
sz_buf2d_bit_blt db 'buf2d_bit_blt',0
sz_buf2d_bit_blt_transp db 'buf2d_bit_blt_transp',0
sz_buf2d_bit_blt_alpha db 'buf2d_bit_blt_alpha',0
sz_buf2d_curve_bezier db 'buf2d_curve_bezier',0
sz_buf2d_convert_text_matrix db 'buf2d_convert_text_matrix',0
sz_buf2d_draw_text db 'buf2d_draw_text',0
sz_buf2d_crop_color db 'buf2d_crop_color',0
sz_buf2d_offset_h db 'buf2d_offset_h',0
sz_buf2d_flood_fill db 'buf2d_flood_fill',0
sz_buf2d_set_pixel db 'buf2d_set_pixel',0
sz_buf2d_get_pixel db 'buf2d_get_pixel',0
sz_buf2d_flip_h db 'buf2d_flip_h',0
sz_buf2d_flip_v db 'buf2d_flip_v',0
sz_buf2d_filter_dither db 'buf2d_filter_dither',0
;тюъёхы№э√х ЇєэъЎшш:
sz_buf2d_vox_brush_create db 'buf2d_vox_brush_create',0
sz_buf2d_vox_brush_delete db 'buf2d_vox_brush_delete',0
sz_buf2d_vox_obj_draw_1g db 'buf2d_vox_obj_draw_1g',0
sz_buf2d_vox_obj_get_img_w_3g db 'buf2d_vox_obj_get_img_w_3g',0
sz_buf2d_vox_obj_get_img_h_3g db 'buf2d_vox_obj_get_img_h_3g',0
sz_buf2d_vox_obj_draw_3g db 'buf2d_vox_obj_draw_3g',0
sz_buf2d_vox_obj_draw_3g_scaled db 'buf2d_vox_obj_draw_3g_scaled',0
sz_buf2d_vox_obj_draw_3g_shadows db 'buf2d_vox_obj_draw_3g_shadows',0
sz_buf2d_vox_obj_draw_pl db 'buf2d_vox_obj_draw_pl',0
sz_buf2d_vox_obj_draw_pl_scaled db 'buf2d_vox_obj_draw_pl_scaled',0</pre>
<h1><a name="hist">╚ёЄюЁш </a></h1>
<p>02.07.10 - ёрьр  яхЁтр  тхЁёш  сшсышюЄхъш, 2 яЁшьхЁр шёяюы№чютрэш .</p>
<p>06.07.10 - Ёрё°шЁхэ√ тючьюцэюёЄш ЇєэъЎшш buf2d_bit_blt, ЄхяхЁ№ юэр ьюцхЄ ЁшёютрЄ№ 32 сшЄэ√х сєЇхЁ√. ─юсртыхэ√ 2 эют√х ЇєэъЎшш: buf2d_bit_blt_alpha ш buf2d_cruve_bezier. ═хсюы№°шх шчьхэхэш  т ЇєэъЎшш buf2d_line.</p>
<p>16.07.10 - шёяЁртыхэю яю 2 ю°шсъш т ЇєэъЎш ї buf2d_img_hdiv2 ш buf2d_img_wdiv2, ъюЄюЁ√х ьюуыш яЁю ты Є№ё  яЁш юяЁхфхыхээ√ї єёыютш ї (хёыш ЁрчьхЁ шчюсЁрцхэш  с√ы ъЁрЄхэ 4╩с ш фЁ.). ─юсртыхэ√ 2 ЇєэъЎшш фы  т√тюфр ЄхъёЄр т сєЇхЁ buf2d_convert_text_matrix ш buf2d_draw_text.</p>
<p>19.07.10 - фюсртыхэр ЇєэъЎш  Ёшёютрэш  юъЁєцэюёЄш buf2d_circle;
шчьхэхэ ЇюЁьрЄ сєЇхЁр - фы  °шЁшэ√ ш т√ёюЄ√ шёяюы№чє■Єё  4-ї срщЄэ√х ўшёыр тьхёЄю 2-ї срщЄэ√ї.</p>
<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, фюЁрсюЄрэр ЇєэъЎш  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>
<p>25.03.11 - фюсртыхэр ЇєэъЎш  фы  Ёшёютрэш  Єюўъш buf2d_set_pixel.</p>
<p>30.08.11 - фюсртыхэр ЇєэъЎш  шчьхэхэш  ЁрчьхЁют сєЇхЁр buf2d_resize.</p>
<p>13.09.11 - юяЄшьшчшЁютрэр ЁрсюЄр ЇєэъЎшщ buf2d_filled_rect_by_size buf2d_rect_by_size, фюсртыхэ√ яЁшьхЁ√ шёяюы№чютрэш  сшсышюЄхъш.</p>
<p>22.09.11 - фюсртыхэр ЇєэъЎш  buf2d_line_sm фы  Ёшёютрэш  ёуырцхээющ ышэшш.</p>
<p>20.02.12 - ЇєэъЎшш buf2d_filled_rect_by_size ш buf2d_rect_by_size ьюуєЄ яЁшэшьрЄ№ юЄЁшЎрЄхы№э√х ЁрчьхЁ√ фы  яЁ ьюєуюы№эшъют, т ЇєэъЎшш buf2d_line уюЁшчюэЄры№эр  ышэш  ЁшёєхЄё  эр 1 яшъёхы№ фышэхх (Ёрэ№°х эх фюЁшёют√трыю), эхъюЄюЁ√х ЇєэъЎшш ьюуєЄ ЁшёютрЄ№ т 8 сшЄэ√ї сєЇхЁрї.</p>
<p>23.02.12 - ЇєэъЎш  buf2d_bit_blt_alpha ьюцхЄ яЁшэшьрЄ№ юЄЁшЎрЄхы№э√х ъююЁфшэрЄ√ т яючшЎшш ъюяшЁєхьюую сєЇхЁр, эхсюы№°шх фюЁрсюЄъш т buf2d_bit_blt_transp</p>
<p>11.05.12 - фюсртыхэр ЇєэъЎш  фы  тч Єш  ЎтхЄр Єюўъш buf2d_get_pixel, фюЁрсюЄъш т buf2d_set_pixel.</p>
<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 сшЄэ√ї шчюсЁрцхэшщ яю тхЁЄшърыш 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 сшЄэ√ї сєЇхЁют т ЇєэъЎш■ buf2d_flip_v, фюсртыхэр ЇєэъЎш  юЄЁрцхэш  яю уюЁшчюэЄрыш buf2d_flip_h.</p>
<p>09.02.16 - шчьхэхэр ЇєэъЎш  buf2d_resize фюсртыхэ фюяюыэшЄхы№э√щ ярЁрьхЄЁ, ъюЄюЁ√щ єърч√трхЄ ьхэ Є№ ыш шчюсЁрцхэшх шыш ЁрчьхЁ√ сєЇхЁр.</p>
<p>04.05.20 - ЇєэъЎш  buf2d_bit_blt ьюцхЄ яЁшэшьрЄ№ юЄЁшЎрЄхы№э√х ъююЁфшэрЄ√ т яючшЎшш ъюяшЁєхьюую сєЇхЁр.</p>
</body>
</html>