diff --git a/src/main/java/de/extio/game_engine/renderer/RendererData.java b/src/main/java/de/extio/game_engine/renderer/RendererData.java index 803fb7a..65cec3c 100644 --- a/src/main/java/de/extio/game_engine/renderer/RendererData.java +++ b/src/main/java/de/extio/game_engine/renderer/RendererData.java @@ -1,5 +1,6 @@ package de.extio.game_engine.renderer; +import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicLong; import org.springframework.context.ApplicationContext; @@ -31,6 +32,8 @@ public class RendererData { private final AtomicLong frame = new AtomicLong(); + private final AtomicBoolean skipDisplayFrame = new AtomicBoolean(false); + private final KeycodeRegistry keycodeRegistry; private final EventService eventService; @@ -87,6 +90,14 @@ public class RendererData { public long nextFrame() { return this.frame.incrementAndGet(); } + + public boolean isSkipDisplayFrame() { + return this.skipDisplayFrame.get(); + } + + public boolean setSkipDisplayFrame(final boolean skipDisplayFrame) { + return this.skipDisplayFrame.getAndSet(skipDisplayFrame); + } public Renderer getRenderer() { return this.renderer; diff --git a/src/main/java/de/extio/game_engine/renderer/g2d/G2DRenderer.java b/src/main/java/de/extio/game_engine/renderer/g2d/G2DRenderer.java index ce4566d..f08dfdf 100644 --- a/src/main/java/de/extio/game_engine/renderer/g2d/G2DRenderer.java +++ b/src/main/java/de/extio/game_engine/renderer/g2d/G2DRenderer.java @@ -225,7 +225,10 @@ public class G2DRenderer implements Renderer { // Rendering cycle START // - bufferStrategy.show(); + final var skipDisplay = this.rendererData.setSkipDisplayFrame(false); + if (! skipDisplay) { + bufferStrategy.show(); + } Toolkit.getDefaultToolkit().sync(); } finally {