Page 1 sur 1

Bug avec Plot

Publié : ven. 03/juil./2009 19:25
par venom
Bonjour,

voilà mon purebasic me fait une drôle de chose.

quand je lance ce code :

Code : Tout sélectionner

  If OpenWindow(0, 0, 0, 800, 800, "", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
    If StartDrawing(WindowOutput(0))
      For x =  1 To 800 Step 10
      For y =  1 To 800 Step 10
       Plot(x, y, RGB(255,255,255))
      Next
      Next 
      StopDrawing() 
    EndIf
    
    Repeat : Event = WaitWindowEvent() : Until  Event = #PB_Event_CloseWindow
  EndIf
tout ce passe bien je lance une fenêtre avec un Drawing pour afficher des plots tous les 10.
aucun souci mais ou sa se corse c'est la :

Code : Tout sélectionner

  If OpenWindow(0, 0, 0, 800, 800, "", #PB_Window_SystemMenu )
    If StartDrawing(WindowOutput(0))
      For x =  1 To 800 Step 10
      For y =  1 To 800 Step 10
       Plot(x, y, RGB(255,255,255))
      Next
      Next 
      StopDrawing() 
    EndIf
    
    Repeat : Event = WaitWindowEvent() : Until  Event = #PB_Event_CloseWindow
  EndIf
c'est exactement le meme code mise a part que j'ai enlever juste #PB_Window_ScreenCentered qui permet simplement d'ouvrir la fenetre au centre de l'ecran et la 8O mes plots ont disparu.

est ce que quel qu'un pourrai m'expliquer svp ?

Publié : sam. 18/juil./2009 21:30
par Geo Trouvpatou
Salut.

Je répond un peu tard, mais comme on dit, mieux vaut tard que jamais.

Déjà au passage tu aurais pu mettre des "plot" de couleur noire ce serait mieux.

Donc sous Windows pas de problème

Sous linux, la 2ème version effectivement les "plot" apparaissent brièvement puis disparaissent.

Par contre, si tu coupes le debogueur, tu verras que cela fonctionne bien, on voit bien les "plot".

Mais cela peut tout de même être considéré comme un bogue.

Bye.

Publié : dim. 19/juil./2009 3:25
par venom
Salut Geo Trouvpatou,
Je répond un peu tard, mais comme on dit, mieux vaut tard que jamais.
oui mieux vaut tard que jamais :wink:
Par contre, si tu coupes le debogueur, tu verras que cela fonctionne bien, on voit bien les "plot".
j'ai donc tester le 2eme code sans le déboguer et bien j'ai le même résultat aucun plot n'apparait.





@++

Publié : dim. 19/juil./2009 5:57
par Ollivier
Sous Window aussi, ça ne marche pas bien si ça peut te rassurer!

Code : Tout sélectionner

   If OpenWindow(0, 0, 0, 800, 600, "", #PB_Window_SystemMenu)
      If CreateImage(0, 800, 600)  
         If StartDrawing(imageOutput(0))
            Box(0, 0, 800, 600,#Black)
            For x = 0 To 799 Step 10
               For y = 0 To 599 Step 10
                  Box(x, y, 1, 1, #White)
               Next
            Next
            StopDrawing()
            imagegadget(0, 0, 0, 800, 600, imageid(0) )
            Repeat
               Delay(1)
               Event = WindowEvent()
            Until  Event = #PB_Event_CloseWindow
         EndIf
      EndIf
   EndIf

Publié : dim. 19/juil./2009 11:21
par Geo Trouvpatou
Salut tous les 2.

Je précise d'abord que je suis encore sous la v4.30 finale de PB.

Et tous les codes de ce post fonctionnent.

Par contre Ollivier sous Linux les constantes #black and #white n'existent pas.
Mais ton code converti fonctionne très bien.

Code : Tout sélectionner

If OpenWindow(0, 0, 0, 800, 600, "", #PB_Window_SystemMenu)
      If CreateImage(0, 800, 600) 
         If StartDrawing(ImageOutput(0))
            Box(0, 0, 800, 600, RGB(0,0,0))
            For x = 0 To 799 Step 10
               For y = 0 To 599 Step 10
                  Box(x, y, 1, 1, RGB(255,255,255))
               Next
            Next
            StopDrawing()
            ImageGadget(0, 0, 0, 800, 600, ImageID(0) )
            Repeat
               Delay(1)
               Event = WindowEvent()
            Until  Event = #PB_Event_CloseWindow
         EndIf
      EndIf
   EndIf 
Problème de version de PB, peut-être ?

Bye.

Publié : dim. 19/juil./2009 19:12
par Ollivier
Il me semble que cette remarque m'a déjà été faite à propos des constantes de couleurs absentes sous Linux mais ça m'est sorti du crâne, désolé...

Je pense quand même qu'on n'a pas trop le choix pour un affichage correct: soit on crée une image dans un ImageGadget, soit redessine constamment le dessin. Les autres possibilités semblent instables.

Publié : dim. 19/juil./2009 19:53
par venom
et bien le code de Geo Trouvpatou fonctionne très bien chez moi avec le déboguer et purebasic 4.30

pour le bug ont verra bien si fred passe par la il pourra surement nous renseigner plus.

en tout cas merci de vous êtres pencher sur le sujet :wink:





@++

Publié : lun. 27/juil./2009 12:38
par Anonyme
je ne vois aucun plot ( avec tes 2 premier codes )

Que ce soit sous Windows , ou sur Linux , dessiner sur une fenêtre est temporaire , càd , qu'au prochain rafraîchissement , si tu as pas redessiné tes plots , on les verra plus , ou il y aura des artefacts.
le mieux est de passé par une image pour avoir une "surface stable".

je te rassure , c'est pas un bug :)

Publié : lun. 27/juil./2009 23:36
par venom
je ne vois aucun plot ( avec tes 2 premier codes )
c'est étonnant chez moi le 1er des deux fonctionne super bien 8O
l'autre non. etrange ces réaction.
je te rassure , c'est pas un bug
tu a sans doute raison mais chez moi sa fonctionne en tout cas :? bref je n'en ai pas besoin c'est juste que j'ai trouvé sa bizarre.



@++