Page 1 sur 1

OpenWindowScreen() et MouseX()

Publié : jeu. 28/juil./2022 13:45
par Fig
J'ai un souci avec le code ci-dessous, ça fonctionne en plein ecran (OpenScreen), mais pas en OpenWindowScreen().
Le sprite de la souris ne bouge juste pas.
Comme ça fait longtemps que je n'ai plus codé en Pb, je me demande si je n'ai pas oublié quelque chose d'évident...

Win10 x64, Pb 6.00 LTS x64.

Merci de vos retours.

Code : Tout sélectionner

If OpenWindow(0,0,0,800,600,"Test",#PB_Window_SystemMenu | #PB_Window_ScreenCentered) =0
	Debug "Error: Window"
EndIf
If InitKeyboard() = 0
	Debug "Error: Keyboard"
EndIf	
If InitSprite() = 0
	Debug "Error: Sprite"
EndIf	
If InitMouse() = 0
	Debug "Error: Mouse"
	End
EndIf
If OpenWindowedScreen(WindowID(0), 0, 0, 800, 600) = 0
	Debug "Error: windowedScreen"
EndIf
; If OpenScreen(1920,1080,32,"test") = 0
; 	Debug "Error: Sprite system can't be initialized"
; 	End
; EndIf
CreateSprite(0,20,20)
StartDrawing(SpriteOutput(0))
Circle(10,10,7,#Red)
StopDrawing()
	
Repeat
	FlipBuffers()
	ClearScreen(#Black)
	ExamineKeyboard()
	ExamineMouse()
	DisplaySprite(0,MouseX(),MouseY())
Until KeyboardPushed(#PB_Key_Escape)
End

Re: OpenWindowScreen() et MouseX()

Publié : jeu. 28/juil./2022 14:39
par Ollivier
Tu viens plein pot de tomber dans la même banane que moi : on se focalise sur le screen et les joies de l'accélération vidéo, et on oublie qu'on a ouvert une fenêtre dans une GUI ou il faut partager plusieurs ressources.

Heureusement, case m'a sorti du pétrin, et... Donc, me voilà, à mon tour, pour te dire :

Code : Tout sélectionner

Event = WaitWindowEvent()
(ou << event = windowEvent(): Delay(1) >> ça marche bien aussi)

Et tu ne vas pas me croire, mais sous W10, le réseau se met en route pour alerter Microsoft (ben oui, ça lui remplit une queue d'infos longue comme ça, et personne ne vient en extraire les données... Donc saturation...)

Même topo ici

Re: OpenWindowScreen() et MouseX()

Publié : jeu. 28/juil./2022 23:06
par Fig
Salut OLlivier,

Ca semble être ça effectivement....

Merci à toi :D

Re: OpenWindowScreen() et MouseX()

Publié : ven. 29/juil./2022 22:20
par Ollivier
Petite suggestion (tant qu'à faire).

M'étant cassé les dents avec le DPI, je te recommande de tout bypasser en ouvrant en "clandé" au départ une fenêtre (de 1x1 pixels) aux 3 caractéristiques suivantes :
- invisible
- sans bordure
- maximisée (ou "aggrandie", à ne pas confondre avec l'option "bouton aggrandissement")

Tu récupères les dimensions de cette fenêtre couvrant théoriquement tout l'écran, tu fermes cette fenêtre, et tu te sers des dimensions de cette fenêtre pour tracer ton affichage.

Edit Même ça, ça arrive à me glisser entre les pattes : entre la V5.73 et la V6.00, il y a une différence d'affichage. DesktopWidth et Height semblent suffire (en pixels). Ma suggestion ci-dessus n'est valable que pour les fenêtres et gadgets.