Mislav Božičević: OpenGL bez GLUT-a: GLX i X11

Opis sadržaja seminara

Pripremljen je projekt koji se sastoji od tri primjera.

Prvi program demonstrira minimalan skup radnji koje je potrebno provesti kako bi se kreirao OpenGL-sposoban X11 prozor. Nakon inicijalizacije, sadržaj prozora se čisti na žutu boju. Prozor se sam zatvara nakon par trenutaka.

Drugi program demonstrira objektno orijentirani pristup konceptu prozora s naglaskom na funkcionalnost obrade znakova s tipkovnice. U primjeru, omogućeno je rotiranje kvadra za negativan i pozitivan kut. Program omogućuje rotiranje s naredbama 'r' i 'R' te izlaz iz programa naredbom 'q'. Program iscrtava sadržaj prozora po Event-driven modelu, a u ostalo vrijeme spava.

Treći program demonstrira objektno orijentirani pristup konceptu prozora s naglaskom na funkcionalnost animacije (što se postiže timerom). U primjeru, animiran je vjetromjer uz odgovarajuće efekte. Izlaz iz programa moguć je naredbom 'q'. Program iscrtava sadržaj prozora neovisno o događajima te konzumira procesorsku jezgru skoro do maksimuma (spava samo konfigurabilne intervale u nanosekundama, što je vidljivo u pozivu funkcije prozor_registriraj_callback_timer).

Ulazna točka za svaki primjer nalazi se u datoteci main.c. Za svaki primjer pripremljena je Makefile datoteka, što znači da je dovoljno postaviti direktorij s izvornim kodom kao radni direktorij i pokrenuti naredbu make. Npr., u terminalu utipkati:

cd kod/1/
make clean; make
./hello.x

Nakon make-anja, u radnom direktoriju se pojavljuje datoteka s ekstenzijom .x. To je izvršna verzija datoteke, no u nekim okolinama je potrebno dozvoliti izvršavanje npr. naredbom:

chmod a+x ./hello.x

U razvoju i testiranju korišten je operacijski sustav Debian 3.16.7-ckt2-1 (2014-12-08) x86_64 GNU/Linux te kompilator Debian clang version 3.5.0-9 (tags/RELEASE_350/final) (based on LLVM 3.5.0). Promjena kompilatora moguća je promjenom varijable CC u pojedinom Makefile-u.

Programi su X11 klijenti te se postavljanjem varijable DISPLAY, kao što je dokumentirano komentarima u prozor.c datoteci, može spajati na udaljeni X11 server.

Preuzimanje prezentacije

Prezentacija se može preuzeti ovdje.

Izvorni kod i uputa o kompiliranju

Izvorni se može preuzeti ovdje.

Kompiliranje se provodi prema priloženim Makefile-ovima.

Literatura i korisne poveznice