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 :

Ecran de veille integrant OpenGl


Sujet :

OpenGL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de Flow_75
    Femme Profil pro
    Ingénieure
    Inscrit en
    Mai 2005
    Messages
    1 102
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieure
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 102
    Par défaut Ecran de veille integrant OpenGl
    Bonjour,

    J'essaye d'intégrer OpenGl dans un écran de veille.
    J'ai trouvé un sujet : http://www.developpez.net/forums/sho...d.php?t=586624 auquel j'essaye de participer.

    J'ai essayé l'exemple que Melem a fourni.

    Ensuite, je tente d'y intégrer OpenGl pour afficher pour l'instant un repère tridimensionnel. J'ai mis sur le sujet le code principal de l'écran de veille. Mais il ne m'affiche qu'un ecran noir.

    Y aurait il quelqu'un qui pourrait m'aider ?

    Merci d'avance.
    Flo

  2. #2
    Expert confirmé
    Avatar de raptor70
    Inscrit en
    Septembre 2005
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Septembre 2005
    Messages : 3 173
    Par défaut
    Il n'y a pas vraiment assez de code pour trouver ton erreur, mais voici un petite liste des erreurs "classique" pour un ecran noir:
    * redessin de la fenetre non-appelé
    * swapbuffer oublié
    * mauvais placement de la caméra (ou des objets)

  3. #3
    Membre éprouvé Avatar de Flow_75
    Femme Profil pro
    Ingénieure
    Inscrit en
    Mai 2005
    Messages
    1 102
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieure
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 102
    Par défaut
    voici le reste du 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
    #include "Include.h"
    double a=0;
     
    void SetupPixelFormat(HDC hDC)
    { 	 
      	PIXELFORMATDESCRIPTOR pfd =
    { 	 
    	sizeof(PIXELFORMATDESCRIPTOR), 	//taille du descripteur de format
    1, 	//version
    PFD_SUPPORT_OPENGL |
    PFD_DRAW_TO_WINDOW |
    PFD_DOUBLEBUFFER, 	//Propriété
    PFD_TYPE_RGBA, 	//Mode de couleurs
    16, 	//Bits de couleur
    0, 0, 0, 0, 0, 0, 	//Paramètres des couleurs
    0,0, 	//Paramètres alpha
    0,0, 0, 0, 0, 	//Paramètres du buffer d'accumulation
    32, 	//Bits de profondeur
    0, 	//Bits du buffer stencil
    0, 	//Nombre de buffers auxiliaires
    0, 	//ignoré (obsolète)
    0, 	//réservé/code>
    0, 	//ignoré (obsolète)
    0, 	//Couleur de transparence
    0 	//Ignoré (obsolète)
      	}; 	 
     
    int pixelFormat;
    pixelFormat = ChoosePixelFormat(hDC, &pfd);
    if (!pixelFormat)
    { 	
     
     
     
    MessageBox
    (
    WindowFromDC(hDC),
    "Mode graphique non supporté",
    "Problème",
    MB_ICONERROR | MB_OK
    );
    exit(1);
    	/*Vérifie si un PixelFormat du type demandé existe*/
    } 	
    if (!SetPixelFormat(hDC, pixelFormat, &pfd))
    { 	  	 
     
     
    MessageBox
    (
    WindowFromDC(hDC),
    "Mode graphique non supporté",
    "Problème",
    MB_ICONERROR | MB_OK
    );
    exit(1);
    	/*Applique le PixelFormat. Arrête si erreur*/
    } 	
    }
     
     
    void Draw()
    {
     
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glMatrixMode(GL_MODELVIEW);
    gluLookAt(3,2,3,0,0,0,0,1,0); 
     
    glBegin(GL_LINES);
      glVertex2i(0,0);glVertex2i(0,1);
      glVertex2i(0,0);glVertex2i(1,0);
      glVertex2i(0,0);glVertex3i(0,0,1);
    glEnd();
    glLoadIdentity();
    SwapBuffers(hDC); 	// glutSwapBuffers(); pour glut
    } 	
     
    void Reshape(int width, int height)
    { 	
        float r;
        r=width/height;
     
    	glViewport(0,0,width,height);
      	glMatrixMode(GL_PROJECTION);
      	glLoadIdentity();
      	gluPerspective(45.,r,0.1,100.);
    } 	
     
    void InitGL()
    {
    }
    Pour info, les coordonnées de caméra sont tiré d'un tutoriel (http://www-evasion.imag.fr/Membres/A...l/opengl3.html)

  4. #4
    Expert confirmé
    Avatar de raptor70
    Inscrit en
    Septembre 2005
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Septembre 2005
    Messages : 3 173
    Par défaut
    Tu as oublié de spécifier une couleur pour ton repère donc tu va dessiner "noir" sur "noir" je pense.

    De plus, préfère glVertex3f à glVertex2i. (il me semble qu'il y a un soucis avec les entiers sur certaines carte graphique..)

    Enfin, il est préférable de faire le glLoadIdentity avant le gluLookAt pour réinitialiser la matrix ModelView.

    Essaye déjà avec tout ça ...

  5. #5
    Membre éprouvé Avatar de Flow_75
    Femme Profil pro
    Ingénieure
    Inscrit en
    Mai 2005
    Messages
    1 102
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieure
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 102
    Par défaut
    J'ai testé avec

    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
     
    void Draw()
    {
     
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();
    gluLookAt(3,2,3,0,0,0,0,1,0); 
    glBegin(GL_LINES);
      glColor3d(1,0,0);
      glVertex3f(0,0,0);glVertex3f(0,1,0);
      glVertex3f(0,0,0);glVertex3f(1,0,0);
      glVertex3f(0,0,0);glVertex3f(0,0,1);
    glEnd();
     
    SwapBuffers(hDC); 	// glutSwapBuffers(); pour glut
    }
    Pas mieux

  6. #6
    Expert confirmé
    Avatar de raptor70
    Inscrit en
    Septembre 2005
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Septembre 2005
    Messages : 3 173
    Par défaut
    Essaye ça sans grande conviction :
    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
     
     
    void Draw()
    {
     
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();
    gluLookAt(3.0f,2.0f,3.0f,0.0f,0.0f,0.0f,0.0f,1.0f,0.0f); 
    glBegin(GL_LINES);
      glColor3f(1.0f,0.0f,0.0f);
      glVertex3f(0.0f,0.0f,0.0f);glVertex3f(0.0f,1.0f,0.0f);
      glVertex3f(0.0f,0.0f,0.0f);glVertex3f(1.0f,0.0f,0.0f);
      glVertex3f(0.0f,0.0f,0.0f);glVertex3f(0.0f,0.0f,1.0f);
    glEnd();
     
    SwapBuffers(hDC); 	// glutSwapBuffers(); pour glut
    }
    Met un breakpoint dans ta fonction Draw pour voir si tu passe bien dedans

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Arret Ecran de veille
    Par Scyrius dans le forum Windows
    Réponses: 3
    Dernier message: 15/10/2005, 14h50
  2. Detecter la fin d'un ecran de veille
    Par fredderf dans le forum MFC
    Réponses: 12
    Dernier message: 13/06/2005, 17h08
  3. Désactiver ecran de veille
    Par Syriac dans le forum Windows
    Réponses: 3
    Dernier message: 26/11/2004, 14h09
  4. ecran de veille
    Par Gandalf_new dans le forum MFC
    Réponses: 2
    Dernier message: 16/03/2004, 12h20
  5. Comment faire pour mettre l'ecran en veille ?
    Par March' dans le forum MFC
    Réponses: 6
    Dernier message: 29/08/2002, 14h25

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