forked from KolibriOS/kolibrios
buf2d.obj:
1) new function 'buf2d_filled_rect_by_size' 2) fix function 'buf_bit_blt_alpha' git-svn-id: svn://kolibrios.org@1642 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
112a3665cb
commit
74199525db
@ -114,10 +114,15 @@ buf_0:
|
|||||||
<p>где buf_0 - структура буфера в котором будет рисоваться линия; 30, 10, 110, 70 - координаты линии; 0xffff00 - цвет линии.</p>
|
<p>где buf_0 - структура буфера в котором будет рисоваться линия; 30, 10, 110, 70 - координаты линии; 0xffff00 - цвет линии.</p>
|
||||||
|
|
||||||
<h4>buf2d_rect_by_size</h4>
|
<h4>buf2d_rect_by_size</h4>
|
||||||
<p>Рисует прямоугольник, по двум координатам, 2-я координата задана по размеру.</p>
|
<p>Рисует прямоугольную рамку, по двум координатам, 2-я координата задана по размеру.</p>
|
||||||
<pre>stdcall [buf2d_rect_by_size], buf_0, 10,10,150,100, 0x8080</pre>
|
<pre>stdcall [buf2d_rect_by_size], buf_0, 10,10,150,100, 0x8080</pre>
|
||||||
<p>где buf_0 - структура буфера в котором будет рисоваться прямоугольник; 10, 10 - координаты левого верхнего угла; 150, 100 - размер прямоугольника; 0x8080 - цвет линии.</p>
|
<p>где buf_0 - структура буфера в котором будет рисоваться прямоугольник; 10, 10 - координаты левого верхнего угла; 150, 100 - размер прямоугольника; 0x8080 - цвет линии.</p>
|
||||||
|
|
||||||
|
<h4>buf2d_filled_rect_by_size</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>buf2d_circle</h4>
|
<h4>buf2d_circle</h4>
|
||||||
<p>Рисует в буфере окружность с заданным цветом и радиусом. Пример использования:</p>
|
<p>Рисует в буфере окружность с заданным цветом и радиусом. Пример использования:</p>
|
||||||
<pre>stdcall [buf2d_circle], buf_0, 25, 70, 15, 0xff0000</pre>
|
<pre>stdcall [buf2d_circle], buf_0, 25, 70, 15, 0xff0000</pre>
|
||||||
@ -202,6 +207,7 @@ import_buf2d_lib:
|
|||||||
buf2d_delete dd sz_buf2d_delete
|
buf2d_delete dd sz_buf2d_delete
|
||||||
buf2d_line dd sz_buf2d_line
|
buf2d_line dd sz_buf2d_line
|
||||||
buf2d_rect_by_size dd sz_buf2d_rect_by_size
|
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_circle dd sz_buf2d_circle
|
||||||
buf2d_img_hdiv2 dd sz_buf2d_img_hdiv2
|
buf2d_img_hdiv2 dd sz_buf2d_img_hdiv2
|
||||||
buf2d_img_wdiv2 dd sz_buf2d_img_wdiv2
|
buf2d_img_wdiv2 dd sz_buf2d_img_wdiv2
|
||||||
@ -225,6 +231,7 @@ import_buf2d_lib:
|
|||||||
sz_buf2d_delete db 'buf2d_delete',0
|
sz_buf2d_delete db 'buf2d_delete',0
|
||||||
sz_buf2d_line db 'buf2d_line',0
|
sz_buf2d_line db 'buf2d_line',0
|
||||||
sz_buf2d_rect_by_size db 'buf2d_rect_by_size',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_circle db 'buf2d_circle',0
|
||||||
sz_buf2d_img_hdiv2 db 'buf2d_img_hdiv2',0
|
sz_buf2d_img_hdiv2 db 'buf2d_img_hdiv2',0
|
||||||
sz_buf2d_img_wdiv2 db 'buf2d_img_wdiv2',0
|
sz_buf2d_img_wdiv2 db 'buf2d_img_wdiv2',0
|
||||||
@ -248,5 +255,6 @@ import_buf2d_lib:
|
|||||||
<p>29.07.10 - добавлены функции buf2d_crop_color и buf2d_offset_h;
|
<p>29.07.10 - добавлены функции buf2d_crop_color и buf2d_offset_h;
|
||||||
исправления в функции buf2d_delete.</p>
|
исправления в функции buf2d_delete.</p>
|
||||||
<p>30.09.10 - добавлена функция buf2d_rect_by_size.</p>
|
<p>30.09.10 - добавлена функция buf2d_rect_by_size.</p>
|
||||||
|
<p>04.10.10 - добавлена функция buf2d_filled_rect_by_size, доработана функция buf_bit_blt_alpha.</p>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
@ -1034,9 +1034,16 @@ pushad
|
|||||||
mov eax,[coord_x]
|
mov eax,[coord_x]
|
||||||
mov ebx,[coord_y]
|
mov ebx,[coord_y]
|
||||||
mov ecx,[w]
|
mov ecx,[w]
|
||||||
|
cmp ecx,1
|
||||||
|
jl .coord_end
|
||||||
add ecx,eax
|
add ecx,eax
|
||||||
|
dec ecx
|
||||||
mov edx,[h]
|
mov edx,[h]
|
||||||
|
cmp edx,1
|
||||||
|
jl .coord_end
|
||||||
|
|
||||||
add edx,ebx
|
add edx,ebx
|
||||||
|
dec edx
|
||||||
mov esi,dword[color]
|
mov esi,dword[color]
|
||||||
stdcall buf_line_h, edi, eax, ebx, ecx, esi ;«¨¨ï -
|
stdcall buf_line_h, edi, eax, ebx, ecx, esi ;«¨¨ï -
|
||||||
stdcall buf_line_brs, edi, eax, ebx, eax, edx, esi ;«¨¨ï |
|
stdcall buf_line_brs, edi, eax, ebx, eax, edx, esi ;«¨¨ï |
|
||||||
@ -1047,6 +1054,28 @@ popad
|
|||||||
ret
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
|
align 4
|
||||||
|
proc buf_filled_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 edx,[w]
|
||||||
|
add edx,eax
|
||||||
|
mov ecx,[h]
|
||||||
|
mov esi,dword[color]
|
||||||
|
cld
|
||||||
|
@@:
|
||||||
|
stdcall buf_line_h, edi, eax, ebx, edx, esi ;«¨¨ï -
|
||||||
|
inc ebx
|
||||||
|
loop @b
|
||||||
|
.coord_end:
|
||||||
|
popad
|
||||||
|
ret
|
||||||
|
endp
|
||||||
|
|
||||||
align 4
|
align 4
|
||||||
proc buf_circle, buf_struc:dword, coord_x:dword, coord_y:dword, r:dword, color:dword
|
proc buf_circle, buf_struc:dword, coord_x:dword, coord_y:dword, r:dword, color:dword
|
||||||
locals
|
locals
|
||||||
@ -1692,6 +1721,9 @@ proc buf_bit_blt_alpha, buf_destination:dword, coord_x:dword, coord_y:dword, buf
|
|||||||
mov edi,[buf_destination]
|
mov edi,[buf_destination]
|
||||||
cmp buf2d_bits,24
|
cmp buf2d_bits,24
|
||||||
jne .error2 ;ä®à¬ â ¡ãä¥à ¥ ¯®®¤¥à¦¨¢ ¥âáï
|
jne .error2 ;ä®à¬ â ¡ãä¥à ¥ ¯®®¤¥à¦¨¢ ¥âáï
|
||||||
|
mov ebx,[coord_x] ;¢ ebx ¢à¥¬¥® áâ ¢¨¬ ®âáâ㯠¨§®¡à ¦¥¨ï (¤«ï ¯à®¢¥àª¨)
|
||||||
|
cmp ebx,buf2d_w ;¯à®¢¥à塞 ¢« §¨â «¨ ¨§®¡à ¦¥¨¥ ¯® è¨à¨¥
|
||||||
|
jge .copy_end ;¥á«¨ ¨§®¡à ¦¥¨¥ ¯®«®áâìî ¢ë« §¨â § ¯à ¢ãî áâ®à®ã
|
||||||
mov ebx,buf2d_h ;ebx - ¢ëá®â ®á®¢®£® ¡ãä¥à
|
mov ebx,buf2d_h ;ebx - ¢ëá®â ®á®¢®£® ¡ãä¥à
|
||||||
mov ecx,[coord_y]
|
mov ecx,[coord_y]
|
||||||
cmp ecx,ebx
|
cmp ecx,ebx
|
||||||
@ -2084,6 +2116,7 @@ EXPORTS:
|
|||||||
dd sz_buf2d_delete, buf_delete
|
dd sz_buf2d_delete, buf_delete
|
||||||
dd sz_buf2d_line, buf_line_brs
|
dd sz_buf2d_line, buf_line_brs
|
||||||
dd sz_buf2d_rect_by_size, buf_rect_by_size
|
dd sz_buf2d_rect_by_size, buf_rect_by_size
|
||||||
|
dd sz_buf2d_filled_rect_by_size, buf_filled_rect_by_size
|
||||||
dd sz_buf2d_circle, buf_circle
|
dd sz_buf2d_circle, buf_circle
|
||||||
dd sz_buf2d_img_hdiv2, buf_img_hdiv2
|
dd sz_buf2d_img_hdiv2, buf_img_hdiv2
|
||||||
dd sz_buf2d_img_wdiv2, buf_img_wdiv2
|
dd sz_buf2d_img_wdiv2, buf_img_wdiv2
|
||||||
@ -2105,7 +2138,8 @@ EXPORTS:
|
|||||||
sz_buf2d_draw db 'buf2d_draw',0
|
sz_buf2d_draw db 'buf2d_draw',0
|
||||||
sz_buf2d_delete db 'buf2d_delete',0
|
sz_buf2d_delete db 'buf2d_delete',0
|
||||||
sz_buf2d_line db 'buf2d_line',0 ;à¨á®¢ ¨¥ «¨¨¨
|
sz_buf2d_line db 'buf2d_line',0 ;à¨á®¢ ¨¥ «¨¨¨
|
||||||
sz_buf2d_rect_by_size db 'buf2d_rect_by_size',0 ;à¨á®¢ ¨¥ ¯àאַ㣮«ì¨ª , 2-ï ª®®à¤¨ â § ¤ ¯® à §¬¥àã
|
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-ï ª®®à¤¨ â § ¤ ¯® à §¬¥àã
|
||||||
sz_buf2d_circle db 'buf2d_circle',0 ;à¨á®¢ ¨¥ ®ªà㦮áâ¨
|
sz_buf2d_circle db 'buf2d_circle',0 ;à¨á®¢ ¨¥ ®ªà㦮áâ¨
|
||||||
sz_buf2d_img_hdiv2 db 'buf2d_img_hdiv2',0 ;ᦠ⨥ ¨§®¡à ¦¥¨ï ¯® ¢ëá®â¥ ¢ 2 à § (à §¬¥à ¡ãä¥à ¥ ¬¥ï¥âáï)
|
sz_buf2d_img_hdiv2 db 'buf2d_img_hdiv2',0 ;ᦠ⨥ ¨§®¡à ¦¥¨ï ¯® ¢ëá®â¥ ¢ 2 à § (à §¬¥à ¡ãä¥à ¥ ¬¥ï¥âáï)
|
||||||
sz_buf2d_img_wdiv2 db 'buf2d_img_wdiv2',0 ;ᦠ⨥ ¨§®¡à ¦¥¨ï ¯® è¨à¨¥ ¢ 2 à § (à §¬¥à ¡ãä¥à ¥ ¬¥ï¥âáï)
|
sz_buf2d_img_wdiv2 db 'buf2d_img_wdiv2',0 ;ᦠ⨥ ¨§®¡à ¦¥¨ï ¯® è¨à¨¥ ¢ 2 à § (à §¬¥à ¡ãä¥à ¥ ¬¥ï¥âáï)
|
||||||
|
Loading…
Reference in New Issue
Block a user