2011-02-06 1 views
3

GlBindBuffer équivaut-il à glBindBufferARB?OpenGL: puis-je mélanger glBindBuffer avec glBindBufferARB?

Les enums (comme GL_ARRAY_BUFFER et GL_ARRAY_BUFFER_ARB) sont-ils équivalents? Puis-je utiliser une énumération non -ARB dans glBindBufferARB? Puis-je mélanger + faire correspondre les appels glBindBuffer() avec glBindBufferARB()? AUSSI: si une carte supporte l'extension _ARB, supporte-t-elle toujours la fonction GL de base - même si sa version OpenGL n'est pas à jour?

Répondre

3

En général, il n'est pas légal de faire ce genre de chose, car les fonctionnalités de base et les extensions ne sont pas échangeables, même si elles ont le même nom (un exemple notable est le redémarrage primitif).

Cependant, dans ce cas particulier, ils sont exactement les mêmes avec les mêmes constantes, donc ... bien que ce ne soit pas légal, il est "ok" de les utiliser de façon interchangeable (ie personne ne le remarquera ne leur dis pas).

En général, vous ne pouvez pas supposer que si une extension ARB est présente, la fonction principale sera également présente. Il existe de nombreuses extensions ARB qui ne sont là que pour autoriser les implémentations OpenGL qui ne peuvent pas implémenter une version complète pour une raison quelconque de fournir au moins certaines fonctionnalités que le matériel peut fournir.