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 :

Changement de couleur quand j'affiche du texte...


Sujet :

OpenGL

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 24
    Par défaut Changement de couleur quand j'affiche du texte...
    Bonjour à tous,

    J'ai recupere une fonction qui affiche du texte dans la fenetre, mais quand je l'appelle tout mon ecran est teinte de la meme couleur que le texte que j'ai affiche; voici mon code :

    fonction display() :

    Merci pour votre aide...
    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
     
    	/* Efface le frame buffer et le Z-buffer */
    	glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    	glLoadIdentity();
     
    	/* On attache la texture numero */
    	my_texturer->bind_texture(0);
     
    	/*
    	 * Affichage de l'ecran d'accueil
    	 */
    	glTranslatef(0.0f,0.0f,-2.4f);
    	glBegin(GL_QUADS);
    		glTexCoord2f(0.0f,0.875f);glVertex3f(-1.33f, 1.0f, 0.0f);
    		glTexCoord2f(1.0f,0.875f);glVertex3f( 1.33f, 1.0f, 0.0f);
    		glTexCoord2f(1.0f,0.125f);glVertex3f( 1.33f,-1.0f, 0.0f);
    		glTexCoord2f(0.0f,0.125f);glVertex3f(-1.33f,-1.0f, 0.0f);
    	glEnd();
     
     
    	/*
    	 * On affiche ou pas les Fps et l'aide du jeu
    	 */
    	if(showFps){
    		textPrinter->Begin2d();
    		textPrinter->DrawString(resolution_X - 100, 50, GLUT_BITMAP_8_BY_13, "%d Fps", timer ->getFps());
    		textPrinter->End2d();
    	}
    	if(showHelp) textPrinter->DisplayHelp(20, resolution_Y - 30);
     
    	glutSwapBuffers();
    begin2d() :
    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
     
    	/*
    	 * On desactive tous
    	 */
    	glDisable(GL_DEPTH_TEST);
    	glDisable(GL_TEXTURE_2D);
    	glDisable(GL_LIGHTING);
    	glDisable(GL_COLOR_MATERIAL);
     
    	/*
    	 * On active ce qu'il faut et on se place la ou il faut
    	 */
    	glMatrixMode(GL_PROJECTION);
    	glPushMatrix();
    	glLoadIdentity();
    	glOrtho(0, glutGet(GLUT_WINDOW_WIDTH), 0, glutGet(GLUT_WINDOW_HEIGHT), -1, 1);
    	glMatrixMode(GL_MODELVIEW);
    	glPushMatrix();
    	glLoadIdentity();
    la fonction qui affiche le texte :
    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
     
    void TextPrinter::DrawString(int x, int y, void *font, char *s, ...){
    	int lines;
    	char* p;
    	char text[1024];
    	va_list ap;
     
    	/*
    	 * Si pas de string alors on sort
    	 */
    	if(s == NULL){
    		return;
    	}
     
    	va_start(ap, s);
    	vsprintf(text, s, ap);
    	va_end(ap);
     
    	/*
    	 * On se positionne sur l'ecran
    	 */
    	glRasterPos2i(x, y);
     
    	/*
    	 * On affiche toutes les lettres de la chaine a ecrire
    	 */
    	for(p = text, lines = 0; *p; p++){
            	glutBitmapCharacter(font, *p);
    	}
    }
    end2d() :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    	/*
    	 * On vide les buffers et on reactive ce qui a ete desactive
    	 */
    	glMatrixMode(GL_PROJECTION);
    	glPopMatrix();
    	glMatrixMode(GL_MODELVIEW);
    	glPopMatrix();
     
    	glEnable(GL_DEPTH_TEST);
    	glEnable(GL_TEXTURE_2D);
    	glEnable(GL_LIGHTING);
    	glEnable(GL_COLOR_MATERIAL);
    et ma fonction idle fait un postRedisplay().

    Merci pour votre aide, car je n'arrive pas à resoudre ce probleme...

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 108
    Par défaut
    Je pense que tu actives désactives GL_COLOR_MATERIAL à l'envers !

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 24
    Par défaut
    c'est a dire?

    je dois modifier quoi?

    Merci

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 108
    Par défaut
    Essaye en remplacant glEnable par glDisable et inversemment quand tu intéragies avec GL_COLOR_MATERIAL.

Discussions similaires

  1. [DW8] Changement de couleur quand survol texte
    Par Karine92 dans le forum Dreamweaver
    Réponses: 4
    Dernier message: 05/08/2008, 09h44
  2. Probleme de changement de couleur d'une partie de texte
    Par ouinouin13 dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 19/03/2008, 10h19
  3. Réponses: 4
    Dernier message: 22/01/2007, 21h14
  4. Réponses: 4
    Dernier message: 31/08/2005, 00h32
  5. Afficher du texte en couleur sous Borland C++ 4.02
    Par Cthulhu 22 dans le forum Autres éditeurs
    Réponses: 7
    Dernier message: 18/11/2003, 00h53

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