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/events.go | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 events/events.go (limited to 'events/events.go') diff --git a/events/events.go b/events/events.go new file mode 100644 index 0000000..6783703 --- /dev/null +++ b/events/events.go @@ -0,0 +1,43 @@ +package events + +type DeviceID int + +type MouseMotion struct { + Which DeviceID + Dx, Dy float32 + Delta uint64 +} + +type MousePress struct { + Delta uint64 + Key uint8 + Which DeviceID + JustPressed, JustReleased, IsPressed bool +} + +type WindowChange struct { + Height, Width int32 +} + +type KeyPress struct { + Delta uint64 + Key string + Which DeviceID + JustPressed, JustReleased, IsPressed bool +} + +type Event interface { + KeyPress | WindowChange | MousePress | MouseMotion +} + +type Events []any + +func OfType[T Event](events ...any) []T { + var result []T + for _, e := range events { + if eT, ok := e.(T); ok { + result = append(result, eT) + } + } + return result +} -- cgit v1.3.1