Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 2758 → Rev 2759

/programs/develop/libraries/buf2d/trunk/about.htm
49,9 → 49,15
<h1>Îãëàâëåíèå</h1>
<ul>
<li>Âñòóïëåíèå</li>
<li><a href="#f_buf">Ôîðìàòû áóôåðîâ</a></li>
<li><a href="#format_buf">Ôîðìàòû áóôåðîâ</a></li>
<li><a href="#fun">Ôóíêöèè</a><br>
<li><a href="#const">Êîíñòàíòû</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_v_brush_c">buf2d_vox_brush_create</a></li>
</ul>
</li>
<li><a href="#const">Êîíñòàíòû</a></li>
<li><a href="#tabl_e">Òàáëèöà ýêñïîðòà</a></li>
<li><a href="#hist">Èñòîðèÿ</a></li>
</ul>
60,11 → 66,13
<p>Äîêóìåíòàöèÿ ê ñâîáîäíîé áèáëèîòåêå <b>buf2d.asm</b>, äëÿ <b>ÎÑ Êîëèáðè</b>.
Ýòà áèáëèîòåêà ñîçäàíà äëÿ ðàáîòû ñ 2d èçîáðàæåíèÿìè.
Ñ åå ïîìîùüþ ìîæíî ñîçäàâàòü áóôåðà ñ èçîáðàæåíèÿìè â ïàìÿòè, è ïðè íåîáõîäèìîñòè âûâîäèòü èõ íà ýêðàí.
Èçîáðàæåíèÿ ìîæíî íàêëàäûâàòü îäíî íà äðóãîå, ïîääåðæèâàåòñÿ ðàáîòà ñ ïðîçðà÷íûìè èçîáðàæåíèÿìè, åñòü ôóíêöèÿ ðèñîâàíèÿ ëèíè ïîêà íà ýòîì âñå.</p>
Èçîáðàæåíèÿ ìîæíî íàêëàäûâàòü îäíî íà äðóãîå, ïîääåðæèâàåòñÿ ðàáîòà ñ ïðîçðà÷íûìè èçîáðàæåíèÿìè.
Åñòü ôóíêöèè ðèñîâàíèÿ ëèíèé, êðèâûõ Áåçüå, ïðÿìîóãîëüíèêîâ, îêðóæíîñòåé.
Òàêæå åñòü ôóíêöèè äëÿ ðèñîâàíèé âîêñåëüíîé ãðàôèêè.</p>
 
<p>Ïîñëåäíåå îáíîâëåíèå áèáëèîòåêè 11.05.12.</p>
<p>Ïîñëåäíåå îáíîâëåíèå áèáëèîòåêè 12.06.12.</p>
 
<h1><a name="f_buf">Ôîðìàòû áóôåðîâ</a></h1>
<h1><a name="format_buf">Ôîðìàòû áóôåðîâ</a></h1>
<p>Ïîääåðæèâàåòñÿ 3 ôîðìàòà áóôåðîâ.
Êàæäàÿ ôóíêöèÿ ïðè ðàáîòå ñ áóôåðàìè ìîæåò áûòü ðàñ÷èòàíà íà ðàáîòó ñ îïðåäåëåííûìè ôîðìàòàìè èçîáðàæåíèé.</p>
 
90,11 → 98,14
dd 0x80 ;+16 ôîíîâûé öâåò
db 24 ;+20 áèò íà ïèêñåëü</pre>
 
<h4>lib_init</h4>
<h4><a name="f_init">lib_init</a></h4>
<p>Ýòà ôóíêöèÿ ïîëó÷àåò óêàçàòåëè íà ôóíêöèè ðàáîòû ñ ïàìÿòüþ, âûçûâàòñÿ äîëæíà ïðè çàãðóçêå áèáëèîòåêè. Ìîæåòå èñïîëüçîâàòü ìàêðîñ <b>@use_library_mem</b>, äëÿ åå àâòîìàòè÷åñêîé íàñòðîéêè.</p>
 
<h4>buf2d_create</h4>
<p>Ñîçäàåò áóôåð è ÷èñòèò åãî ôîíîâûì öâåòîì.</p>
<h4><a name="f_b_create">buf2d_create</a></h4>
<p>Ñîçäàåò áóôåð è ÷èñòèò åãî ôîíîâûì öâåòîì. Ïðèìåð:</p>
<pre>stdcall [buf2d_create], buf_0</pre>
<p>ãäå buf_0 - ñòðóêòóðà áóôåðà.</p>
<p>Ïàðàìåòðû äëÿ ñîçäàíèÿ áóôåðà áåðóòñÿ èç ñòðóêòóðû.</p>
 
<h4>buf2d_create_f_img</h4>
<p>Ñîçäàåò áóôåð íà îñíîâå èçîáðàæåíèÿ â ôîðìàòå <b>rgb</b>.</p>
229,6 → 240,33
<p>100,150 - êîîðäèíàòû òî÷êè;</p>
<p>eax - öâåò òî÷êè (äëÿ 8 è 24 áèòíûõ áóôåðîâ íå èñïîëüçóåìûå ñòàðøèå áèòû â eax ðàâíû 0) èëè çíà÷åíèå -1 â ñëó÷àå îøèáêè.</p>
 
<h4><a name="f_v_brush_c">buf2d_vox_brush_create</a></h4>
<p>Ñîçäàíèå âîêñåëüíîé êèñòè.</p>
 
<h4>buf2d_vox_brush_delete</h4>
<p>Óäàëåíèå âîêñåëüíîé êèñòè.</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>Êîíñòàíòà äëÿ ôóíêöèè buf2d_crop_color, îáîçíà÷àåò îáðåçêó áóôåðà ñâåðõó</p>
271,6 → 309,17
buf2d_set_pixel dd sz_buf2d_set_pixel
buf2d_get_pixel dd sz_buf2d_get_pixel
 
;âîêñåëüíûå ôóíêöèè:
buf2d_vox_brush_create dd sz_buf2d_vox_brush_create
buf2d_vox_brush_delete dd sz_buf2d_vox_brush_delete
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
298,8 → 347,19
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</pre>
sz_buf2d_get_pixel db 'buf2d_get_pixel',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_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>
321,5 → 381,6
<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>
</body>
</html>
/programs/develop/libraries/buf2d/trunk/buf2d.asm
2912,13 → 2912,13
align 4
proc vox_add, buf_v1:dword, buf_v2:dword, coord_x:dword, coord_y:dword, coord_z:dword
pushad
mov eax,[coord_x]
mov ebx,[coord_y]
mov ebx,[coord_x]
mov eax,[coord_y]
mov edi,[buf_v2]
mov ecx,buf2d_h
mov esi,buf2d_w
imul ecx,esi
add esi,eax
add esi,ebx
mov edx,buf2d_data
cld
;ecx - count pixels in voxel
2929,23 → 2929,24
cmp dword[edx],0
je @f
;¯à®¢¥à塞 ¡ãä¥à £«ã¡¨­ë
push eax ecx esi
push eax ecx edi esi
mov ecx,eax
stdcall buf_get_pixel, [buf_v1],ecx,ebx
mov edi,[buf_v1]
call get_pixel_32 ;stdcall buf_get_pixel, [buf_v1],ebx,ecx
mov esi,[edx]
add esi,[coord_z]
cmp eax,esi
jge .end_draw
stdcall buf_set_pixel, [buf_v1],ecx,ebx,esi ;esi = new coord z
stdcall buf_set_pixel, [buf_v1],ebx,ecx,esi ;esi = new coord z
.end_draw:
pop esi ecx eax
pop esi edi ecx eax
@@:
add edx,4
inc ebx
cmp ebx,esi
jl @f
inc eax
cmp eax,esi
jl @f
inc ebx
sub eax,buf2d_w
sub ebx,buf2d_w
@@:
loop .cycle
popad