1) 'buf2d.obj' new function 'buf2d_rect_by_size'

2) 'box_lib.obj' fix function 'tl_node_poi_get_data'

git-svn-id: svn://kolibrios.org@1634 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
IgorA
2010-09-30 21:07:09 +00:00
parent 4ccc803579
commit cf508277c3
4 changed files with 130 additions and 44 deletions
@@ -113,6 +113,11 @@ buf_0:
<pre>stdcall [buf2d_line], buf_0, 30,10, 110,70, 0xffff00 ;рисуем линию</pre>
<p>где buf_0 - структура буфера в котором будет рисоваться линия; 30, 10, 110, 70 - координаты линии; 0xffff00 - цвет линии.</p>
<h4>buf2d_rect_by_size</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>buf2d_circle</h4>
<p>Рисует в буфере окружность с заданным цветом и радиусом. Пример использования:</p>
<pre>stdcall [buf2d_circle], buf_0, 25, 70, 15, 0xff0000</pre>
@@ -196,6 +201,7 @@ import_buf2d_lib:
buf2d_draw dd sz_buf2d_draw
buf2d_delete dd sz_buf2d_delete
buf2d_line dd sz_buf2d_line
buf2d_rect_by_size dd sz_buf2d_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
@@ -218,6 +224,7 @@ import_buf2d_lib:
sz_buf2d_draw db 'buf2d_draw',0
sz_buf2d_delete db 'buf2d_delete',0
sz_buf2d_line db 'buf2d_line',0
sz_buf2d_rect_by_size db 'buf2d_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
@@ -240,5 +247,6 @@ import_buf2d_lib:
изменен формат буфера - для ширины и высоты используются 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>
</body>
</html>
@@ -998,6 +998,55 @@ endl
ret
endp
;à¨á®¢ ­¨¥ £®à¨§®­â «ì­®© «¨­¨¨, ¯®â®¬ã ­¥â ¯ à ¬¥âà  coord_y0
align 4
proc buf_line_h, buf_struc:dword, coord_x0:dword, coord_y0:dword, coord_x1:dword, color:dword
pushad
mov edx,dword[color]
mov eax,edi
mov edi,[buf_struc]
cmp buf2d_bits,24
jne @f
mov ebx,dword[coord_x0]
mov ecx,dword[coord_y0]
mov esi,dword[coord_x1]
@@: ;for (x=x0 ; x<x1; x++) ;------------------------------------
call draw_pixel
inc ebx
cmp ebx,esi
jge @f
jmp @b
@@:
popad
ret
endp
align 4
proc buf_rect_by_size, buf_struc:dword, coord_x:dword,coord_y:dword,w:dword,h:dword, color:dword
pushad
mov edi,[buf_struc]
cmp buf2d_bits,24
jne .coord_end
mov eax,[coord_x]
mov ebx,[coord_y]
mov ecx,[w]
add ecx,eax
mov edx,[h]
add edx,ebx
mov esi,dword[color]
stdcall buf_line_h, edi, eax, ebx, ecx, esi ;«¨­¨ï -
stdcall buf_line_brs, edi, eax, ebx, eax, edx, esi ;«¨­¨ï |
stdcall buf_line_h, edi, eax, edx, ecx, esi ;«¨­¨ï -
stdcall buf_line_brs, edi, ecx, ebx, ecx, edx, esi ;«¨­¨ï |
.coord_end:
popad
ret
endp
align 4
proc buf_circle, buf_struc:dword, coord_x:dword, coord_y:dword, r:dword, color:dword
locals
@@ -2034,6 +2083,7 @@ EXPORTS:
dd sz_buf2d_draw, buf_draw_buf
dd sz_buf2d_delete, buf_delete
dd sz_buf2d_line, buf_line_brs
dd sz_buf2d_rect_by_size, buf_rect_by_size
dd sz_buf2d_circle, buf_circle
dd sz_buf2d_img_hdiv2, buf_img_hdiv2
dd sz_buf2d_img_wdiv2, buf_img_wdiv2
@@ -2055,6 +2105,7 @@ EXPORTS:
sz_buf2d_draw db 'buf2d_draw',0
sz_buf2d_delete db 'buf2d_delete',0
sz_buf2d_line db 'buf2d_line',0 ;à¨á®¢ ­¨¥ «¨­¨¨
sz_buf2d_rect_by_size db 'buf2d_rect_by_size',0 ;à¨á®¢ ­¨¥ ¯àאַ㣮«ì­¨ª , 2-ï ª®®à¤¨­ â  § ¤ ­  ¯® à §¬¥àã
sz_buf2d_circle db 'buf2d_circle',0 ;à¨á®¢ ­¨¥ ®ªà㦭®áâ¨
sz_buf2d_img_hdiv2 db 'buf2d_img_hdiv2',0 ;ᦠ⨥ ¨§®¡à ¦¥­¨ï ¯® ¢ëá®â¥ ¢ 2 à §  (à §¬¥à ¡ãä¥à  ­¥ ¬¥­ï¥âáï)
sz_buf2d_img_wdiv2 db 'buf2d_img_wdiv2',0 ;ᦠ⨥ ¨§®¡à ¦¥­¨ï ¯® è¨à¨­¥ ¢ 2 à §  (à §¬¥à ¡ãä¥à  ­¥ ¬¥­ï¥âáï)