Beispiel 2:
#include <vga.h>
#include <stdoi.h>
int main ()
{
int er;
// Grafikmodus einschalten
er=vga_setmode(G320x240x256);
// er<>0 bedeutet Fehler
// Farbe 15 (Weiss) auswählen
vga_setcolor(15);
// setzt Punkt bei 100,100
vga_drawpixel (100,100);
// zeichnet eine Linie
vga_drawline (150,150,450,450);
// warten auf Taste
vga_getch();
// Zurrück zum Textmode
vga_setmode (TEXT);
}
,y1,x2,y2) Pixel auf den
Bildschirm bringt. Zur Darstellung einfacher Bilder und zum Zeichnen
sind die Funktionen der SVGALIB schnell genug möchte man aber
Animationen oder Demos programmieren wird man schnell an die
Grenzen der vga_drawpixel - Funktion kommen. Erheblich schneller
geht's wenn man anstatt jeden einzelnen Pixel mit vga_drawpixel zu
berechnen und dann zu setzen direkt auf den Grafikspeicher der
Grafikkarte zugreift. Dazu bietet die SVGALIB den Pointer
graph_mem. Liest man diesen wie in unserem Beispiel 3 gezeigt aus
kann man über ein Array auf den Grafikspeicher zugreifen und
so schnellstmöglich Pixel setzen, löschen oder auslesen.
Wenden wir
Beispiel 3:
#include <vga.h>
#include <stdoi.h>
int main ()
{
int er;
int i;
short* vgamem;
// Diesmal ein 16Bit Modus
er=vga_setmode(G800x600x64k);
// er<>0 bedeutet Fehler
// Zeiger auf Bildschirmspeicher hohlen
vgamem= (short *) graph_mem;
// Bildschirm Blau füllen
for (i=0;i<800*600;i++)
{
// Bildschimspeicheraddress i 63 (Blau)