2017-09-24 128 views
1

我已经使用OpenGLES 3构建了我的iOS应用程序。现在我希望它支持使用OpenGLES 2的旧设备。我已经在ES 2中引用了上下文,并且所有工作都正常。但是,我的应用程序使用ES 3标头,因此其中包含一些功能。iOS上的OpenGL ES 2和3

例如:

ES 3 -> glBindVertexArray 
ES 2 -> glBindVertexArrayOES 

是否安全,保持ES 3头,并调用ES 3功能于ES 2仅设备(如果该设备支持OES扩展)。如果没有,如何解决这个问题?我不能这样做

if (version == 2) glBindVertexArrayOES(0) 
else glBindVertexArray(0) 

因为glBindVertexArrayOES不在ES 3头和glBindVertexArray没有在ES 2,我不知道在构建时ES版本,仅在运行时。

回答

0

我已经测试了通过建立应用针对OpenGLES 3个页眉和使用

glBindVertexArray 

如果上下文被设置为ES 2上较旧的设备正在工作,甚至。