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 :

Rafraîchissement sur un endroit de la fenêtre


Sujet :

OpenGL

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 69
    Points : 37
    Points
    37
    Par défaut Rafraîchissement sur un endroit de la fenêtre
    Salut, Merci d'avance à ceux qui tenteront de m'aider.

    Mon problème est le suivant : J'affiche une grille sur toute ma fenêtre. Quand l'utilisateur clic sur une case de la grille, celle-ci change de couleure, mais toute la grille est réaffiché, il en résulte un scintillement noir. J'aimerais pouvoir rafraîchir localement. Comment dois je procéder?

    Puis je avoir du code? ou bien un lien qui en parle?

  2. #2
    Rédacteur
    Avatar de bafman
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    2 574
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2003
    Messages : 2 574
    Points : 5 323
    Points
    5 323
    Par défaut
    il te suffit de n'envoyer les commande que pour redessiner la ou tu veut dessiner...
    tu peut aussi utiliser le tampon stencil mais c'est un peut bourrin pour ce que tu veut en faire.

    sinon qu'est ce que tu entend par scintillement noir ?

    en fait quand tu change la couleur d'une de tes case, tu ne redessine que la case qui a changé de couleur.

    Il ne faut pas oublié qu'on est en 3D et les methode qui marchent en 2D ne marchent pas focement en 3D. il n'existe pas a ma connaissance de fonction genre
    refresh(200,200,300,300);
    etant donné que ton affichage est en fait une boucle infinie...

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 69
    Points : 37
    Points
    37
    Par défaut
    En fait tu as presque saisi mon problème, sachant que mon truc c'est ke de la 2D OpenGL. Il n'y a pas histoire de 3D vu ke je n'en ai aps mi dans mon prog. Le scintillement noir est du qu fait qu'il réaffiche chaque case de la grille quand il change la couleure d'une d'entre elle. Il faudrait que je puisse rafraichir à un endroit spécifique.
    J'ai entendu parlé du double buffering? ya pas un refresh local?

  4. #4
    Rédacteur
    Avatar de bafman
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    2 574
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2003
    Messages : 2 574
    Points : 5 323
    Points
    5 323
    Par défaut
    non il n'y a pas de refresh local et oui il faut utiliser du double buffering
    sinon pourquoi est ce qu'il réaffiche chaque case lorsque tu change la couleure d'une case ?

  5. #5
    Membre chevronné Avatar de Jbx 2.0b
    Homme Profil pro
    Développeur C++/3D
    Inscrit en
    Septembre 2002
    Messages
    476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur C++/3D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2002
    Messages : 476
    Points : 1 787
    Points
    1 787
    Par défaut
    Pour moi, ton scintillement noir viens du fait que tu n'as pas activé le double buffering. Le double buffering comme son nom l'indique est un systéme de double tampons : un représente l'écran et l'autre de même taille est en mémoire vidéo.
    Lorsqu'il n'est pas activé tu dessine directement sur le buffer écran ce qui produit des scintillements ( imagine une grosse scéne plein de polygones : tu verrai alors les polygones se dessiner les uns aprés l'autre sur ton écran).
    Quand il est activé, tu dessine sur le buffer en mémoire et lorsque tu appelle la fonction SwapBuffer() (qui depend de la lib que tu utilise), il échange(swap) les deux ce qui empeche le phénoméne de scintillements (mais qui ralenti un peu forcément).
    Avec glut tu rajoute GL_DOUBLE dans ton glutInitDisplayMode() pour l'activer. Avec SDL, tu rajoute SDL_DOUBLEBUF dans le dernier argument de SDL_SetVideoMode().
    Si ton programme n'est pas énorme, tu ne devrais pas avoir ce probléme de scintillement : tu change la couleur de ta case, tu réaffiche tout et normalement pas de probléme, avec le double buffering activé. Sinon si tu en à vraiment besoin il faut allez voir du côté de GL_SCISSOR qui te permet de ne réafficher qu'une partie de la fenetre, si mes souvenirs sont bons .
    J'éspére t'avoir aidé et a+.

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 69
    Points : 37
    Points
    37
    Par défaut
    C exactement sa et sa marche nikel!
    Merci encore

Discussions similaires

  1. Pb sur l'apparation d'une fenêtre
    Par Mugen RX dans le forum wxPython
    Réponses: 1
    Dernier message: 06/12/2006, 16h23
  2. Réponses: 7
    Dernier message: 31/10/2006, 18h29
  3. Disposition sur l'écran d'une fenêtre IE
    Par fabrice.Croize dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 31/03/2006, 08h28
  4. Evénement quand on clic sur le bord d'une fenêtre ?
    Par gloode dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 17/01/2006, 09h28
  5. Erreur sur l'ouverture d'une fenêtre popup
    Par misa dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 25/11/2005, 15h21

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