Bon, je tente le forum français, j'aurais peut-être davantage de réponses

Voilà mon problème : j'aimerais développer une application/jeu "cross-platform" utilisant DirectX/OpenGL. J'ai donc besoin d'un screen et de connaître tous les états de la souris. Mais je veux utiliser la souris hardware qui est plus réactive, préférable pour manipuler l'UI ou les jeux de style RTS (je crois d'ailleurs que c'est ainsi que font les pros : ils prennent la souris hardware et changent le curseur et ne font une souris software que pour les jeux de style FPS). De surcroît, avec la bibliothèque Mouse, j'ignore totalement comment modifier la sensibilité de la souris.
Le souci principal est de récupérer l'état "appuyé" de la souris. Aucun évènement PureBasic ne permet de le récupérer, donc j'utilise un truc hybride un peu bizarre :
Code : Tout sélectionner
ExamineKeyboard() : ExamineMouse()
ReleaseMouse(0)
If MouseButton(#PB_MouseButton_Left)
pushed = 1
Else
pushed = 0
EndIf
ReleaseMouse(1)
Code : Tout sélectionner
Repeat
event = WindowEvent()
If event = #PB_Event_LeftClick
Debug "released"
EndIf
Until event = 0
Code : Tout sélectionner
InitSprite() : InitKeyboard() : InitMouse()
OpenWindow(0, 0, 0, 1920, 1080, "")
OpenWindowedScreen(WindowID(0), 0, 0, 1920, 1080)
Repeat
Repeat
event = WindowEvent()
If event = #PB_Event_LeftClick
Debug "released"
EndIf
Until event = 0
ExamineKeyboard() : ExamineMouse()
ReleaseMouse(0)
If MouseButton(#PB_MouseButton_Left)
pushed = 1
Else
pushed = 0
EndIf
ReleaseMouse(1)
If pushed
Debug "pushed"
EndIf
ClearScreen(0)
FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape)
En d'autres termes : sur Linux, j'ai le "pushed" mais pas le "released" ; sur Windows, j'ai le "released" mais pas le "pushed".
Et sur Mac, j'ignore totalement le comportement, car je n'ai pas de Mac...
Cela fait un moment que je développe sous PB, mais jusque là, je n'utilisais que Windows, et le système d'events internes (avec l'API) me suffisait. Mais ça restait du bricolage, et j'aimerais bien savoir comment on gère correctement une souris ; le but étant d'avoir les états suivants : appuyé, relâché, relâché au même endroit, double cliqué ; ainsi que la gestion de la mollette. Mais pour le moment, la question, c'est de savoir comment récupérer l'état appuyé

Merci.