Tartalomjegyzék

< C

Konzolgrafika SVGA

Bevezetés

Nyílt forráskódú alacsony szintű grafikai műveletek tesz lehetővé. Váltható videó módok és teljes képernyős mód is lehetséges. Néhány népszerű program is használja az eredeti verziójában, úgymint Quake, Doom, stb.

SVGA Könyvtárak telepítése

Debian rendszeren

apt-get install libsvga1-dev

A dokumentum jelenlegi verziója csak Debian rendszeren mutatja, be az SVGA könyvtárak telepítését.

A MinGW alapból nem tartalmazza az SVGALIB-et ezért be kell azt szerezni.

Használat

Két fejállományt használhatunk:

Parancssoros fordításhoz:

gcc -l vga -o main main.c
gcc -l vgagl -o main main.c

Egyszerű példaprogram:

#include <stdlib.h>
#include <vga.h>
 
int main(void)
{
   vga_init();
   vga_setmode(G320x200x256);
   vga_setcolor(4);
   vga_drawpixel(10, 10);
 
   sleep(5);
   vga_setmode(TEXT);

   return EXIT_SUCCESS;
}
#include <stdlib.h>
#include <vga.h>
#include <vgagl.h>

GraphicsContext *physicalscreen;
GraphicsContext *virtualscreen;
 
int main(void)
{
   int i, j, b, y, c;
 
   vga_init();
   vga_setmode(G320x200x256);
   gl_setcontextvga(G320x200x256);
   physicalscreen = gl_allocatecontext();
   gl_getcontext(physicalscreen);
   gl_setcontextvgavirtual(G320x200x256);
   virtualscreen = gl_allocatecontext();
   gl_getcontext(virtualscreen);
 
   gl_setcontext(virtualscreen);
   y = 0;
   c = 0;
   gl_setpalettecolor(c, 0, 0, 0);
   c++;
   for (i = 0; i < 64; i++)
   {
      b = 63 - i;
      gl_setpalettecolor(c, 0, 0, b);
      for (j = 0; j < 3; j++)
      {
         gl_hline(0, y, 319, c);
         y++;
      }
      c++;
   }
 
   gl_copyscreen(physicalscreen);
 
   vga_getch();
   gl_clearscreen(0);
   vga_setmode(TEXT);

   return EXIT_SUCCESS;
}

Fordítás:

gcc -O3 -o gradient gradient.c -lvgagl -lvga