Bug avec Plot

Codes specifiques à Linux
Avatar de l’utilisateur
venom
Messages : 3136
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Bug avec Plot

Message 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 ?
Dernière modification par venom le dim. 19/juil./2009 3:22, modifié 1 fois.
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Geo Trouvpatou
Messages : 471
Inscription : dim. 23/déc./2007 18:10

Message 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.
Avatar de l’utilisateur
venom
Messages : 3136
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Message 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.





@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Ollivier
Messages : 4197
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Message 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
Geo Trouvpatou
Messages : 471
Inscription : dim. 23/déc./2007 18:10

Message 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.
Ollivier
Messages : 4197
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Message 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.
Avatar de l’utilisateur
venom
Messages : 3136
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Message 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:





@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Anonyme

Message 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 :)
Avatar de l’utilisateur
venom
Messages : 3136
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Message 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.



@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Répondre