From 60f58e548ef745ec072482954ac37c35d88280d4 Mon Sep 17 00:00:00 2001 From: ewy Date: Thu, 13 Aug 2026 15:13:39 +0200 Subject: switch to single render loop --- events/poll.go | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 events/poll.go (limited to 'events/poll.go') diff --git a/events/poll.go b/events/poll.go new file mode 100644 index 0000000..faa4151 --- /dev/null +++ b/events/poll.go @@ -0,0 +1,39 @@ +package events + +import ( + "github.com/Zyko0/go-sdl3/sdl" +) + +func Poll(delta uint64) ([]any, error) { + var evs []any + var event sdl.Event + for sdl.PollEvent(&event) { + switch event.Type { + case sdl.EVENT_QUIT: + return nil, sdl.EndLoop + case sdl.EVENT_MOUSE_MOTION: + ev := event.MouseMotionEvent() + evs = append(evs, MouseMotion{ + Delta: delta, + Dy: ev.Yrel, + Dx: ev.Xrel, + Which: DeviceID(ev.Which), + }) + case sdl.EVENT_MOUSE_BUTTON_DOWN, sdl.EVENT_MOUSE_BUTTON_UP: + ev := event.MouseButtonEvent() + evs = append(evs, MousePress{ + Delta: delta, + Key: ev.Button, + Which: DeviceID(ev.Which), + IsPressed: ev.Down, + }) + case sdl.EVENT_WINDOW_RESIZED: + ev := event.WindowEvent() + evs = append(evs, WindowChange{ + Height: ev.Data1, + Width: ev.Data2, + }) + } + } + return evs, nil +} -- cgit v1.3.1