J'ai vu un exemple de code (notamment dans les projets iOS GL) où le nom de texture GL actuel est mis en cache, et une comparaison effectuée avant d'appeler glBindTexture. L'objectif est d'éviter les appels inutiles à glBindTexture.OpenGL - glBindTexture - optimisation prématurée?
par exemple. Cette approche nécessite que TOUS les appels à glBindTexture soient traités de manière similaire, de préférence à travers un wrapper. Mais l'inclusion de code tiers rend ce problème, tout en étant Encore une autre chose à retenir.
Q. Est-ce une optimisation utile? Ou l'implémentation OpenGL est-elle assez intelligente pour ignorer les appels à glBlindTexture où le nom de la texture n'a pas changé?
Merci.
Merci Ron. Mon penchant naturel est de l'envelopper, mais il y a aussi le problème du code tiers appelant glBindTexture sans utiliser mon état en cache. – SirRatty
La situation idéale serait d'encapsuler votre code dans une bibliothèque qui se connecte à OpenGL et de supposer que les appelants de votre bibliothèque ne saisiront pas délibérément votre contexte et n'appelleront pas les fonctions OpenGL dessus. Hélas, ce n'est pas toujours possible, donc vous devez vivre avec la machine d'état OpenGL et ses faiblesses. –