Go 1.22+fix input bug

This commit is contained in:
bloeys
2024-04-12 23:55:21 +04:00
parent e22525e2ee
commit b060dcdbe9
4 changed files with 24 additions and 4 deletions

View File

@ -12,7 +12,7 @@ jobs:
- name: Install golang
uses: actions/setup-go@v3
with:
go-version: '>=1.18'
go-version: '>=1.22'
- name: Install assimp-go dylib
run: sudo mkdir -p /usr/local/lib && sudo wget https://github.com/bloeys/assimp-go/releases/download/v0.4.2/libassimp_darwin_amd64.dylib -O /usr/local/lib/libassimp.5.dylib

View File

@ -39,6 +39,14 @@ func (w *Window) handleInputs() {
imguiCaptureMouse := imIo.WantCaptureMouse()
imguiCaptureKeyboard := imIo.WantCaptureKeyboard()
if imguiCaptureMouse {
input.ClearMouseState()
}
if imguiCaptureKeyboard {
input.ClearKeyboardState()
}
for event := sdl.PollEvent(); event != nil; event = sdl.PollEvent() {
//Fire callbacks

2
go.mod
View File

@ -1,6 +1,6 @@
module github.com/bloeys/nmage
go 1.18
go 1.22
require github.com/veandco/go-sdl2 v0.4.35

View File

@ -40,15 +40,17 @@ var (
func EventLoopStart() {
for _, v := range keyMap {
for k, v := range keyMap {
v.IsPressedThisFrame = false
v.IsReleasedThisFrame = false
keyMap[k] = v
}
for _, v := range mouseBtnMap {
for k, v := range mouseBtnMap {
v.IsPressedThisFrame = false
v.IsReleasedThisFrame = false
v.IsDoubleClicked = false
mouseBtnMap[k] = v
}
mouseMotion.XDelta = 0
@ -60,6 +62,16 @@ func EventLoopStart() {
quitRequested = false
}
func ClearKeyboardState() {
clear(keyMap)
}
func ClearMouseState() {
clear(mouseBtnMap)
mouseMotion = mouseMotionState{}
mouseWheel = mouseWheelState{}
}
func HandleQuitEvent(e *sdl.QuitEvent) {
quitRequested = true
}