Page 1 sur 1
Est-ce un bug ?
Publié : dim. 16/sept./2007 21:27
par Mytic
Pas de problème , Vous verrez Bonjour ! et Cooool !
Code : Tout sélectionner
InitSprite()
OpenWindow(0,50,50,500,500,"teste")
OpenWindowedScreen(WindowID(0),0,0,500,500,0,0,0)
ClearScreen(0)
FlipBuffers()
Delay(500)
o = ScreenOutput()
StartDrawing(o)
DrawingMode(#PB_2DDrawing_Default)
DrawText(10,10,"Bonjour !",255,6329)
StopDrawing()
o = ScreenOutput() ; Avec ça pas de problème
StartDrawing(o)
DrawingMode(#PB_2DDrawing_Default)
DrawText(10,100,"coooool !",255,6329)
StopDrawing()
FlipBuffers()
Delay(1500)
End
Problème , Vous verrez que Bonjour!
Code : Tout sélectionner
InitSprite()
OpenWindow(0,50,50,500,500,"teste")
OpenWindowedScreen(WindowID(0),0,0,500,500,0,0,0)
ClearScreen(0)
FlipBuffers()
Delay(500)
o = ScreenOutput()
StartDrawing(o)
DrawingMode(#PB_2DDrawing_Default)
DrawText(10,10,"Bonjour !",255,6329)
StopDrawing()
;sans !!
StartDrawing(o)
DrawingMode(#PB_2DDrawing_Default)
DrawText(10,100,"coooool !",255,6329)
StopDrawing()
FlipBuffers()
Delay(1500)
End

Publié : dim. 16/sept./2007 21:28
par Mytic
Est-ce que ScreenOutput() change à chaque StopDrawing ?
Publié : dim. 16/sept./2007 21:32
par Backup
Mytic a écrit :Est-ce que ScreenOutput() change à chaque StopDrawing ?
j'avais remarqué qu'il fallait bien ouvrir (StartDrawing(o)) et fermer (StopDrawing() systematiquement, faudrait demander sur le forum anglais
mais il doit y avoir une explication
n'oublions pas que nous sommes dans un system multitache , il n'est pas exclue que justement a cause de ça, il faille bien liberer les ressources ...

Publié : dim. 16/sept./2007 21:41
par Chris
En principe, et si j'ai bien compris, (et ça, c'est pas encore sûr), ScreenOutput() ne renvoie rien.
Il indique simplement ou va s'afficher le dessin.
Par contre, StartDrawing() renvoie le hdc de la surface de dessin, et lui, il change à chaque StopDrawing()
Alors est-ce qu'il y a une relation entre les deux? J'en sais rien.
Publié : dim. 16/sept./2007 21:51
par Mytic
Plus on approfondi nos connaissance en PureBasic , plus on manque de réponses !
Y’a plein de mystère autour.
Au fait ! Une fois DirectX 9 ou 10 incorporé à PureBaisc , les Sprite 2D n’auront plus d’intérêt ?

Publié : dim. 16/sept./2007 21:57
par Chris
Bon, finalement, ScreenOutput() renvoie quelque chose. (Je l'avais dit, que c'était pas sur que j'aie compris

)
Et il renvoie toujours la même chose. Sans doute le handle du WindowedScreen()
Code : Tout sélectionner
InitSprite()
OpenWindow(0,50,50,500,500,"teste")
OpenWindowedScreen(WindowID(0),0,0,500,500,0,0,0)
ClearScreen(0)
FlipBuffers()
;Delay(500)
o = ScreenOutput()
Debug o
StartDrawing(o)
; DrawingMode(#PB_2DDrawing_Default)
; DrawText(10,10,"Bonjour !",255,6329)
StopDrawing()
; ;sans !!
o = ScreenOutput()
Debug o
StartDrawing(o)
; DrawingMode(#PB_2DDrawing_Default)
; DrawText(10,100,"coooool !",255,6329)
StopDrawing()
; FlipBuffers()
; Delay(1500)
End
Publié : dim. 16/sept./2007 22:33
par Mytic
Alors ScreenOutput() c’est comme un anti_FlipBuffers

screenoutput(): the specified output is #Null
Publié : lun. 26/nov./2007 9:53
par Laulite
Visiblement, l'utilisation de screenoutput doit se faire avec des pincettes. Lors d'un debugage, il m'ai arrivé ceci:
Code : Tout sélectionner
InitSprite():InitKeyboard()
OpenWindow(0,0,0,300,300,"ScreenOutput",#PB_Window_ScreenCentered|#PB_Window_SystemMenu)
OpenWindowedScreen(WindowID(0),0,0,300,300,0,0,0)
ClearScreen(0)
Debug ScreenOutput()
If StartDrawing(ScreenOutput())
Box(100,100,100,100,RGB(255,100,0))
StopDrawing()
EndIf
Repeat
event=WaitWindowEvent()
Until event=#PB_Event_CloseWindow
à compiler avec debugger---> the specified output is #NULL
si vous mettez un commentaire sur la ligne Debug ScreenOutput()
plus d'erreur. En gros, il ne faut pas utiliser screenoutput pour rien!
Re: Est-ce un bug ?
Publié : lun. 26/nov./2007 10:14
par beauregard
Mytic a écrit : 
D'après la doc, ScreenOutput() Renvoie l'OutputID de l'écran courant nécessaire à StartDrawing().
Donc ScreenOutput() et StartDrawing() sont comme des jumeaux qu'il ne faut pas séparer, et organiser ton code en fonction de cette exigeance.
Publié : lun. 26/nov./2007 21:09
par Laulite
impeccablement résumé...