mirror of
https://github.com/hajimehoshi/ebiten.git
synced 2024-12-24 02:38:53 +01:00
graphicsdriver/metal: Bug fix: Had to set the vsync state again at resetting
Fixes #1364
This commit is contained in:
parent
249e1c46ba
commit
fe6a2daef4
@ -231,7 +231,12 @@ func (g *game) Update() error {
|
||||
} else {
|
||||
ebiten.SetCursorMode(ebiten.CursorModeHidden)
|
||||
}
|
||||
ebiten.SetVsyncEnabled(vsyncEnabled)
|
||||
|
||||
// Set vsync enabled only when this is needed.
|
||||
// This makes a bug around vsync initialization more explicit (#1364).
|
||||
if vsyncEnabled != ebiten.IsVsyncEnabled() {
|
||||
ebiten.SetVsyncEnabled(vsyncEnabled)
|
||||
}
|
||||
ebiten.SetMaxTPS(tps)
|
||||
ebiten.SetWindowDecorated(decorated)
|
||||
ebiten.SetWindowPosition(positionX, positionY)
|
||||
|
@ -28,6 +28,7 @@ type view struct {
|
||||
uiview uintptr
|
||||
|
||||
windowChanged bool
|
||||
vsync bool
|
||||
|
||||
device mtl.Device
|
||||
ml ca.MetalLayer
|
||||
@ -45,6 +46,7 @@ func (v *view) getMTLDevice() mtl.Device {
|
||||
|
||||
func (v *view) setDisplaySyncEnabled(enabled bool) {
|
||||
v.ml.SetDisplaySyncEnabled(enabled)
|
||||
v.vsync = enabled
|
||||
}
|
||||
|
||||
func (v *view) colorPixelFormat() mtl.PixelFormat {
|
||||
@ -67,6 +69,9 @@ func (v *view) reset() error {
|
||||
// MTLPixelFormatBGRA10_XR_sRGB.
|
||||
v.ml.SetPixelFormat(mtl.PixelFormatBGRA8UNorm)
|
||||
v.ml.SetMaximumDrawableCount(3)
|
||||
|
||||
// The vsync state might be reset. Set the state again (#1364).
|
||||
v.ml.SetDisplaySyncEnabled(v.vsync)
|
||||
return nil
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user