Az OpenGL-nek jelenleg C/C++, ADA, Fortran és
Visual Basic implementációja létezik. Ezeken az oldalakon
a C/C++ implementációról lesz szó. Az C/C++
programozási nyelven írt OpenGL programokat Windows 9x/NT
operációs rendszeren Borland C-vel és Visual C-vel
lehet lefordítani. A kettõ közül a Visual C használatát
javaslom, nekem az egyszerûbbnek tûnt.
A Windows NT 3.5-ös verziójának
megjelenése óta az OpenGL része az operációs
rendszernek, ezért valószínûleg az OpenGL-é
a jövõ (az más dolog, hogy a legtöbb 3D-s játékot
még mindig egy másik grafikus rendszerben, a Direct3D-ben
írják; viszont egy fontos érv az OpenGl mellett, hogy
platformfüggetlen). A Windows 98 tehát
már tartalmazza az OpenGL programok futtatásához szükséges
fájlokat.
Mint már megjegyeztem, az OpenGL nem tartalmaz
az ablakok létrehozását elõsegítõ
függvényeket, ezért egy OpenGL program számára
szükséges ablakot nekünk kell létrehozni az adott
nyelven, amely hiába a Visual C, egyáltalán nem olyan
egyszerû. Röviden arról van szó, hogy írni
kell egy Windows programot, amelynek annyi a feladata, hogy az OpenGL használatához
szükséges minimum követelményeket beállítsa,
azaz nyisson egy ablakot, amelybe majd rajzolni lehet. A GDI-nek szüksége
van egy Device Context (DC) kontextusra, az OpenGL-nek egy Rendering Context
(RC) kontextusra. Az alapvetõ lépések tehát:
1. variáció : Win32 konzol alkalmazás létrehozása
Konzol alkalmazás
Egy Win32
konzol alkalmazás egy olyan program, amely egy text módú
ablakban fut. Ez nagyon hasonlít arra, mikor egy
DOS programot futtatunk Windows alatt, azzal a kivétellel,
hogy ez egy tiszta 32 bites alkalmazás, és elérhetõ
a Win32
API-n belül. A konzol programok létrehozhatnak
GUI ablakokat az output számára, ahová az OpenGl rajzol.
Egy ilyen
alkalmazás létrehozása a következõképpen
néz ki:
1. hozzunk létre egy új projektet.
Menjünk a Files menüre, válasszuk
ki a New... menüpontot. Válasszuk
a Projects
fület, és azon
belül a Win32 Console application-t. Írjuk be a projekt
nevét, legyen ez a név: first, majd OK.
2. a megjelenõ ablakban válasszuk
az A simple application pontot.
3. miután a projekt létrejött,
egészítsük ki az stdafx.h header file-t a következõ
sorral:
#include
<GL\glut.h>
4. menjünk a Projects/Settings
menüpontra, majd válasszuk ki a Link
fület. Az Objects/Library modules
alatti sorba írjuk
be a következõket:
opengl32.lib glu32.lib glut32.lib. Ezzel hozzáadtuk a projekthez
a linkelendõ könyvtárakat.
5. a source files/first.cpp file-t kiválasztva
a következõ kódnak kell megjelennie:
#include "stdafx.h"
int
main(int argc, char *argv[])
{
return 0;
}
készen vagyunk, ide kell beírni a kódot, majd a Build/Build first.exe menüponttal tudjuk a programunkat lefordítani.
2. variáció: Egyszerû Win32 alkalmazás létrehozása (konzol ablak nélkül)
Egyszerû Win32 alkalmazás
Az OpenGl-lel kapcsolatos könyvek
az elõzõ pontban leírt fordítási módszert
javasolják, én mégis szeretnék megmutatni
egy másikat, ami annyiban más, hogy
nem hoz létre egy külön konzol ablakot.
1. hozzunk létre egy új projektet.
Menjünk a Files menüre, válasszuk
ki a New... menüpontot. Válasszuk
a Projects
fület,és azon
belül a Win32 application-t. Írjuk
be a projekt nevét, legyen ez a név: first, majd OK.
2. a megjelenõ ablakban válasszuk
az A simple Win32 application pontot.
3. miután a projekt létrejött,
egészítsük ki az stdafx.h header file-t a következõ
sorral:
#include
<GL\glut.h>
4.
menjünk a Projects/Settings menüpontra,
majd válasszuk ki a Link fület.
Az Objects/Library modules alatti sorba
írjuk
be a következõket:
opengl32.lib glu32.lib glut32.lib. Ezzel hozzáadtuk a projekthez
a linkelendõ könyvtárakat.
5. a source files/first.cpp
file-t kiválasztva a következõ kódnak kell megjelennie:
#include
"stdafx.h"
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
// TODO: Place code here.
return 0;
}
Tulajdonképpen készen is vagyunk. Ezután a WinMain függvény lesz a main függvény, ide kell beírni az ablak jellemzõit beállító parancsokat. Ha ezt megtettük, akkor létrejön egy ablak, amelybe már tudunk rajzolni.
Ezek voltak a szükséges teendõk, részletesebb leírás a GLUT oldalon található.