From c390b240038613dfcdaca45ccec1259d7038ca66 Mon Sep 17 00:00:00 2001 From: extio-de Date: Mon, 22 Dec 2025 23:50:09 +0100 Subject: [PATCH] feat(renderer): Enable OpenGL support and fix background rendering with new working sets; --- .../game_engine/renderer/g2d/G2DRenderer.java | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) 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 4cd529b..3172d95 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 @@ -70,6 +70,7 @@ public class G2DRenderer implements Renderer { System.setProperty("java.awt.headless", "false"); System.setProperty("sun.java2d.uiScale", "1"); + System.setProperty("sun.java2d.opengl", "true"); System.setProperty("awt.nativeDoubleBuffering", "true"); System.setProperty("awt.useSystemAAFontSettings", "on"); System.setProperty("swing.aatext", "true"); @@ -86,6 +87,8 @@ public class G2DRenderer implements Renderer { EventQueue.invokeAndWait(() -> { // this invokeAndWait() call is also important to wait until applyVideoOptions() has been completed, which also puts events to AWT event queue LOGGER.debug("Viewport initialized"); + this.rendererData.getRendererWorkingSet().add("G2DRenderer", this.rendererData.getRenderingBoPool().acquire("G2DRenderer_background", G2DDrawBackground.class)); + this.rendererData.getRendererWorkingSet().add("G2DRenderer", this.rendererData.getRenderingBoPool().acquire("G2DRenderer_tooltip", G2DDrawControlTooltip.class)); }); } catch (InvocationTargetException | InterruptedException e) { @@ -148,7 +151,8 @@ public class G2DRenderer implements Renderer { screenshotGraphics.setRenderingHints(G2DRenderingHintFactory.createDefault()); } - this.addStaticRenderingBOs(); + this.drawStatistics(); + this.rendererData.getRendererWorkingSet().commit("G2DRenderer", true); this.rendererData.getRendererWorkingSet().getLiveSet(this.renderingBOs); this.renderingBOs.sort((bo0, bo1) -> bo0.getLayer().compareTo(bo1.getLayer())); @@ -174,6 +178,8 @@ public class G2DRenderer implements Renderer { } } + this.rendererData.getRendererWorkingSet().get("G2DRenderer", "G2DRenderer_tooltip").closeStatic(); + // // Rendering cycle END // @@ -209,13 +215,6 @@ public class G2DRenderer implements Renderer { } } - private void addStaticRenderingBOs() { - this.rendererData.getRendererWorkingSet().add("G2DRenderer", this.rendererData.getRenderingBoPool().acquire("G2DRenderer_background", G2DDrawBackground.class)); - this.rendererData.getRendererWorkingSet().add("G2DRenderer", this.rendererData.getRenderingBoPool().acquire("G2DRenderer_control", G2DDrawControlTooltip.class)); - this.drawStatistics(); - this.rendererData.getRendererWorkingSet().commit("G2DRenderer", false); - } - private void drawStatistics() { if (!this.rendererData.getUiOptions().isDrawFps()) { return;