From 8d020ad414e2898fd115d11b42cea63b4c8c59df Mon Sep 17 00:00:00 2001 From: Hajime Hoshi Date: Thu, 29 Dec 2022 15:27:51 +0900 Subject: [PATCH] internal/graphicsdriver/metal: refactoring --- internal/graphicsdriver/metal/graphics_darwin.go | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/internal/graphicsdriver/metal/graphics_darwin.go b/internal/graphicsdriver/metal/graphics_darwin.go index fb0d59eb8..76fbe0127 100644 --- a/internal/graphicsdriver/metal/graphics_darwin.go +++ b/internal/graphicsdriver/metal/graphics_darwin.go @@ -204,14 +204,16 @@ func (g *Graphics) flushIfNeeded(present bool) { } g.flushRenderCommandEncoderIfNeeded() - // This logic is necessary when skipping clearing the framebuffer. - if present && g.screenDrawable == (ca.MetalDrawable{}) { - g.screenDrawable = g.view.nextDrawable() + if present { + // This check is necessary when skipping to render the screen (SetScreenClearedEveryFrame(false)). + if g.screenDrawable == (ca.MetalDrawable{}) { + g.screenDrawable = g.view.nextDrawable() + } + if g.screenDrawable != (ca.MetalDrawable{}) { + g.cb.PresentDrawable(g.screenDrawable) + } } - if present && g.screenDrawable != (ca.MetalDrawable{}) { - g.cb.PresentDrawable(g.screenDrawable) - } g.cb.Commit() for _, t := range g.tmpTextures {