Tyto funkce slouží ke kopírování dat ze systémové paměti do video paměti.
void vga_copytoplanar256(unsigned char *virtual, int pitch, int voffset, int vpitch, int w, int h);
Kopíruje část obrazovky v systémové paměti na adrese *virtual do video paměti (Mode X). pitch je logická šířka virtuální obrazovky (v pixelech), voffset je adresový offset videopaměti,vpitch je šířka řádku obrazovky. h a w jsou šířka a výška pole, které se má kopírovat (v pixelech; w musí být násobkem čtyř).
void vga_copytoplanar16(unsigned char *virtual, int pitch, int voffset, int vpitch, int w, int h);
Podobně jako vga_copytoplanar256, ale pro módy s 16 barvami.
void vga_copytoplane(unsigned char *virtual, int pitch, int voffset, int vpitch, int w, int h, int plane);
Podobně jako předchozí dvě. Kopíruje však pouze podmnožinu čtyř úrovní 16barevných módů. plane by mělo být v rozsahu 0–15, bity v něm nastavené ukazují, která ze čtyř úrovní módu má být modifikována.
Následující funkce se používají k nastavení uživatelské palety barev.
void vga_setpalette(int index, int r, int g, int b);
Nastaví barvu s indexem index na RGB hodnotu proměnných r, g a b(všechny by měly být v rozsahu 0–63; nebo 0–255, pokud je nastavena volba VGA_CLUT8). Tato funkce má smysl pouze u módů s 16 nebo 256 barvami.
void vga_getpalette(int index, int *r, int *g, int *b);
Funkce získá hodnotu RGB z barvy s indexem index a uloží ji do proměnných *r, *g a *b(s rozsahem 0–63 nebo 0–255 – viz výše). Tato funkce je také použitelná jen v módech s 16 nebo 256 barvami.
int vga_getpalvec(int start, int num, int *pal);
Získá num barev, které začínají indexem start z tabulky barev a uloží jejich RGB hodnoty do pal. Velikost *pal musí být 3num integerů, protože ke každé barvě náleží tři položky z pole. Platí zde stejná omezení jako u dvou výše popsaných.
int vga_setpalvec(int start, int num, int *pal);
Nastaví num barev začínajících indexem start na RGB hodnoty v poli *pal. U této funkce platí stejná pravidla jako u její sestry.
Následující funkce slouží k práci s myší. První funkce používá hlavičkový soubor vga.h, další pak ještě vgamouse.h.
void vga_setmousesupport(int stat);
Nastaví podporu myši – 0 zakazuje její použití (defaultně), 1 pak povoluje. Funkci musíte volat až po nastavení grafického módu, aby bylo nastaveno správné rozlišení kurzoru atd. Poté je možné použít další funkce pro práci s myší, a to s předponou mouse_. Je možné použít také funkci mouse_init, kde je možné nastavit další parametry myši. Tato funkce používá konfigurační soubor knihovny pro zjištění důležitých informací o zařízení.
int mouse_init(char *dev, int type, int samplerate);
int mouse_init_return_fd(char *dev, int type, int samplerate);
Tyto funkce mohou být použity k explicitnímu „spuštění“ myši, ignorujícímu typ nebo zařízení myši, která jsou specifikována v konfiguračním souboru knihovny.
dev je jméno zařízení myši (defaultně je použito /dev_mouse).
samplerate může být MOUSE_DEFAULTSAMPLERATE(150) nebo nějaká jiná hodnota v Hz specifikující obnovovací frekveni myši.
type je jeden z typů myší, které jsou předávany funkcí vga_getmousetype(3).
Pokud jsou tyto funkce použity, není nutné volat vga_setmousesupport. Je však lepší používat funkci vga_setmousesupport, protože nemůžete dopředu vědět, že „ten a ten“ počítač bude používat „ten a ten“ typ myši. Tyto informace jsou uloženy v konfiguračním souboru svgalib a je potom jen na uživateli, jak si knihovnu nakonfiguruje.
Verze funkce s return_fd vrací deskriptor souboru myši. Druhá verze vrací 0, pokud proběhla úspěšně, jinak –1.
void mouse_close(void);
Uzavírá zařízení myši. Funkce by měla být volána na konci programu (pokud myš používáte), protože se pokusí obnovit originální stav myši, jestliže byl změněn. Sekvence mouse_init(), mouse_close() a zase mouse_init() nebude korektně pracovat.
To by bylo pro dnešek vše. V příštím dílu si práci s myší doděláme.