add mouse support

This commit is contained in:
2024-08-24 13:52:32 +10:00
parent e087ed682f
commit 7a417e0701
6 changed files with 111 additions and 11 deletions

View File

@ -71,6 +71,7 @@ public class Application {
private func beginHandleEvents() {
Keyboard.instance.newFrame()
GameController.instance.newFrame()
Mouse.instance.newFrame(window!)
}
private func handleEvent(_ event: SDL_Event) -> ApplicationExecutionState {
@ -108,6 +109,17 @@ public class Application {
btn: SDL_GamepadButton(Int32(event.gbutton.button)), state: event.gbutton.state)
return .running
case SDL_EVENT_MOUSE_BUTTON_DOWN, SDL_EVENT_MOUSE_BUTTON_UP:
Mouse.instance.buttonEvent(
btn: UInt32(event.button.button),
state: event.button.state)
return .running
case SDL_EVENT_MOUSE_MOTION:
Mouse.instance.motionEvent(
absolute: SIMD2(event.motion.x, event.motion.y),
relative: SIMD2(event.motion.xrel, event.motion.yrel))
return .running
case SDL_EVENT_WINDOW_PIXEL_SIZE_CHANGED:
let backBufferSize = Size(Int(event.window.data1), Int(event.window.data2))
self.renderer!.resize(size: backBufferSize)