2010-05-27 12 views
17

Unterstützt OpenGL ES 2.0 noch glPushMatrix und glPopMatrix? Ich verwende diese zur Zeit auf folgende Weise:OpenGL ES 2.0 und glPushMatrix, glPopMatrix

glPushMatrix(); 
glTranslatef(xLoc, yLoc, 0); 
[myTexturePointer drawAtPoint:CGPointZero]; 
glPopMatrix(); 

Ich frage, weil ich ein paar Dinge über 2.0 gelesen habe „von der Spezifikation der Matrix-Stack zu entfernen“. Da ich OpenGL relativ neu kenne, bin ich mir nicht sicher, wo ich eine definitive Antwort finden kann.

Antwort

17

Nein, OpenGL ES 2.0 verwendet eine programmierbare Pipeline anstelle der in früheren Versionen gefundenen festen Funktionspipeline. Sie können keine Befehle für den unmittelbaren Modus (glVertex, glNormal usw.) oder den Matrixstapel verwenden. Sie sollten stattdessen Ihre eigene Matrixstack-Datenstruktur implementieren (was sowieso vorzuziehen ist, da der Stapel der festen Funktionsmatrix eine implementierungsabhängige Tiefe hat) und die aktuelle Matrix an die Shader-Programme senden.

Für eine gute Einführung in moderne OpenGL überprüfen Sie diese tutorials from Durian Software. Sie basieren auf OpenGL 2.0, die Konzepte werden jedoch direkt der ES 2.0-Spezifikation zugeordnet.