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 â ñëó÷àå íåóäà÷è.