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.
Prezentacija se može preuzeti ovdje.
Izvorni se može preuzeti ovdje.
Kompiliranje se provodi prema priloženim Makefile-ovima.