|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
Inscription : mai 2011 Messages : 216 ![]() |
Bonjour,
Je suis sur un jeux de labyrinthe OpenGL. Ca marche , mais quand j'avance ca bloque par moment , mais cela ne vient pas d'OpenGL, car arriver à certain endroit , mon processus à besoin de chercher des données pour compléter l'endroit ou je me situe. Pour y palier à ce probléme , je vais créer un thread dont son boulot c'est d'aller chercher des données primitive et textures et de les envoyer à OpenGL avec glGenList pour les primitives etc. et GlBuildtexIma... GlBindTexture pour les textures , mais il va falloir que je synchronise pour eviter crash. Question : Peux t'on définir et envoyer des primitives (glNewList) et texture (glBuildTex....) à OpenGL depuis un thread ? Existe t'il dans openGL une fonction du genre verrouillage dédié à ce gere d'operation ? Car dans windows il y a déjà les API pour cela , mais existe t'il dans OpenGL pour ce genre d'operation ? Merci. |
|
|
00
|
|
|
#2 |
|
Membre chevronné
![]() Inscription : mars 2011 Messages : 433 ![]() |
Salut,
Envoyer les primitive depuis un autre thread ne pose pas de problème (cf ici) La fonction de verouillage s'appel un mutex et ce n'est pas spécifique à OpenGL, mais à la gestion des thread en général cf la faq (utilise QT mais le principe est le même pour tous les mutex).
__________________
La perfection est atteinte, non pas lorsqu’il n’y a plus rien à ajouter, mais lorsqu’il n’y a plus rien à retirer. - Antoine de Saint-Exupéry |
|
|
00
|
|
|
#3 |
|
Membre habitué
![]() Étudiant Inscription : juin 2009 Messages : 155 ![]() |
Bonsoir !
Attention, les displays lists sont "deprecated" (= has been Et donc si il te prend l'initiative de les remplacer par des arrays buffer, renseigne toi sur le partage de contexte opengl, çà te permet d'avoir un thread qui continue à dessiner, pendant que l'autre charge le nouveau buffers et les textures. Ensuite, juste un petit coup de mutex le temps du swap des indexs nouvellement chargé avec les "ancien" et le tour est joué.
|
|
00
|
Copyright © 2000-2012 - www.developpez.com