2017-09-24 1 views
1

J'ai construit mon application iOS en utilisant OpenGLES 3. Maintenant, je veux qu'elle prenne en charge les appareils plus anciens avec OpenGLES 2. J'ai démarré le contexte comme ES 2 et tout fonctionne. Cependant, mon application utilise des en-têtes ES 3, certaines fonctions y sont donc présentes.OpenGL ES 2 et 3 sur iOS

Par exemple:

ES 3 -> glBindVertexArray 
ES 2 -> glBindVertexArrayOES 

Est-il sûr de garder les en-têtes ES 3 et ES appeler la fonction 3 sur ES 2 seulement (si ce dispositif prend en charge l'extension OES). Si non, comment résoudre ce problème? Je ne peux pas faire quelque chose comme

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

parce glBindVertexArrayOES est pas en-têtes ES 3 et glBindVertexArray est pas dans ES 2 et je ne sais pas la version ES en construction temps, seulement lors de l'exécution.

Répondre

0

J'ai testé que par la construction de l'application contre OpenGLES 3 têtes et en utilisant

glBindVertexArray 

travaille même si le contexte est réglé sur 2 ES sur les appareils plus anciens.