mirror of
https://github.com/hajimehoshi/ebiten.git
synced 2024-12-24 02:38:53 +01:00
internal/ui: disable the optimization to skip rendering offscreen
This caused some issues in various environments. Until we find a good solution, let's disable this. Updates #2341 Updates #2342 Closes #2518
This commit is contained in:
parent
4d270de75e
commit
a049acd94e
@ -198,20 +198,20 @@ func (c *context) drawGame(graphicsDriver graphicsdriver.Graphics, forceDraw boo
|
||||
c.skipCount = 0
|
||||
}
|
||||
|
||||
// If the offscreen is not updated and the framebuffers don't have to be updated, skip rendering to save GPU power.
|
||||
if c.skipCount < maxSkipCount {
|
||||
if graphicsDriver.NeedsClearingScreen() {
|
||||
// This clear is needed for fullscreen mode or some mobile platforms (#622).
|
||||
c.screen.clear()
|
||||
}
|
||||
|
||||
c.game.DrawFinalScreen(c.screenScaleAndOffsets())
|
||||
|
||||
// The final screen is never used as the rendering source.
|
||||
// Flush its buffer here just in case.
|
||||
c.screen.flushBufferIfNeeded()
|
||||
// TODO: If the offscreen is not updated and the framebuffers don't have to be updated, skip rendering to save GPU power
|
||||
// (#2341, #2342). The condition would be `c.skipCount < maxSkipCount`.
|
||||
// However, Metal (and maybe DirectX) cannot vsync without swapping the buffer by rendering the screen framebuffer (#2520).
|
||||
if graphicsDriver.NeedsClearingScreen() {
|
||||
// This clear is needed for fullscreen mode or some mobile platforms (#622).
|
||||
c.screen.clear()
|
||||
}
|
||||
|
||||
c.game.DrawFinalScreen(c.screenScaleAndOffsets())
|
||||
|
||||
// The final screen is never used as the rendering source.
|
||||
// Flush its buffer here just in case.
|
||||
c.screen.flushBufferIfNeeded()
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user