mirror of
https://github.com/hajimehoshi/ebiten.git
synced 2024-12-25 11:18:54 +01:00
graphics: Bug fix: a too old frame was rendered at least on Android
Fixes #520
This commit is contained in:
parent
1a898dd1b9
commit
deab21fad1
@ -97,27 +97,26 @@ func (c *graphicsContext) Update(afterFrameUpdate func()) error {
|
||||
}
|
||||
afterFrameUpdate()
|
||||
}
|
||||
if 0 < updateCount {
|
||||
// Call ClearFramebuffer instead of c.screen.Clear()
|
||||
// to clear the whole region including fullscreen's padding.
|
||||
c.screen.restorable.ClearFramebuffer()
|
||||
|
||||
dw, dh := c.screen.Size()
|
||||
sw, _ := c.offscreen.Size()
|
||||
scale := float64(dw) / float64(sw)
|
||||
// Call ClearFramebuffer instead of c.screen.Clear()
|
||||
// to clear the whole region including fullscreen's padding.
|
||||
c.screen.restorable.ClearFramebuffer()
|
||||
|
||||
op := &DrawImageOptions{}
|
||||
dw, dh := c.screen.Size()
|
||||
sw, _ := c.offscreen.Size()
|
||||
scale := float64(dw) / float64(sw)
|
||||
|
||||
// c.screen is special: its Y axis is down to up,
|
||||
// and the origin point is lower left.
|
||||
op.GeoM.Scale(scale, -scale)
|
||||
op.GeoM.Translate(0, float64(dh))
|
||||
op.GeoM.Translate(c.offsetX, c.offsetY)
|
||||
op := &DrawImageOptions{}
|
||||
|
||||
op.CompositeMode = CompositeModeCopy
|
||||
op.Filter = filterScreen
|
||||
_ = c.screen.DrawImage(c.offscreen, op)
|
||||
}
|
||||
// c.screen is special: its Y axis is down to up,
|
||||
// and the origin point is lower left.
|
||||
op.GeoM.Scale(scale, -scale)
|
||||
op.GeoM.Translate(0, float64(dh))
|
||||
op.GeoM.Translate(c.offsetX, c.offsetY)
|
||||
|
||||
op.CompositeMode = CompositeModeCopy
|
||||
op.Filter = filterScreen
|
||||
_ = c.screen.DrawImage(c.offscreen, op)
|
||||
|
||||
if err := restorable.ResolveStaleImages(); err != nil {
|
||||
return err
|
||||
|
Loading…
Reference in New Issue
Block a user