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

wxPython Discussion :

scintillement clipping wx.BufferedPaintDC


Sujet :

wxPython

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 62
    Par défaut scintillement clipping wx.BufferedPaintDC
    Bonsoir,

    ayant un phénomène de scintillement, je pensais trouver la solution en remplaçant dc = wx.PaintDC(self, event) par dc = wx.BufferedPaintDC(self, self.buffer) avec dans mon cas self.buffer = None soit wx.BufferedPaintDC(self) ayant cru comprendre que que lorsque l'on ne passait rien en 2ème argument, wx faisait lui même le buffer en interne. MAis j'ai toujours du clipping. Cela marche t'il sans argument ou est on obligé de créer un buffer ?

    François

  2. #2
    Membre expérimenté Avatar de alexdevl
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    265
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2007
    Messages : 265
    Par défaut Pas de clipping avec wx.AutoBufferedPaintDC
    Perso j'ai simplement utilisé wx.AutoBufferedPaintDC
    C'est peut être pas optimisé mais très simple sur la mise en oeuvre

    Dans la classe WX.Frame :
    self.panel_1.Bind(wx.EVT_PAINT, self.on_paint)

    Pour self.on_paint
    dc = wx.AutoBufferedPaintDC(self.panel_1)
    Alex

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 62
    Par défaut
    j'ai remplacé mon dc = wx.BufferedPaintDC(self) par dc = wx.AutoBufferedPaintDC(self) mais il n'a pas du tout aimé ! Il m'a envoyé direct dans les dents çà :

    Traceback (most recent call last):
    File "C:\Fk\Programmation\Python\wx ZeTAROT0029.py", line 33, in OnPaint
    dc = wx.AutoBufferedPaintDC(self)
    File "C:\Python25\lib\site-packages\wx-2.8-msw-unicode\wx\_gdi.py", line 4975, in __init__
    _gdi_.AutoBufferedPaintDC_swiginit(self,_gdi_.new_AutoBufferedPaintDC(*args, **kwargs))
    wx._core.PyAssertionError: C++ assertion "win->GetBackgroundStyle() == wxBG_STYLE_CUSTOM" failed at c:\BUILD\wxPython-src-2.8.9.1\include\wx/dcbuffer.h(251) in wxAutoBufferedPaintDC::TestWinStyle(): In constructor, you need to call SetBackgroundStyle(wxBG_STYLE_CUSTOM), and also, if needed, paint the background manually in the paint event handler.

    Autant dire que je n'y comprend rien
    François

  4. #4
    Membre expérimenté Avatar de alexdevl
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    265
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2007
    Messages : 265
    Par défaut
    Oui j'aivais oublié, il il faut rajouter ceci pour le panel
    self.panel_1.SetBackgroundStyle (wx.BG_STYLE_CUSTOM)

    J'ai trouvé ceci en fouillant sur la doc de WX

    The difference between wxBufferedPaintDC and this class, is the lightweigthness
    http://docs.wxwidgets.org/stable/wx_...ufferedpaintdc

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 62
    Par défaut çà marche
    çà marche super, merci Alex
    visiblement avant il ne me créait pas de buffer, car là je n'ai plus de clipping et le tout simplement

  6. #6
    Membre expérimenté Avatar de alexdevl
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    265
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2007
    Messages : 265
    Par défaut
    Oui c'est vrai que c'est vraiment simple...

    Au début je voulais implémenter le code du Pyreversi de Guigui, mais avant d'avant fini de comprendre j'ai trouvé cette méthode.

    Alex

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

Discussions similaires

  1. Pb affichage avec un PaintBox (pour eviter scintillement)
    Par juan64 dans le forum C++Builder
    Réponses: 7
    Dernier message: 08/04/2004, 09h21
  2. Pb d'action sur un clip
    Par bencasp dans le forum Flash
    Réponses: 4
    Dernier message: 22/10/2003, 17h11
  3. Clipping et projection orthogonale
    Par Luke-77 dans le forum DirectX
    Réponses: 4
    Dernier message: 01/10/2003, 20h02
  4. [appli][Java2D]Pb scintillement Animation
    Par ddams dans le forum 2D
    Réponses: 2
    Dernier message: 25/04/2003, 11h57
  5. Chemin d'accès au clip et scenario en flash
    Par Gential dans le forum Flash
    Réponses: 4
    Dernier message: 28/02/2003, 10h10

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