diff --git a/graphicscontext.go b/graphicscontext.go index 5e79d44d4..b4559f8a3 100644 --- a/graphicscontext.go +++ b/graphicscontext.go @@ -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