This commit is contained in:
Riyyi
2026-09-14 19:25:33 +02:00
parent 2b8488a1e2
commit 416b42c27e
2 changed files with 21 additions and 1 deletions
+1
View File
@@ -61,6 +61,7 @@ init :: proc() {
fmt.println("hello from .dll!")
g = new(Game_Memory)
memory_set(g)
}
@(export)
+20 -1
View File
@@ -5,10 +5,11 @@ import "core:fmt"
import "sindri:input"
// -----------------------------------------
// Types
// event category, bitfield (?)
Event :: union {
Event_Data :: union {
Window_Close_Event,
Window_Resize_Event,
Joystick_Connect_Event,
@@ -22,6 +23,11 @@ Event :: union {
Mouse_Scroll_Event,
}
Event :: struct {
data: Event_Data,
handled: bool,
}
Window_Close_Event :: struct {
handled: bool,
}
@@ -85,6 +91,13 @@ Mouse_Scroll_Event :: struct {
}
// -----------------------------------------
// Variables
// I want to have a list of Listeners per Event type, but this is state
listeners: map[typeid][dynamic]Listener
// -----------------------------------------
// Public functions
// Dispatcher(Event) -> forwards to the right function
on_event :: proc(event: Event) {
@@ -116,3 +129,9 @@ on_event :: proc(event: Event) {
fmt.println("Joy dis:", e.id)
}
}
/*
Notes:
Have the events queued up into a frame buffer that gets drained at a specific time.
*/