Update GLFW: suppress joystick issue at PollEvents

Updates #1229
This commit is contained in:
Hajime Hoshi 2021-07-15 11:19:39 +09:00
parent ec5b034cbf
commit 342bf6ae7e
3 changed files with 19 additions and 4 deletions

2
go.mod
View File

@ -3,7 +3,7 @@ module github.com/hajimehoshi/ebiten/v2
go 1.15
require (
github.com/go-gl/glfw/v3.3/glfw v0.0.0-20210714155130-550f9471722b
github.com/go-gl/glfw/v3.3/glfw v0.0.0-20210715014612-ab6297867137
github.com/gofrs/flock v0.8.0
github.com/hajimehoshi/bitmapfont/v2 v2.1.3
github.com/hajimehoshi/file2byteslice v0.0.0-20200812174855-0e5e8a80490e

4
go.sum
View File

@ -1,6 +1,6 @@
github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
github.com/go-gl/glfw/v3.3/glfw v0.0.0-20210714155130-550f9471722b h1:WrW6EbWsK1YaFiljN7kZ91bSHcyDgLz34jZvu71yVwE=
github.com/go-gl/glfw/v3.3/glfw v0.0.0-20210714155130-550f9471722b/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
github.com/go-gl/glfw/v3.3/glfw v0.0.0-20210715014612-ab6297867137 h1:nkvwT/9HzcHRekrCaLk/a4At+RNwr6lu6rl28kBDQ+Q=
github.com/go-gl/glfw/v3.3/glfw v0.0.0-20210715014612-ab6297867137/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
github.com/gofrs/flock v0.8.0 h1:MSdYClljsF3PbENUUEx85nkWfJSGfzYI9yEBZOJz6CY=
github.com/gofrs/flock v0.8.0/go.mod h1:F1TvTiK9OcQqauNUHlbJvyl9Qa1QvF/gOUDKA14jxHU=
github.com/hajimehoshi/bitmapfont/v2 v2.1.3 h1:JefUkL0M4nrdVwVq7MMZxSTh6mSxOylm+C4Anoucbb0=

View File

@ -436,9 +436,24 @@ func (j Joystick) Present() bool {
return r == True
}
func panicErrorExceptForInvalidValue() {
// InvalidValue can happen when specific joysticks are used. This issue
// will be fixed in GLFW 3.3.5. As a temporary fix, ignore this error.
// See go-gl/glfw#292, go-gl/glfw#324, and glfw/glfw#1763
// (#1229).
err := acceptError(InvalidValue)
if e, ok := err.(*glfwError); ok && e.code == InvalidValue {
return
}
if err != nil {
panic(err)
}
}
func PollEvents() {
glfwDLL.call("glfwPollEvents")
panicError()
// This should be used for WaitEvents and WaitEventsTimeout if needed.
panicErrorExceptForInvalidValue()
}
func SetMonitorCallback(cbfun func(monitor *Monitor, event PeripheralEvent)) {