Comment utiliser OpenGL ES sur un thread séparé sur l'iphone?
La boucle de rendu OpenGL ES est placé sur un thread séparé dans mon application iphone. Tout va bien sauf que le EAGLContext de presentRenderbuffer méthode échoue. Le résultat est un écran blanc vide.
Lorsque le code est exécuté sur le thread principal, presentRenderbuffer réussit et le graphique est correctement indiqué.
Quelle est la bonne façon de faire de l'OpenGL sur un thread séparé?
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin pour créer un
EAGLSharegroup
.Découvrez ce fil sur le partage des contextes OpenGL entre les threads.
Mise à JOUR
Précédente à iOS5 j'ai partagé contextes OpenGL entre les threads pour permettre le chargement asynchrone des textures à partir du disque. Mais iOS5 est
CVOpenGLESTextureCaches
essentiellement faire la texture de la télécharge gratuitement, donc je n'ai pas besoin shareGroups plus et mon code est plus simple et plus rapide.Merci, Fistman. J'ai fait le travail et a obtenu le gain de performance que j'attendais de l'aide d'un thread séparé. EAGLSharegroup résolu le problème.
J'ai créé le cadre pour le deuxième thread comme décrit ici.
Ici est le code standard:
Vous ne devriez pas rendre le contexte d'un thread différent. Au lieu de cela, faire tous les calculs sur un autre thread, et de s'assurer de l'affichage se produit sur l'écran principal fil.