es gibt ja sehr viele dinge die erst als Extension eingeführt wurden und irgendwann in den Kern übernommen wurden..
Als beispiel mal die Shader, früher waren sie nur per ARB zu erreichen...
z.B. hieß es früher glCreateShaderObjectARB() und jetzt glCreateShader().
Was ich mich da jetzt frage.. ist es sinnvoll sofort umzusteigen auf die neue funktion? Oder läuft man da dann gefahr das die hälfte der Karten das nich unterstüzt? Oder ist das an und für sich im grunde genau die gleiche funktion im Treiber nur mit verschiedenem namen? (Also so das sogar im Header die gleiche funktion benutzt wird)?
Und wie verhält es sich mit den anderen extensions die nicht von ARB stammen, z.B. EXT..?
Registriert: Di Dez 27, 2005 12:44 Beiträge: 393 Wohnort: Berlin
Programmiersprache: Java, C++, Groovy
Hallo Aya,
ich würd sagen, wenn Shader in deinem Programm eine wichtige Rolle spielen, also du ohne sie nicht auskommst, solltest du die normale Funktion benutzen und OpenGL 2.0 voraussetzen.
Wenn Shader bei dir nur optional eingesetzt werden, um zusätzliche Effekte zu erzeugen, solltest du die Extension-Variante nehmen.
Viele Grüße
dj3hut1
_________________ Wenn Gauß heute lebte, wäre er ein Hacker. Peter Sarnak, Professor an der Princeton University
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
In sehr vielen Fällen ist es so, dass die Version im Kern und die der dazugehörigen Erweiterung sehr sehr gleich sind. Konstanten sind Identisch. Oftmals bekommst du dann sogar Funktionspointer die auf die gleiche Adresse zeigen. Das Einzige was sich dann unterscheidet ist der Name unter dem die Funktionspointer erfragt werden. (Angehängtes ARB oder EXT) Bei 3.0 sind sie sogar so weit gegangen, dass bei den Funktionsnamen der Erweiterungen das ARB entfernt wurde. Also macht es aus Sicht des Programmierers keinen Unterschied ob Kern oder nur Erweiterung.
Von daher spielt es oft auch keine Rolle welche Version du tatsächlich benutzt. Du musst nur intern dafür sorgen, dass es entsprechend gekappselt ist oder so.
glSlang ist aber ein Beispiel wo sich von der ARB Variante zur Kernversion ein bisschen was verändert hat. Aber das sind nur Funktiosnaufrufe. An glSlang hat sich meines Wissens nach nichts verändert.
Ich würde dir aber auch empfehlen, dass du gleich die 2.0 Variante benutzt. Die ist mittlerweile schon so alt, dass 1.5 + Erweiterung wohl kaum noch eine Rolle spielen dürfte. Allerdings solltest du evtl darauf achten, dass du deinen Code nicht zu sehr verwurschtelst. Also so gestalten, dass du neben 2.0 relativ einfach 1.5 + Erweiterung hinzufügen könntest. Ein halbwegs durchdachtes Klassenmodel lässt grüßen.
Mitglieder in diesem Forum: 0 Mitglieder und 8 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.