[[:oktatas:programozás:c|< 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. * http://www.svgalib.org * http://sourceforge.net/projects/svgalib-windows/ ===== Használat ===== Két fejállományt használhatunk: * vga.h * vgagl.h Parancssoros fordításhoz: gcc -l vga -o main main.c gcc -l vgagl -o main main.c Egyszerű példaprogram: #include #include int main(void) { vga_init(); vga_setmode(G320x200x256); vga_setcolor(4); vga_drawpixel(10, 10); sleep(5); vga_setmode(TEXT); return EXIT_SUCCESS; } #include #include #include 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 ===== Külső link ===== * http://www.svgalib.org * http://www.svgalib.org/jay/beginners_guide/beginners_guide.html