IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

OpenGL Discussion :

Context opengl, création / destruction


Sujet :

OpenGL

  1. #1
    Expert confirmé
    Avatar de shenron666
    Homme Profil pro
    avancé
    Inscrit en
    Avril 2005
    Messages
    2 524
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : avancé

    Informations forums :
    Inscription : Avril 2005
    Messages : 2 524
    Points : 5 184
    Points
    5 184
    Par défaut Context opengl, création / destruction
    Salut la compagnie

    j'ai une question d'ordre existentielle au sujet du context opengl

    si on veux passer d'un affichage fenêtré à un affichage en plein écran (par exemple), en gros il faut détruire et recréer la fenêtre et donc contexte opengl

    tout ce qu'on avait créé (display list, vbo, texture ids...) n'existe plus et doit donc être recréé

    par contre, lorsque l'on quitte l'application, la logique veut que l'on détruise ces éléments

    ma question est, lorsque l'on détruit le contexte pour changer de résolution, on ne se soucie pas de libérer les éléments liés au context, quelle différence cela fait-il ?
    vaut-il mieux libérer les resources opengl avant de détruire la fenêtre afin d'avoir quelque chose de propre ou cela n'a pas d'importance ?

    j'espère être assez clair dans mes explications et n'hésitez pas à dire ce que vous en pensez
    Tutoriels OpenGL
    Je ne répondrai à aucune question en MP
    - Si c'est simple tu dis que c'est compliqué et tu le fait
    - Si c'est compliqué tu dis que c'est simple et tu le sous-traite ou le fait faire par un stagiaire.

  2. #2
    Membre éclairé
    Avatar de Happy
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2005
    Messages
    665
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Autre

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2005
    Messages : 665
    Points : 875
    Points
    875
    Par défaut
    Cela m'intéresse également, mais au niveau vitesse c'est mieux de ne plus rien détruire, d'après ma logique.

  3. #3
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Moi je pense plutôt le contraire : il faudrait normalement détruire tes ressources OpenGL avant la destruction du contexte (lors du changement de résolution). Car ok en interne tout est détruit, mais que se passe-t-il du côté de ton programme ? Tu vas te retrouver avec des identificateurs invalides, non ?

  4. #4
    Expert confirmé
    Avatar de shenron666
    Homme Profil pro
    avancé
    Inscrit en
    Avril 2005
    Messages
    2 524
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : avancé

    Informations forums :
    Inscription : Avril 2005
    Messages : 2 524
    Points : 5 184
    Points
    5 184
    Par défaut
    quand je parle de détruire, je pense surtout à appeler par exemple glDeleteTextures avant de détruire le context

    sachant que lors d'un changement de context il faut tout recréer, les identifiants de texture qu'on avait n'étant plus valides, il faut refaire des glGenTextures pour avoir de nouveaux identifiants

    comme Happy, je me suis dit que ce n'était pas utile de faire des appels à glDeleteTextures si ce n'est pas pour éliminer une texture du contexte

    j'ai pas l'impression d'être très clair en plus, peut-etre que si je parle en pseudo code ce serai plus simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    1 - supprimer les identifiants opengl (glDeleteTextures...)
    2 - détruire la fenêtre et le contexte
    3 - recréer la fenêtre et le contexte
    4 - obtenir de nouveaux identifiants
    et je me demande donc si l'étape 1 est utile, sachant qu'en toute logique c'est plus propre de l'appliquer

    un peu comme un new qu'on delete pas, on se dit que le système s'en chargera le driver fait-il correctement le nettoyage à la destruction du contexte ?

    désolé de poser des questions aussi tordues
    Tutoriels OpenGL
    Je ne répondrai à aucune question en MP
    - Si c'est simple tu dis que c'est compliqué et tu le fait
    - Si c'est compliqué tu dis que c'est simple et tu le sous-traite ou le fait faire par un stagiaire.

Discussions similaires

  1. Exemple de création d'un contexte opengl sans fenêtre
    Par kottogeek dans le forum OpenGL
    Réponses: 11
    Dernier message: 28/08/2014, 09h55
  2. Réponses: 3
    Dernier message: 17/02/2011, 16h39
  3. import fichier vrml avec coin3d dans un contexte openGL
    Par kikodingo dans le forum OpenGL
    Réponses: 1
    Dernier message: 08/05/2007, 22h28
  4. Réponses: 4
    Dernier message: 13/02/2007, 17h40
  5. Création/Destruction
    Par HT dans le forum Langage
    Réponses: 5
    Dernier message: 22/05/2003, 17h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo