Felhasználói eszközök

Eszközök a webhelyen


oktatas:programozas:c:konzolgrafika_svga

Különbségek

A kiválasztott változat és az aktuális verzió közötti különbségek a következők.

Összehasonlító nézet linkje

oktatas:programozas:c:konzolgrafika_svga [2017/10/02 20:29]
oktatas:programozas:c:konzolgrafika_svga [2019/08/21 17:56] (aktuális)
admin létrehozva
Sor 1: Sor 1:
 +[[:​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 <​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
 +
 +
 +===== Külső link =====
 +
 +  * http://​www.svgalib.org
 +  * http://​www.svgalib.org/​jay/​beginners_guide/​beginners_guide.html