Dobry den,
neodpustim si jednu poznamku: v OpenGL je kontrola programatorovych chyb dost mizerna, a to mi (i kdyz mam OpenGL moc rad a asi je to i videt z mych clanku) vadi, zejmena pri vyuce pocitacove grafiky, nebo pri praci s OpenGL u zacatecniku.
Zkuste napriklad napsat prikaz glVertex() mimo prikazove "zavorky" glBegin(), glEnd(). Na nekterych platformach a gfx. akceleratorech klidne zacnete hledat tlacitko reset :-(, na nekterych se zase od tohoto prikazu nebude nic renderovat. Proste je to chyba, ktere prekladac ani OpenGL nemuze zamezit, hlavne, kdyz netestujete chybove stavy.
Vas kod v DirectX byl korektni, protoze testoval veskere chybove stavy. Pokud tam ty testy nedate, ziskate +- podobnou (srovnatelnou) delku kodu.
Tak to ale neni ani zapotrebi delat v DirectX. Podivejte, ja se Directu v zadnem pripade nezastavam, ale porovnavat program v DirectX, ktery testuje vsechny mozne chybove stavy s programem v OpenGL, ktery proste doufa, ze vsechno probehlo v poradku, neni moc ferove.
Taky ten program v OpenGL neni analogii toho v DirectX, to by se musely pouzit vertex arrays, coz neni ani u OpenGL moc citelne (spis naopak).
A kdyz uz jsme u tech chyb, kdyz se da prikaz glVertex() mimo prikazove zavorky, je to jiste chyba programatora, ale take chyba knihovny, ze se z toho nejakym jasne definovanym zpusobem nevzpamatuje (nebo nezhavaruje, to je jedno, hlavne at je to jednotne).