blob: 6b88f35ac447dd7678e9ac51fbddb4afc6876a78 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
package input
import (
"github.com/Zyko0/go-sdl3/sdl"
"ponger/ecs"
)
func Poll(root ecs.IsGameObject, delta uint64) error {
e := Event{
Event: ecs.Event{
Delta: delta,
},
}
var event sdl.Event
for sdl.PollEvent(&event) {
switch event.Type {
case sdl.EVENT_QUIT:
return sdl.EndLoop
case sdl.EVENT_MOUSE_MOTION:
ev := event.MouseMotionEvent()
e.Which = DeviceID(ev.Which)
e.Dx = ev.Xrel
e.Dy = ev.Yrel
case sdl.EVENT_MOUSE_BUTTON_DOWN, sdl.EVENT_MOUSE_BUTTON_UP:
ev := event.MouseButtonEvent()
e.Which = DeviceID(ev.Which)
e.JustPressed = ev.Down
e.JustReleased = !ev.Down
e.IsPressed = ev.Down
}
}
ProcessTree(root, e)
return nil
}
|