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 :

Reinitialiser l'etat de la machine opengl


Sujet :

OpenGL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2006
    Messages
    450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 450
    Par défaut Reinitialiser l'etat de la machine opengl
    Bonjour,

    Je suis en train de developper sur un programme qui utilise une API proprio plus du code qui accede directement a la machine OpenGL et du code qui utilise un moteur 3d base sur OpenGL. J'ai donc tres souvent des conflits d'etat d'OpenGL entre les 3 differentes APIs et c'est une horreur a deboguer. J'aimerai donc faire un truc du genre :

    sauvegarder l'etat d'OpenGL
    Reinitialiser la machine OpenGL a son etat d'origine.
    faire quelques trucs
    revenir a l'etat precedent d'OpenGL

    Je sais qu'on peut faire ca avec le glPushAttrib pour la sauvegarde de l'etat mais j'aimerai vraiment tout tout sauvegarder (meme si ca prend du temps c juste pour du deboguage). Quelqu'un connaitrait-il un utilitaire permettant de faire cela ?

    Merci d'avance.

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    399
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 399
    Par défaut
    Salut,

    glPushAttrib(GL_ALL_ATTRIB_BITS) ne te convient pas ?
    SPARK
    Moteur de particule C++ opensource avec modules de rendu OpenGL, Irrlicht et SFML

  3. #3
    Membre émérite

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2006
    Messages
    450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 450
    Par défaut
    Non je veux aussi reinitialiser la machine OpenGL a son etat d'origine (l'etat juste apres avoir cree le contexte OpenGL). De plus glPushAttrib marche-t-il sur les extensions OpenGL ? Du genre les FBOs, etc. ?

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    399
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 399
    Par défaut
    Concernant les attributs d extensions :
    http://www.opengl.org/registry/specs..._attribute.txt
    donc a priori GL_ALL_ATTRIB_BITS gere les extensions sauf celle qui ont des attibuts qui appartiennent au groupe GL_MISC_BIT_EXT

    En fait ton problème, c est qu une pile ne te convient pas ?
    Une alternance de push/pop ca le fait pas ?

    Dans ce cas je ne vois pas. Peut etre sur le net il existe une classe qui te permet de stocker des etat et de les restaurer quand tu veux...
    SPARK
    Moteur de particule C++ opensource avec modules de rendu OpenGL, Irrlicht et SFML

  5. #5
    Membre émérite

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2006
    Messages
    450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 450
    Par défaut
    Ouais voila, en fait j'ai du code qui est exécuté par une API proprio en amont et donc je connais pas trop l'état de la machine OpenGL et je veux tout reset à zéro pour avoir un truc propre. Donc faire du push et pop oui ça m'intéresse mais la remise à zéro je peux pas vu que j'ai pas accès à l'initialisation de la machine OpenGL.

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    399
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 399
    Par défaut
    Je pense que la seule solution pour reinitialiser la valeurs des etats, c est de faire un glPushAttrib a l init et ensuite de faire un glPopAttrib suivi d un glPushAttrib a chaque fois qu on souhaite reinitialiser.

    Maintenant si tu n as pas acces a l init openGL, a moins de reinitialiser toi meme ou de trouver un bout de code sur le net qui te le fait, je pense pas qu il y ai d autres solutions. Tu n as pas acces au sources pour savoir ce qui est setté a l init ?
    SPARK
    Moteur de particule C++ opensource avec modules de rendu OpenGL, Irrlicht et SFML

Discussions similaires

  1. Etat de l'art Opengl sous windows
    Par nasboy3d dans le forum OpenGL
    Réponses: 2
    Dernier message: 11/04/2011, 10h19
  2. Réponses: 4
    Dernier message: 04/01/2011, 17h26
  3. Réponses: 1
    Dernier message: 05/09/2009, 16h12
  4. etat de la machine
    Par krokmitaine dans le forum Langage
    Réponses: 4
    Dernier message: 26/06/2006, 19h41
  5. Machines d'etats
    Par Fooshi dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 18/03/2004, 10h19

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