Précédent   Forum des professionnels en informatique > Applications > Développement 2D, 3D et Jeux > API graphiques > OpenGL
OpenGL Forum d'entraide sur le développement en OpenGL. Avant de poster -> FAQ OpenGL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/12/2011, 20h08   #1
 
Inscription : mai 2011
Messages : 216
Détails du profil
Informations personnelles :
Localisation : France, Vienne (Poitou Charente)

Informations forums :
Inscription : mai 2011
Messages : 216
Points : -3
Points : -3
Par défaut Envoie de primitive et texture depuis un thread

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.
yann458 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2011, 09h15   #2
Membre chevronné
 
Homme
Inscription : mars 2011
Messages : 433
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : mars 2011
Messages : 433
Points : 792
Points : 792
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 . Il y a moult API disponible pour gérer facilement un mutex.
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
pyros est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2011, 20h41   #3
Membre habitué
 
Homme
Étudiant
Inscription : juin 2009
Messages : 155
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 21

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2009
Messages : 155
Points : 102
Points : 102
Bonsoir !

Attention, les displays lists sont "deprecated" (= has been ) et peuvent ne plus êtres prisent en charge par certaines cartes graphiques. 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é.
LastSpear est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h22.


 
 
 
 
Partenaires

Hébergement Web