Redraw screen when one second has elapsed since last draw

When the application does not re-draw the screen for a long time, on some
platforms the screen will flicker between a previously drawn frame and
the current frame. This issue persists until the screen is redrawn.
This commit is contained in:
Trevor Slocum 2024-07-10 13:31:58 -07:00
parent 9dcd0e9a83
commit 8e9a09d4fc
4 changed files with 22 additions and 9 deletions

View file

@ -1,3 +1,7 @@
1.3.6:
- Support viewing replays of incomplete games
- Fix crash on Android when device is rotated
1.3.5:
- Use internal on-screen keyboard

View file

@ -41,7 +41,7 @@ import (
)
const (
version = "v1.3.5p2"
version = "v1.3.6"
baseButtonHeight = 54
MaxDebug = 2
DefaultServerAddress = "wss://ws.bgammon.org"
@ -520,6 +520,7 @@ type Game struct {
screenW, screenH int
drawBuffer bytes.Buffer
drawTick int
spinnerIndex int
@ -2506,6 +2507,8 @@ func (g *Game) Update() error {
return nil
}
g.drawTick++
g.Lock()
defer g.Unlock()
@ -2634,8 +2637,12 @@ func (g *Game) Draw(screen *ebiten.Image) {
gameUpdateLock.Lock()
if drawScreen <= 0 {
gameUpdateLock.Unlock()
return
if g.drawTick < targetFPS {
gameUpdateLock.Unlock()
return
}
updatedGame = false
drawScreen = 1
}
now := time.Now()
diff := 1000000000*time.Nanosecond/targetFPS - now.Sub(lastDraw)
@ -2648,6 +2655,8 @@ func (g *Game) Draw(screen *ebiten.Image) {
}
gameUpdateLock.Unlock()
g.drawTick = 0
if !viewBoard {
screen.Fill(frameColor)
} else {

4
go.mod
View file

@ -3,11 +3,11 @@ module code.rocket9labs.com/tslocum/boxcars
go 1.19
require (
code.rocket9labs.com/tslocum/bgammon v0.0.0-20240703055426-fa229d8ae6cc
code.rocket9labs.com/tslocum/bgammon v0.0.0-20240708184921-58d71da294f2
code.rocket9labs.com/tslocum/bgammon-bei-bot v0.0.0-20240422204629-93fba875ad23
code.rocket9labs.com/tslocum/etk v0.0.0-20240625183029-399fae94ad9c
code.rocket9labs.com/tslocum/tabula v0.0.0-20240703054156-ce0b448f0999
github.com/hajimehoshi/ebiten/v2 v2.7.6
github.com/hajimehoshi/ebiten/v2 v2.7.7
github.com/leonelquinteros/gotext v1.6.1
github.com/llgcode/draw2d v0.0.0-20240627062922-0ed1ff131195
github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646

8
go.sum
View file

@ -1,7 +1,7 @@
code.rocket9labs.com/tslocum/bei v0.0.0-20240108012722-6db380cc190b h1:Y0a14Kf/hSYepSmp4ZfDeE4CZZGBGBS97CNjCbKJm0c=
code.rocket9labs.com/tslocum/bei v0.0.0-20240108012722-6db380cc190b/go.mod h1:tS60/VNAJphKvDBkSLQhKALa15msIAuWWfEKNc4oFZc=
code.rocket9labs.com/tslocum/bgammon v0.0.0-20240703055426-fa229d8ae6cc h1:fZczcNlgIVl1PXwvTr5JE5uC5IZARHzm+IJ+j7wSbYc=
code.rocket9labs.com/tslocum/bgammon v0.0.0-20240703055426-fa229d8ae6cc/go.mod h1:7aaf6KWauGxJgLGTAddwCC1dwx460ygIzDhD1/xd1nk=
code.rocket9labs.com/tslocum/bgammon v0.0.0-20240708184921-58d71da294f2 h1:QR/JlsBf8KCK3QrYzpSMexzC7DzFibe11bk1CLLqdTU=
code.rocket9labs.com/tslocum/bgammon v0.0.0-20240708184921-58d71da294f2/go.mod h1:gPHFUucb+tWul3bHh+3Z1Jq6GE0EVbXIi5b1kTciP1w=
code.rocket9labs.com/tslocum/bgammon-bei-bot v0.0.0-20240422204629-93fba875ad23 h1:Gv98n8QExq/cqWIIeSoGCvvcC/SzT6Gg5UrpiUvxFf0=
code.rocket9labs.com/tslocum/bgammon-bei-bot v0.0.0-20240422204629-93fba875ad23/go.mod h1:fJ8Yj32Gs0v2jBKhWKHB0oWKZuMZ9gGBbjFITanMN8E=
code.rocket9labs.com/tslocum/etk v0.0.0-20240625183029-399fae94ad9c h1:zIyk8BXf46kD6ABfwc91zrFZ8nYwNl7Pa5H7CIG955U=
@ -56,8 +56,8 @@ github.com/gorilla/css v1.0.1/go.mod h1:BvnYkspnSzMmwRK+b8/xgNPLiIuNZr6vbZBTPQ2A
github.com/gorilla/mux v1.8.1 h1:TuBL49tXwgrFYWhqrNgrUNEY92u81SPhu7sTdzQEiWY=
github.com/gorilla/mux v1.8.1/go.mod h1:AKf9I4AEqPTmMytcMc0KkNouC66V3BtZ4qD5fmWSiMQ=
github.com/hajimehoshi/bitmapfont/v3 v3.0.0 h1:r2+6gYK38nfztS/et50gHAswb9hXgxXECYgE8Nczmi4=
github.com/hajimehoshi/ebiten/v2 v2.7.6 h1:dKM/BdPZP+I/I0ElcqfQ1d06W+kA0nwhUOWzEdEBIbY=
github.com/hajimehoshi/ebiten/v2 v2.7.6/go.mod h1:Ulbq5xDmdx47P24EJ+Mb31Zps7vQq+guieG9mghQUaA=
github.com/hajimehoshi/ebiten/v2 v2.7.7 h1:FyiuIOZqKU4aefYVws/lBDhTZu2WY2m/eWI3PtXZaHs=
github.com/hajimehoshi/ebiten/v2 v2.7.7/go.mod h1:Ulbq5xDmdx47P24EJ+Mb31Zps7vQq+guieG9mghQUaA=
github.com/huandu/xstrings v1.2.0/go.mod h1:DvyZB1rfVYsBIigL8HwpZgxHwXozlTgGqn63UyNX5k4=
github.com/huandu/xstrings v1.5.0 h1:2ag3IFq9ZDANvthTwTiqSSZLjDc+BedvHPAp5tJy2TI=
github.com/huandu/xstrings v1.5.0/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE=