OpenGL-ohjelmointi X-Window-ympäristössä vaatii GLX-aliohjelmakirjaston GL:n lisäksi. GLX-aliohjelmakirjasto sisältää aliohjelmia ikkunoiden alustuksiin ja avauksiin. Ne hoitavat samoja toimenpiteitä, joita Wiggle-aliohjelmat hoitavat Windows-ohjelmoinnissa.
Ikkunaa alustettaessa täytyy ensin löytää XVisualInfo-tyyppinen tiedosto, joka on yhteensopiva OpenGL:n kanssa. Aliohjelma glXChooseVisual( Display *, int , int * ) palauttaa onnistuessaan osoittimen uuteen XVisualInfo-tiedostoon.
{
|
Myös X-Window-ympäristössä täytyy luoda oma OpenGL-yhteys, jonka kautta piirtorutiinit voidaan suorittaa. X-Window-ympäristössä yhteys on tyyppiä GLXContext. GLXContext-yhteys luodaan aliohjelmalla glXCreateContext(Display *, XVisualInfo *, GLXContext, Bool). Kun yhteys on luotu ja ikkuna avattu, on yhteys tehtävä aktiiviseksi aliohjelmalla glXMakeCurrent(Display *, GLXDrawable, GLXContext), jonka jälkeen voidaan suorittaa halutut piirtorutiinit.
GLX_STENCIL_SIZE, 1, GLX_GREEN_SIZE, 1, GLX_BLUE_SIZE, 1, GLX_RED_SIZE, 1, None }; Display *dpy; Window win; int main( int argc, char **argv ) {
GLXContext OGLContext; XEvent event; dpy = XOpenDisplay( 0 ); vis = getVisual( dpy, OGL_config ); OGLContext = glXCreateContext( dpy, vis, 0, True ); win = createOGLWindow( dpy, vis ); glXMakeCurrent( dpy, win, OGLContext ); XMapWindow( dpy, win ); ... /* silmukka jossa kutsutaan piirtorutiineja, */ ... /* hoidetaan ikkunan päivitys ja lopetus. */ |
Kuvassa 9.2. olevan neliön piirtoon X-Window-ympäristössä tarvittava ohjelmakoodi on liitteessä 3.