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

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
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
@++
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
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.
@++