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

wxWidgets Discussion :

wxBufferedPaintDC, buffer commun


Sujet :

wxWidgets

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2008
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 20
    Points : 17
    Points
    17
    Par défaut wxBufferedPaintDC, buffer commun
    Salut,

    J'ai un problème avec le wxBufferedPaintDC. Je dois l'utiliser pour réduire l'effet de flicker.

    J'ai un Notebook avec plusieurs onglets. Chaque onglet contient une classe qui affiche une image avec le wxBufferedPaintDC. Le problème est qu'apparement le buffer se révèle être commun à tous mes onglets. Donc au final, je change l'image dans un des onglets, elle sera modifiée dans tous les onglets. Existe t-il des méthodes pour que le buffer soit séparé pour chaque image.

    merci !

  2. #2
    Membre émérite
    Avatar de Ti-R
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2003
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 683
    Points : 2 568
    Points
    2 568
    Par défaut
    Le problème est pour moi inversé.
    Logiquement chaque onglet possède son bitmap, si un refresh est appelé alors elle dessine son bitmap.

    wxBufferedPaintDC fonctionne parfaitement

    Pour réduire l'effet de fick, il faut se brancher sur l'événement EVT_ERASE_BACKGROUND et laisser la fonction vide.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    ///
    ///     Erase background
    ///
    void TaClasse::OnEraseBackground(wxEraseEvent& evt)
    {
    }

  3. #3
    Membre à l'essai
    Inscrit en
    Février 2008
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 20
    Points : 17
    Points
    17
    Par défaut
    C'est bon j'ai résolu le problème.

    je faisais wxBufferedPaint dc(this);
    Le buffer était alors commun à tous mes onglets.

    maintenant je fais wxBufferedPaintDC dc(this,buffer,wxBUFFER_CLIENT_AREA);
    où buffer est un wxBitmap
    Ca marche nickel

  4. #4
    Membre émérite
    Avatar de Ti-R
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2003
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 683
    Points : 2 568
    Points
    2 568
    Par défaut
    Oui tu peux aussi faire cela, mais je pense qu'il y a un problème à la base.

    Car l'utiliser ainsi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    wxBufferedPaintDC paint_dc(this);
    Ne devrait pas poser de problème.

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

Discussions similaires

  1. Taille d'un buffer de communication
    Par lolita4882 dans le forum C++
    Réponses: 0
    Dernier message: 16/11/2007, 11h08
  2. communication corba
    Par joejoe dans le forum CORBA
    Réponses: 5
    Dernier message: 14/07/2002, 20h53
  3. Affichage en passant par un buffer...
    Par Sirotilc dans le forum MFC
    Réponses: 5
    Dernier message: 27/05/2002, 21h00
  4. Alpha blending et Z-buffer directx 8
    Par Cesar4 dans le forum DirectX
    Réponses: 1
    Dernier message: 23/05/2002, 12h58
  5. communication entre programmes
    Par jérôme dans le forum C
    Réponses: 12
    Dernier message: 16/04/2002, 08h05

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