Files
kolibrios/programs/develop/libraries/pixlib
Sergey Semyonov (Serge) 80c71dc52a blit from system memory in PIO mode
git-svn-id: svn://kolibrios.org@1002 a494cfbc-eb01-0410-851d-a64ba20cac60
2009-01-27 00:31:09 +00:00
..
2008-10-20 15:53:55 +00:00
2009-01-27 00:31:09 +00:00
2009-01-27 00:31:09 +00:00
2009-01-27 00:31:09 +00:00
2009-01-27 00:31:09 +00:00
2009-01-27 00:31:09 +00:00
2009-01-27 00:31:09 +00:00
2008-10-20 15:53:55 +00:00
2008-10-20 15:53:55 +00:00
2009-01-27 00:31:09 +00:00
2008-10-20 15:53:55 +00:00



typedef unsigned int u32_t;

typedef unsignet int handle;

typedef unsigned int color_t;





handle CreateHatchBrush(int hatch, color_t bkcolor, color_t fcolor);



Создать штрихованную кисть размером 8х8 пикселей



hatch     тип штриховки:



          HS_HORIZONTAL   -------

          HS_VERTICAL     |||||||

          HS_FDIAGONAL    \\\\\\\

          HS_BDIAGONAL    ///////

          HS_CROSS        +++++++

          HS_DIAGCROSS    xxxxxxx



bkcolor   цвет "0"



fcolor    цвет "1"





Возвращаемое значение: логический номер кисти или 0









handle CreateMonoBrush(color_t bkcolor, color_t fcolor,

                         u32_t bmp0, u32_t bmp1);



Создать монохромную кисть размером 8х8 пикселей



bkcolor     цвет "0"



fcolor      цвет "1"



bmp0 bmp1   монохромный битмап 8х8 пикселей





Возвращаемое значение: логический номер кисти или 0







void     DestroyBrush(handle brush);



Уничтожить кисть.



brush     логический номер кисти.





Кисть должна быть создана вызовом CreateHatchBrush или CreateMonoBrush









handle CreatePixmap(unsigned width, unsigned height, u32_t format, u32_t flags);



Создать битмап



width    ширина в пикселях. Максимум 2048



height   высота в пикселях. Максимум 2048



format   формат пикселей. Сейчас поддерживается только ARGB32



flags    дополнительные флаги:



         PX_MEM_SYSTEM =  0 битмап в системной памяти

         PX_MEM_LOCAL  =  1 битмап в локальной видеопамяти

         PX_MEM_GART   =  2 зарезервировано

         остальные биты зарезервированы и должны быть 0





Возвращаемое значение:  логический номер битмапа в случае успеха или 0









int DestroyPixmap( handle pixmap)



Уничтожить битмап.



pixmap   логический номер битмапа.



Битмап должен быть создан CreatePixmap.





Возвращаемое значение: ERR_OK в случае успеха или ERR_PARAM в случае неудачи.









void* LockPixmap(handle pixmap)



Получить доступ к данным битмапа.



pixmap   логический номер битмапа. SCR_PIXMAP для первичного экрана.





Блокирование битмапа может снизить быстродействие если битмап

создан с флагами PX_MEM_LOCAL или PX_MEM_GART.





Возвращаемое значение:  указатель на начало данных битмапа

                        или NULL в случае неудачи.









int GetPixmapPitch(handle pixmap)



Получить ширину строки битмапа в байтах.



pixmap   логический номер битмапа. SCR_PIXMAP для первичного экрана.





Битмап должен быть заблокирован вызовом LockPixmap



Возвращаемое значение: ширина строки битмапа в байтах или 0 в случае неудачи.









int UnlockPixmap(handle pixmap)





Возвращаемое значение: ERR_OK в случае успеха или ERR_PARAM в случае неудачи.







int ClearPixmap(handle pixmap, color_t color)



Заполняет битмап указанным цветом;



pixmap       логический номер битмапа. SCR_PIXMAP для первичного экрана.



color        цвет в формате ARGB32





Возвращаемое значение: ERR_OK в случае успеха или ERR_PARAM в случае неудачи.









int Line(handle pixmap, int x0, int y0, int x1, int y1, color_t color)



Нарисовать сплошную линию указаного цвета толщиной в 1 пиксель.



pixmap       логический номер битмапа в который будет производится отрисовка.

             SCR_PIXMAP для первичного экрана



x0,y0 x1,y1  координаты начальной и конечной точек линиии



color        цвет в формате ARGB32





Возвращаемое значение: ERR_OK в случае успеха или ERR_PARAM в случае неудачи.









int DrawRect(handle pixmap, int xorg, int yorg,

             int width, int height,

             color_t dst_color, color_t border)



Нарисовать сплошной прямоугльник указаного цвета c окантовкой.



pixmap     логический номер битмапа в который будет производится отрисовка.

           SCR_PIXMAP для первичного экрана



xorg,yorg  координаты левого верхнего угла прямоугольника в пикселях



width      ширина прямоугольника в пикселях



height     высота прямоугольника в пикселях



color      цвет прямоугольника в формате ARGB32



border     цвет окантовки в формате ARGB32. Толщина окантовки 1 пиксел.





Возвращаемое значение: ERR_OK в случае успеха или ERR_PARAM в случае неудачи.









int FillRect(handle pixmap, int xorg, int yorg,

             int width, int height,

             brush_t *brush, color_t border)



Нарисовать прямоугольник используя кисть



pixmap     логический номер битмапа в который будет производится отрисовка.

           SCR_PIXMAP для первичного экрана



xorg,yorg  координаты левого верхнего угла прямоугольника в пикселях



width      ширина прямоугольника в пикселях



height     высота прямоугольника в пикселях



brush      монохромная кисть размером 8х8 пикселей



border     цвет окантовки в формате ARGB32. Толщина окантовки 1 пиксел.

           Окантовка не рисуется если альфа компонен цвета равен 0.





Кисть должна быть создана CreateHatch или CreateMonoBrush.





Возвращаемое значение: ERR_OK в случае успеха или ERR_PARAM в случае неудачи.









int Blit(handle dst_pixmap, int dst_x, int dst_y,

         handle src_pixmap, int src_x, int src_y,

         int width, int height)



Скопировать прямоугольную область пикселей.



dst_pixmap    логический номер битмапа в который будет производитс

              копирование. SCR_PIXMAP для первичного экрана.



dst_x, dst_y  координаты левого верхнего угла области назначени



src_pixmap    логический номер битмапа - источника пикселей.

              SCR_PIXMAP для первичного экрана.



src_x,src_y   координаты левого верхнего угла копируемой области



width         ширина копируемой области



height        высота копируемой области



Возвращаемое значение: ERR_OK в случае успеха или ERR_PARAM в случае неудачи.









int TransparentBlit(handle dst_pixmap, int dst_x, int dst_y,

         handle src_pixmap, int src_x, int src_y,

         int width, int height, color_t key)



Скопировать прямоугольную область пикселей используя прозрачный цвет.



dst_pixmap    логический номер битмапа в который будет производитс

              копирование. SCR_PIXMAP для первичного экрана.



dst_x, dst_y  координаты левого верхнего угла области назначени



src_pixmap    логический номер битмапа - источника пикселей.

              SCR_PIXMAP для первичного экрана.



src_x,src_y   координаты левого верхнего угла копируемой области



width         ширина копируемой области



height        высота копируемой области



key           прозрачный цвет в формате ARGB32





Функция не копирует пиксели цвет которых совпадает с key.





Возвращаемое значение: ERR_OK в случае успеха или ERR_PARAM в случае неудачи.