opengl state manager
-
habe gestern angefangen einen state manager zu schreiben um überflüssiges setzen
von den states zu vermeiden. dabei ist mir aufgefallen das ich in meinem bestehenden code auch schon viel zu viel hin und herschalte. habs einfach mal abgeändert. allerdings bei einer sache habe ich ein problem, dieses wird aber auch oft in irgendwelchen sampels so gemacht.// pseudo // mainloop render1(); render2(); void render1() { glEnable(GL_TEXTURE_2D); // mesh rendern glDisable(GL_TEXTURE_2D); } void render2() { glEnable(GL_TEXTURE_2D); // mesh rendern glDisable(GL_TEXTURE_2D); }
es geht mir nicht um den texture state sondern einfach darum ob dies sinn macht
am anfang der funktion einen state einschaltet und am ende wieder aus, allerdings wird dieser ja in der nächsten funktion wieder eingeschaltet.meinungen, kommentare, erfahrungen... legt los
-
In dem Beispiel da oben macht das natürlich überhaupt keinen sinn.
Wenn zwischen den beiden Funktionen noch was kommt, das nicht texturiert werden darf gehts wohl nicht anders. Das viele setzen der States tut aber auch nicht weh - Also Performance-mäßig. Es behindert allenfalls die Übersicht
-
Es hat schon einen gewissen Sinn, ws genau so zu machen. So muss nämlich eine Funktion nicht wissen, was im restlichen Programm passiert.
Lässt man disable in der 1. und enable in der 2. weg, funktioniert es trotzdem. Aber was ist, wenn später noch ein render3 zwischendrin eingefügt werden muss, und dieses, auf eine z.b. CubeTextur schaltet? A....karte.
Bye, TGGC \-/