forked from KolibriOS/kolibrios
fix function 'buf2d_bit_blt'
git-svn-id: svn://kolibrios.org@1648 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
99bb0c8af2
commit
6d762a6fbe
@ -59,10 +59,10 @@ table { font-size: 15px; }
|
||||
<h1>Вступление</h1>
|
||||
<p>Документация к свободной библиотеке <b>buf2d.asm</b>, для <b>ОС Колибри</b>.
|
||||
Эта библиотека создана для работы с 2d изображениями.
|
||||
С ее помощьью можно создавать буфера с изображениями в памяти, и при необходимости выводить их на экран.
|
||||
С ее помощью можно создавать буфера с изображениями в памяти, и при необходимости выводить их на экран.
|
||||
Изображения можно накладывать одно на другое, поддерживается работа с прозрачными изображениями, есть функция рисования лини пока на этом все.</p>
|
||||
|
||||
<p>Последнее обновление библиотеки 30.07.10.</p>
|
||||
<p>Последнее обновление библиотеки 07.10.10.</p>
|
||||
|
||||
<h1><a name="f_buf">Форматы буферов</a></h1>
|
||||
<p>Поддерживается 3 формата буферов.
|
||||
@ -109,7 +109,7 @@ buf_0:
|
||||
<p>Освобождает память занятую изображением буфера.</p>
|
||||
|
||||
<h4>buf2d_line</h4>
|
||||
<p>Рисует в буфере линию с заданным цветом и координатами. Пример использования:</p>
|
||||
<p>Рисует в буфере линию с заданным цветом и координатами. Пример:</p>
|
||||
<pre>stdcall [buf2d_line], buf_0, 30,10, 110,70, 0xffff00 ;рисуем линию</pre>
|
||||
<p>где buf_0 - структура буфера в котором будет рисоваться линия; 30, 10, 110, 70 - координаты линии; 0xffff00 - цвет линии.</p>
|
||||
|
||||
@ -124,7 +124,7 @@ buf_0:
|
||||
<p>где buf_0 - структура буфера в котором будет рисоваться прямоугольник; 10, 10 - координаты левого верхнего угла; 150, 100 - размер прямоугольника; 0x8080 - цвет прямоуголика.</p>
|
||||
|
||||
<h4>buf2d_circle</h4>
|
||||
<p>Рисует в буфере окружность с заданным цветом и радиусом. Пример использования:</p>
|
||||
<p>Рисует в буфере окружность с заданным цветом и радиусом. Пример:</p>
|
||||
<pre>stdcall [buf2d_circle], buf_0, 25, 70, 15, 0xff0000</pre>
|
||||
<p>где buf_0 - структура буфера в котором будет рисоваться окружность; 25, 70 - координаты центра; 15 - радиус; 0xff0000 - цвет.</p>
|
||||
|
||||
@ -147,7 +147,11 @@ buf_0:
|
||||
После выполнения функции буфер buf_a станет 32 битным, буфер buf_b не изменится.</p>
|
||||
|
||||
<h4>buf2d_bit_blt</h4>
|
||||
<p>Рисует в буфере изображение из другого буфера в указанных координатах. Буфер в котором рисут (приемник) должен быть 24 битным, а тот который рисуется (источник) 24 или 32 битным. Если буфер источник 32 битный, то его прозрачность при рисовании не учитывается, для учета прозрачности используется функция <i>buf2d_bit_blt_transp</i>.</p>
|
||||
<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>Рисует в буфере изображение из другого буфера в указанных координатах, при этом учитывается прозрачность.
|
||||
@ -256,5 +260,6 @@ import_buf2d_lib:
|
||||
исправления в функции buf2d_delete.</p>
|
||||
<p>30.09.10 - добавлена функция buf2d_rect_by_size.</p>
|
||||
<p>04.10.10 - добавлена функция buf2d_filled_rect_by_size, доработана функция buf_bit_blt_alpha.</p>
|
||||
<p>07.10.10 - доработана функция buf_bit_blt (при попытке нарисовать изображение за пределами правого края буфера приложение вызвавшее функцию падало).</p>
|
||||
</body>
|
||||
</html>
|
@ -1390,7 +1390,7 @@ proc buf_bit_blt, buf_destination:dword, coord_x:dword, coord_y:dword, buf_sourc
|
||||
je .sou32
|
||||
jmp .copy_end ;銈酮罱 ~銗<EFBD9E> 郊 祚恕丞成<E4B89E>乒摬
|
||||
|
||||
.sou24: ;˘ ¨áâŽç¨ŞĽ 32 Ą¨â ď Ş ŕ⨪
|
||||
.sou24: ;¢ ¨áâ®ç¨ª¥ 24 ¡¨â ï ª à⨪
|
||||
mov eax,buf2d_w
|
||||
mov edx,buf2d_h ;c嵼<EFBD83> 狙祠飹布悟 <20>飶身爸
|
||||
mov esi,buf2d_data ;<3B>限諝 狙祠飹布悟 <20>飶身爸
|
||||
@ -1398,6 +1398,9 @@ proc buf_bit_blt, buf_destination:dword, coord_x:dword, coord_y:dword, buf_sourc
|
||||
mov edi,[buf_destination]
|
||||
cmp buf2d_bits,24
|
||||
jne .copy_end ;銈酮罱 ~銗<EFBD9E> 郊 祚恕丞成<E4B89E>乒摬
|
||||
mov ebx,[coord_x] ;¢ ebx ¢à¥¬¥® áâ ¢¨¬ ®âáâ㯠¨§®¡à ¦¥¨ï (¤«ï ¯à®¢¥àª¨)
|
||||
cmp ebx,buf2d_w ;¯à®¢¥à塞 ¢« §¨â «¨ ¨§®¡à ¦¥¨¥ ¯® è¨à¨¥
|
||||
jge .copy_end ;¥á«¨ ¨§®¡à ¦¥¨¥ ¯®«®áâìî ¢ë« §¨â § ¯à ¢ãî áâ®à®ã
|
||||
mov ebx,buf2d_h ;ebx - c嵼<EFBD83> 桑陋╲恐<E295B2> ~銗<EFBD9E>
|
||||
mov ecx,[coord_y]
|
||||
cmp ecx,ebx
|
||||
@ -1460,6 +1463,9 @@ proc buf_bit_blt, buf_destination:dword, coord_x:dword, coord_y:dword, buf_sourc
|
||||
mov edi,[buf_destination]
|
||||
cmp buf2d_bits,24
|
||||
jne .copy_end ;銈酮罱 ~銗<EFBD9E> 郊 祚恕丞成<E4B89E>乒摬
|
||||
mov ebx,[coord_x] ;¢ ebx ¢à¥¬¥® áâ ¢¨¬ ®âáâ㯠¨§®¡à ¦¥¨ï (¤«ï ¯à®¢¥àª¨)
|
||||
cmp ebx,buf2d_w ;¯à®¢¥à塞 ¢« §¨â «¨ ¨§®¡à ¦¥¨¥ ¯® è¨à¨¥
|
||||
jge .copy_end ;¥á«¨ ¨§®¡à ¦¥¨¥ ¯®«®áâìî ¢ë« §¨â § ¯à ¢ãî áâ®à®ã
|
||||
mov ebx,buf2d_h ;ebx - c嵼<EFBD83> 桑陋╲恐<E295B2> ~銗<EFBD9E>
|
||||
mov ecx,[coord_y]
|
||||
cmp ecx,ebx
|
||||
|
Loading…
Reference in New Issue
Block a user