Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème avec OpenGL et glDeleteTextures

Sujet résolu
    14 juin 2018 à 11:03:32

    Bonjour!

    Ca fait quelques jours que je me mets au Open GL moderne et j'essaye de rendre une texture à l'écran.

    Pour cela j'ai créé une classe Texture avec ces fonctions:

    -create():

    //// Génération de la texture
    glGenTextures(1, &_id);
    glBindTexture(GL_TEXTURE_2D, _id);
    
    //// Ajout des filtres
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, PARAMS.minFilter);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, PARAMS.magFilter);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, PARAMS.wrapS);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, PARAMS.wrapT);
    
    //// Ajout des données
    glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, _width, _height, 0, GL_RGBA, GL_UNSIGNED_BYTE, _data);
    glBindTexture(GL_TEXTURE_2D, 0);
    

    et destroy():

    glDeleteTextures(1, &_id);

    (Il y en a d'autres mais elles ne posent aucun problèmes)

    J'arrive parfaitement à la rendre à l'écran mais quand il faut supprimer la texture avec destroy() il y a une erreur:

    Et destroy() est appelée lors de la fermeture de la fenêtre, ai-je mal fait ma fonction destroy()/create() ou mal placé l'appel du destroy()?


    • Partager sur Facebook
    • Partager sur Twitter
      14 juin 2018 à 13:40:19

      Salut !

      Pour détruire la texture, il faut un contexte actif et valide.
      Il faut t'assurer que la fenêtre soit encore valide, avant de détruire les objets du contexte OpenGL.
      (généralement, dans le dtor de la fenêtre, celle-ci n'est plus valide, et le contexte OpenGL non plus, du coup)

      • Partager sur Facebook
      • Partager sur Twitter

      Si vous ne trouvez plus rien, cherchez autre chose.

        14 juin 2018 à 17:47:02

        dragonjoker a écrit:

        Salut !

        Pour détruire la texture, il faut un contexte actif et valide.
        Il faut t'assurer que la fenêtre soit encore valide, avant de détruire les objets du contexte OpenGL.
        (généralement, dans le dtor de la fenêtre, celle-ci n'est plus valide, et le contexte OpenGL non plus, du coup)

        Ah... Je comprends mieux maintenant! Merci beaucoup!

        • Partager sur Facebook
        • Partager sur Twitter

        Problème avec OpenGL et glDeleteTextures

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown