kolibrios/programs/develop/libraries/pixlib
Ivan Baravy 2c778124e3 Remove some duplicates: proc32.inc, macros.inc, struct.inc, etc.
git-svn-id: svn://kolibrios.org@7134 a494cfbc-eb01-0410-851d-a64ba20cac60
2017-12-20 00:51:00 +00:00
..
brush.inc
clip.inc
draw.inc
pixlib.c blit from system memory in PIO mode 2009-01-27 00:31:09 +00:00
pixlib.h
pixlib.inc
pixmap.inc
readme.txt
system.h
Tupfile.lua switch build system to Tup 2014-09-12 15:15:23 +00:00
types.h

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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 в случае неудачи.