Dans une tentative de créer une barre de chargement pour un jeu iPhone que je développe (en utilisant Cocos2D), j'ai voulu utiliser une approche multithread.Programmation OpenGL multi-thread dans Cocos2D-iPhone
Un thread affiche un écran de chargement et exécute la boucle d'événement d'application principale tandis qu'un nouveau thread charge silencieusement tous les sprites en arrière-plan (via spriteWithFile), puis les ajoute à un calque.
je crée le nouveau fil en utilisant la méthode detachNewThreadSelector de NSThread (qui envoie des mises à jour de l'état de chargement du thread principal via performSelectorOnMainThread). Le problème auquel je suis confronté est que tous les appels OpenGL (tels que ceux trouvés dans la méthode spriteWithFile) dans le nouveau thread meurent avec une erreur de BUS ERROR ou une erreur d'accès mémoire de quelque sorte. Je suppose que c'est parce que les deux threads tentent de faire des appels OpenGL en même temps ou le nouveau thread n'est pas conscient du contexte OpenGL.
Ce qui doit être fait pour permettre à plusieurs threads de faire des appels OpenGL sur l'iPhone en utilisant Cocos2D-iPhone.
http://www.cocos2d-iphone.org/forum/topic/363 cela a également été utile. –
Lien dans la première réponse: 1. Je reçois un avertissement de logiciel malveillant à partir du navigateur. Quand je dis encore à l'ignorer 2. Je reçois 404. –
J'ai corrigé le lien et mis à jour la réponse. –