forked from KolibriOS/kolibrios
buf2d.obj:
- new function 'buf2d_resize' info3ds: - update resize window - update function 'block_analiz_data' git-svn-id: svn://kolibrios.org@2136 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
@@ -108,6 +108,11 @@ buf_0:
|
||||
<h4>buf2d_delete</h4>
|
||||
<p>Освобождает память занятую изображением буфера.</p>
|
||||
|
||||
<h4>buf2d_resize</h4>
|
||||
<p>Изменяет размеры буфера. Пока поддерживаются буфера с глубиной цвета 24 бита. Пример:</p>
|
||||
<pre>stdcall [buf2d_resize], buf_0, 0,300 ;изменяем высоту буфера</pre>
|
||||
<p>где buf_0 - структура буфера в котором будет рисоваться линия; 0 - новая ширина буфера (0 означает не изменять размер); 300 - новая высота буфера.</p>
|
||||
|
||||
<h4>buf2d_line</h4>
|
||||
<p>Рисует в буфере линию с заданным цветом и координатами. Пример:</p>
|
||||
<pre>stdcall [buf2d_line], buf_0, 30,10, 110,70, 0xffff00 ;рисуем линию</pre>
|
||||
@@ -225,6 +230,7 @@ import_buf2d_lib:
|
||||
buf2d_clear dd sz_buf2d_clear
|
||||
buf2d_draw dd sz_buf2d_draw
|
||||
buf2d_delete dd sz_buf2d_delete
|
||||
buf2d_resize dd sz_buf2d_resize
|
||||
buf2d_line dd sz_buf2d_line
|
||||
buf2d_rect_by_size dd sz_buf2d_rect_by_size
|
||||
buf2d_filled_rect_by_size dd sz_buf2d_filled_rect_by_size
|
||||
@@ -251,6 +257,7 @@ import_buf2d_lib:
|
||||
sz_buf2d_clear db 'buf2d_clear',0
|
||||
sz_buf2d_draw db 'buf2d_draw',0
|
||||
sz_buf2d_delete db 'buf2d_delete',0
|
||||
sz_buf2d_resize db 'buf2d_resize',0
|
||||
sz_buf2d_line db 'buf2d_line',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
|
||||
@@ -285,5 +292,6 @@ import_buf2d_lib:
|
||||
<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>
|
||||
</body>
|
||||
</html>
|
||||
@@ -911,10 +911,37 @@ endp
|
||||
|
||||
align 4
|
||||
proc buf_delete, buf_struc:dword
|
||||
push edi
|
||||
push eax edi
|
||||
mov edi,dword[buf_struc]
|
||||
invoke mem.free,buf2d_data
|
||||
pop edi
|
||||
pop edi eax
|
||||
ret
|
||||
endp
|
||||
|
||||
align 4
|
||||
proc buf_resize, buf_struc:dword, new_w:dword, new_h:dword
|
||||
pushad
|
||||
mov edi,dword[buf_struc]
|
||||
cmp buf2d_bits,24
|
||||
jne .24bit
|
||||
mov eax,dword[new_w]
|
||||
cmp eax,1
|
||||
jl @f
|
||||
mov buf2d_w,eax
|
||||
@@:
|
||||
mov ecx,buf2d_w
|
||||
mov eax,dword[new_h]
|
||||
cmp eax,1
|
||||
jl @f
|
||||
mov buf2d_h,eax
|
||||
@@:
|
||||
mov ebx,buf2d_h
|
||||
imul ecx,ebx
|
||||
lea ecx,[ecx+ecx*2] ; 24 bit = 3
|
||||
invoke mem.realloc,buf2d_data,ecx ;¨§¬¥ï¥¬ ¯ ¬ïâì § ¨¬ ¥¬ãî ¡ãä¥à®¬
|
||||
mov buf2d_data,eax ; á«ãç © ¥á«¨ ¨§¬¥¨«áï 㪠§ â¥«ì ¤ ë¥
|
||||
.24bit:
|
||||
popad
|
||||
ret
|
||||
endp
|
||||
|
||||
@@ -2310,6 +2337,7 @@ EXPORTS:
|
||||
dd sz_buf2d_clear, buf_clear
|
||||
dd sz_buf2d_draw, buf_draw_buf
|
||||
dd sz_buf2d_delete, buf_delete
|
||||
dd sz_buf2d_resize, buf_resize
|
||||
dd sz_buf2d_line, buf_line_brs
|
||||
dd sz_buf2d_rect_by_size, buf_rect_by_size
|
||||
dd sz_buf2d_filled_rect_by_size, buf_filled_rect_by_size
|
||||
@@ -2335,6 +2363,7 @@ EXPORTS:
|
||||
sz_buf2d_clear db 'buf2d_clear',0 ;®ç¨á⪠¡ãä¥à 㪠§ ë¬ æ¢¥â®¬
|
||||
sz_buf2d_draw db 'buf2d_draw',0
|
||||
sz_buf2d_delete db 'buf2d_delete',0
|
||||
sz_buf2d_resize db 'buf2d_resize',0
|
||||
sz_buf2d_line db 'buf2d_line',0 ;à¨á®¢ ¨¥ «¨¨¨
|
||||
sz_buf2d_rect_by_size db 'buf2d_rect_by_size',0 ;à¨á®¢ ¨¥ à ¬ª¨ ¯àאַ㣮«ì¨ª , 2-ï ª®®à¤¨ â § ¤ ¯® à §¬¥àã
|
||||
sz_buf2d_filled_rect_by_size db 'buf2d_filled_rect_by_size',0 ;à¨á®¢ ¨¥ § «¨â®£® ¯àאַ㣮«ì¨ª , 2-ï ª®®à¤¨ â § ¤ ¯® à §¬¥àã
|
||||
|
||||
Reference in New Issue
Block a user