internal/devicescale: bug fix: glfw.Monitor.GetContentScale might return 0

Retrying to call GetContentScale solved this.

Closes #2051
This commit is contained in:
Hajime Hoshi 2022-04-03 19:32:01 +09:00
parent f1f9f74e5c
commit f756be3d22

View File

@ -35,6 +35,13 @@ func monitorAt(x, y int) *glfw.Monitor {
} }
func impl(x, y int) float64 { func impl(x, y int) float64 {
sx, _ := monitorAt(x, y).GetContentScale() // Keep calling GetContentScale until the returned scale is 0 (#2051).
return float64(sx) // Retry this at most 5 times to avoid an inifinite loop.
for i := 0; i < 5; i++ {
sx, _ := monitorAt(x, y).GetContentScale()
if sx != 0 {
return float64(sx)
}
}
return 1
} }