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

C++ Discussion :

Qt OpenGL erreurs a la sortie de l'application


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2014
    Messages : 183
    Par défaut Qt OpenGL erreurs a la sortie de l'application
    bonjour,
    j'ai enfin réussi a compiler mon code mais quand je le lance il plante et j'ai ça a la sortie de l'application :
    Init SGL4 version:1.08.00.290036
    QOpenGLContext::swapBuffers() called with non-exposed window, behavior is undefined
    Erreur le fichier Shaders\couleur3D.vert est introuvable
    BPP(32) DB(1N) W(160) H(160) Xclip(0) Yclip(0) PFD(13)
    quelqu'un pourrait m'aider a la déchiffrer ?
    merci

  2. #2
    Membre Expert
    Avatar de imperio
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2010
    Messages : 871
    Par défaut
    Je serais tente de dire que ca vient du fait que tu n'as pas de fenetre ou alors mal initialisee, mais sans code je ne peux pas en deviner plus...

  3. #3
    Membre très actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2014
    Messages : 183
    Par défaut
    voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    #include "scene.h"
    #include "window.h"
    #include "Shader.h"
    #include <glm/glm.hpp>
    #include <glm/gtx/transform.hpp>
    #include <glm/gtc/type_ptr.hpp>
    #include "scene.h"
    SceneOpenGL::SceneOpenGL(QString titreFenetre, QGLFormat format) : m_titreFenetre(titreFenetre), m_contexteOpenGL(format)
    {
        m_contexteOpenGL.create();
    }
    SceneOpenGL::~SceneOpenGL()
    {
        m_fenetre->close();
    }
    void SceneOpenGL::bouclePrincipale()
    {
        // Variables
     
        bool terminer(false);
        float vertices[] = {-0.5, -0.5, -1.0,   0.0, 0.5, -1.0,   0.5, -0.5, -1.0};
        float couleurs[] = {1.0, 0.0, 0.0,  0.0, 1.0, 0.0,  0.0, 0.0, 1.0};
     
     
        // Shader
        Shader shaderCouleur("C:\\Users\\Administrateur\\Desktop\\programmes\\OpenGL\\Shaders\\couleur3D.vert", "C:\\Users\\Administrateur\\Desktop\\programmes\\OpenGL\\Shaders\\couleur3D.frag", &m_contexteOpenGL);
        shaderCouleur.charger();
        // Matrices
        glm::mat4 projection;
        glm::mat4 modelview;
        projection = glm::perspective(70.0, (double) m_largeurFenetre / m_hauteurFenetre, 1.0, 100.0);
        modelview = glm::mat4(1.0);
     
        // Boucle principale
     
        while(!terminer)
        {
            // Nettoyage de l'écran
            glClear(GL_COLOR_BUFFER_BIT);
            // Réinitialisation de la matrice modelview
            modelview = glm::mat4(1.0);
            // On spécifie quel shader utiliser
            f.glUseProgram(shaderCouleur.getProgramID());
                // On remplie puis on active le tableau Vertex Attrib 0
                f.glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0, vertices);
                f.glEnableVertexAttribArray(0);
                // Même chose avec le tableau Vertex Attrib 1
                f.glVertexAttribPointer(1, 3, GL_FLOAT, GL_FALSE, 0, couleurs);
                f.glEnableVertexAttribArray(1);
                // On envoie les matrices au shader
                f.glUniformMatrix4fv(f.glGetUniformLocation(shaderCouleur.getProgramID(), "modelview"), 1, GL_FALSE, glm::value_ptr(modelview));
                f.glUniformMatrix4fv(f.glGetUniformLocation(shaderCouleur.getProgramID(), "projection"), 1, GL_FALSE, glm::value_ptr(projection));
                // On affiche le polygone
                glDrawArrays(GL_TRIANGLES, 0, 3);
                // On désactive les tableaux Vertex Attrib puisque l'on n'en a plus besoin
                f.glDisableVertexAttribArray(1);
                f.glDisableVertexAttribArray(0);
            // On n'utilise plus le shader
            f.glUseProgram(0);
            // Actualisation de la fenêtre
            m_fenetre->updateGL();
        }
    }
    bool SceneOpenGL::initialiserFenetre()
    {
     
        // Création de la fenêtre
     
        QDesktopWidget bureau;
        QGLFormat format;
        format.setDoubleBuffer(true);
        QRect surface_bureau = bureau.screenGeometry();
        int w = surface_bureau.width()/2;
        int h = surface_bureau.height()/2;
        int x = w/2;
        int y = h/2;
        m_fenetre = new window(m_titreFenetre, x, y, w, h, &format);
        m_fenetre->setContext(&m_contexteOpenGL);
        m_fenetre->makeCurrent();
        f.initializeGLFunctions(&m_contexteOpenGL);
     
        if(m_fenetre == 0)
        {
            std::cout << "Erreur lors de la creation de la fenetre " << std::endl;
     
            return false;
        }
     
     
        if(m_contexteOpenGL.isValid() == false)
        {
            std::cout << "erreur contexte opengl" << std::endl;
            m_fenetre->close();
            delete m_fenetre;
            return false;
        }
        return true;
    }

  4. #4
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 119
    Billets dans le blog
    148
    Par défaut
    Bonjour,

    Il ne trouve pas le fichier de shader (car il n'est surement pas copié à coté de l'exécutable).
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  5. #5
    Membre très actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2014
    Messages : 183
    Par défaut
    ça je le savais et c'est réglé mais le probleme viens plutot de :
    QOpenGLContext::swapBuffers() called with non-exposed window, behavior is undefined

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 147
    Billets dans le blog
    4
    Par défaut
    Tu fais ton rendu dans un autre thread que celui qui a créé le context ?
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

Discussions similaires

  1. [E-03] Erreur d'entrée / Sortie
    Par Daejung dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 23/10/2008, 22h40
  2. Erreur d'entrée/sortie : unable to read inode block - inode
    Par Christophe P. dans le forum Administration système
    Réponses: 2
    Dernier message: 04/09/2008, 14h21
  3. [SimpleXML] Erreur d'entrée sortie
    Par sliderman dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 13/03/2008, 15h43
  4. instruction opengl : erreur mémoire
    Par casafa dans le forum OpenGL
    Réponses: 8
    Dernier message: 11/09/2007, 16h29
  5. [Tableaux] erreur bbcode pour sortie
    Par speedylol dans le forum Langage
    Réponses: 2
    Dernier message: 02/09/2006, 22h51

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