Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 872 → Rev 879

/programs/develop/sdk/trunk/HDraw/hdraw.inc
File deleted
/programs/develop/sdk/trunk/pixlib/pixlib.inc
0,0 → 1,260
 
REQ_DLL_VER = 1
DLL_ENTRY = 1
 
HS_HORIZONTAL = 0
HS_VERTICAL = 1
HS_FDIAGONAL = 2
HS_BDIAGONAL = 3
HS_CROSS = 4
HS_DIAGCROSS = 5
 
SCR_PIXMAP = -1
 
PX_MEM_SYSTEM = 0
PX_MEM_LOCAL = 1
PX_MEM_GART = 2
 
PX_MEM_MASK = 3
 
ARGB32 = ((32 shl 24) or (2 shl 16) or 0x8888)
 
macro CreateHatch hatch, bkcolor, fcolor
{
pushd fcolor
pushd bkcolor
pushd hatch
call [imp_CreateHatch]
add esp, 3*4
}
 
macro DestroyBrush brush
{
pushd brush
call [imp_DestroyBrush]
add esp, 4
}
 
macro CreatePixmap width, height, format, flags
{
pushd flags
pushd format
pushd height
pushd width
call [imp_CreatePixmap]
add esp, 4*4
}
 
macro DestroyPixmap pixmap
{
pushd pixmap
call [imp_DestroyPixmap]
add esp, 4
};
 
macro LockPixmap pixmap
{
pushd pixmap
call [imp_LockPixmap]
add esp, 4
}
 
macro UnlockPixmap pixmap
{
pushd pixmap
call [imp_UnlockPixmap]
add esp, 4
}
 
macro ClearPixmap pixmap, color
{
pushd color
pushd pixmap
call [imp_ClearPixmap]
add esp, 2*4
}
 
macro Line pixmap, x0,y0,x1,y1,color
{
pushd color
pushd y1
pushd x1
pushd y0
pushd x0
pushd pixmap
call [imp_Line]
add esp, 6*4
};
 
macro DrawRect pixmap,x,y,w,h,color,border
{
pushd border
pushd color
pushd h
pushd w
pushd y
pushd x
pushd pixmap
call [imp_DrawRect]
add esp, 7*4
}
 
macro FillRect pixmap,x,y,w,h,brush,border
{
pushd border
pushd brush
pushd h
pushd w
pushd y
pushd x
pushd pixmap
call [imp_FillRect]
add esp, 7*4
}
 
macro Blit dstpix, dstx, dsty, srcpix, srcx, srcy, w, h
{
pushd h
pushd w
pushd srcy
pushd srcx
pushd srcpix
pushd dsty
pushd dstx
pushd dstpix
call [imp_Blit]
add esp, 8*4
}
 
macro TransparentBlit dstpix, dstx, dsty, srcpix, srcx, srcy, w, h, key
{
pushd key
pushd h
pushd w
pushd srcy
pushd srcx
pushd srcpix
pushd dsty
pushd dstx
pushd dstpix
call [imp_TransparentBlit]
add esp, 9*4
}
 
szPxlib db '/rd/1/lib/pixlib.obj',0
 
szStart db 'START',0
szVersion db 'version',0
 
szCreatePixmap db 'CreatePixmap',0
szDestroyPixmap db 'DestroyPixmap',0
szLockPixmap db 'LockPixmap',0
szUnlockPixmap db 'UnlockPixmap',0
szGetPixmapPitch db 'GetPixmapPitch',0
 
szCreateHatch db 'CreateHatch',0
szCreateMonoBrush db 'CreateMonoBrush',0
szDestroyBrush db 'DestroyBrush',0
 
szClearPixmap db 'ClearPixmap',0
szLine db 'Line',0
szDrawRect db 'DrawRect',0
szFillRect db 'FillRect',0
szBlit db 'Blit',0
szTransparentBlit db 'TransparentBlit',0
 
align 4
 
px_import:
 
imp_start dd szStart
imp_ver dd szVersion
 
imp_CreatePixmap dd szCreatePixmap
imp_DestroyPixmap dd szDestroyPixmap
imp_LockPixmap dd szLockPixmap
imp_UnlockPixmap dd szUnlockPixmap
imp_GetPixmapPitch dd szGetPixmapPitch
 
imp_CreateHatch dd szCreateHatch
imp_CreateMonoBrush dd szCreateMonoBrush
imp_DestroyBrush dd szDestroyBrush
 
imp_ClearPixmap dd szClearPixmap
imp_Line dd szLine
imp_DrawRect dd szDrawRect
imp_FillRect dd szFillRect
imp_Blit dd szBlit
imp_TransparentBlit dd szTransparentBlit
 
dd 0
 
 
;szBlockClip db 'BlockClip',0
;szLineClip db 'LineClip',0
;imp_BlockClip dd szBlockClip
;imp_LineClip dd szLineClip
 
 
align 4
 
load_pxlib:
mov eax, 68
mov ebx, 19
mov ecx, szPxlib
int 0x40
test eax, eax
jz .fail
 
mov edx, eax
mov esi, px_import
.import_loop:
lodsd
test eax, eax
jz .import_done
push edx
.import_find:
mov ebx, [edx]
test ebx, ebx
jz .fail ;import_not_found
 
push eax
@@:
mov cl, [eax]
cmp cl, [ebx]
jnz .import_find_next
 
test cl, cl
jz .import_found
 
inc eax
inc ebx
jmp @b
.import_find_next:
pop eax
add edx, 8
jmp .import_find
.import_found:
pop eax
mov eax, [edx+4]
mov [esi-4], eax
pop edx
jmp .import_loop
.import_done:
 
cmp word [imp_ver], REQ_DLL_VER
jb .fail
cmp word [imp_ver+2], REQ_DLL_VER
ja .fail
 
push DLL_ENTRY
call [imp_start]
test eax, eax
jz .fail
 
ret
.fail:
xor eax, eax
ret
 
 
/programs/develop/sdk/trunk/pixlib/readme.txt
0,0 → 1,224
 
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 òèï øòðèõîâêè
 
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 â ñëó÷àå íåóäà÷è.
 
 
 
 
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 â ñëó÷àå íåóäà÷è.