From 7bdb96211788f9a6e60bf09c44d5f176a47270c3 Mon Sep 17 00:00:00 2001 From: Richard Tingle <6330028+richardTingle@users.noreply.github.com> Date: Sun, 3 May 2026 18:27:31 +0100 Subject: [PATCH 1/3] Minimal off buffer change --- .../testframework/TestDriver.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/jme3-screenshot-tests/src/main/java/org/jmonkeyengine/screenshottests/testframework/TestDriver.java b/jme3-screenshot-tests/src/main/java/org/jmonkeyengine/screenshottests/testframework/TestDriver.java index 2d7220de14..035902e9a8 100644 --- a/jme3-screenshot-tests/src/main/java/org/jmonkeyengine/screenshottests/testframework/TestDriver.java +++ b/jme3-screenshot-tests/src/main/java/org/jmonkeyengine/screenshottests/testframework/TestDriver.java @@ -39,6 +39,10 @@ import com.jme3.math.FastMath; import com.jme3.system.AppSettings; import com.jme3.system.JmeContext; +import com.jme3.texture.FrameBuffer; +import com.jme3.texture.Image; +import com.jme3.texture.Texture; +import com.jme3.texture.Texture2D; import javax.imageio.IIOImage; import javax.imageio.ImageIO; @@ -135,6 +139,19 @@ public void update(float tpf){ waitLatch.countDown(); }; + AppSettings settings = app.getContext().getSettings(); + int width = settings.getWidth(); + int height = settings.getHeight(); + Texture2D renderTexture = new Texture2D(width, height, Image.Format.RGBA8); + renderTexture.setMinFilter(Texture.MinFilter.BilinearNearestMipMap); + renderTexture.setMagFilter(Texture.MagFilter.Bilinear); + + FrameBuffer offBuffer = new FrameBuffer(width, height, 1); + offBuffer.setDepthTarget(FrameBuffer.FrameBufferTarget.newTarget(Image.Format.Depth)); + offBuffer.addColorTarget(FrameBuffer.FrameBufferTarget.newTarget(renderTexture)); + + app.getRenderer().setMainFrameBufferOverride(offBuffer); + } @Override protected void cleanup(Application app){} From f05b083f335d0f064e45f7d4f10d69221c3ddce0 Mon Sep 17 00:00:00 2001 From: Richard Tingle <6330028+richardTingle@users.noreply.github.com> Date: Sun, 3 May 2026 19:39:49 +0100 Subject: [PATCH 2/3] Set Srgb to true --- .../jmonkeyengine/screenshottests/testframework/TestDriver.java | 1 + 1 file changed, 1 insertion(+) diff --git a/jme3-screenshot-tests/src/main/java/org/jmonkeyengine/screenshottests/testframework/TestDriver.java b/jme3-screenshot-tests/src/main/java/org/jmonkeyengine/screenshottests/testframework/TestDriver.java index 035902e9a8..3018fe8d63 100644 --- a/jme3-screenshot-tests/src/main/java/org/jmonkeyengine/screenshottests/testframework/TestDriver.java +++ b/jme3-screenshot-tests/src/main/java/org/jmonkeyengine/screenshottests/testframework/TestDriver.java @@ -149,6 +149,7 @@ public void update(float tpf){ FrameBuffer offBuffer = new FrameBuffer(width, height, 1); offBuffer.setDepthTarget(FrameBuffer.FrameBufferTarget.newTarget(Image.Format.Depth)); offBuffer.addColorTarget(FrameBuffer.FrameBufferTarget.newTarget(renderTexture)); + offBuffer.setSrgb(true); app.getRenderer().setMainFrameBufferOverride(offBuffer); From cb6ef42cf6bdb4719b07fc05a1e8b6eff5314ac1 Mon Sep 17 00:00:00 2001 From: Richard Tingle <6330028+richardTingle@users.noreply.github.com> Date: Sun, 3 May 2026 22:13:57 +0100 Subject: [PATCH 3/3] Set the colourspace --- .../screenshottests/testframework/TestDriver.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/jme3-screenshot-tests/src/main/java/org/jmonkeyengine/screenshottests/testframework/TestDriver.java b/jme3-screenshot-tests/src/main/java/org/jmonkeyengine/screenshottests/testframework/TestDriver.java index 3018fe8d63..4cbc04878e 100644 --- a/jme3-screenshot-tests/src/main/java/org/jmonkeyengine/screenshottests/testframework/TestDriver.java +++ b/jme3-screenshot-tests/src/main/java/org/jmonkeyengine/screenshottests/testframework/TestDriver.java @@ -43,6 +43,7 @@ import com.jme3.texture.Image; import com.jme3.texture.Texture; import com.jme3.texture.Texture2D; +import com.jme3.texture.image.ColorSpace; import javax.imageio.IIOImage; import javax.imageio.ImageIO; @@ -145,11 +146,13 @@ public void update(float tpf){ Texture2D renderTexture = new Texture2D(width, height, Image.Format.RGBA8); renderTexture.setMinFilter(Texture.MinFilter.BilinearNearestMipMap); renderTexture.setMagFilter(Texture.MagFilter.Bilinear); + renderTexture.getImage().setColorSpace(ColorSpace.sRGB); FrameBuffer offBuffer = new FrameBuffer(width, height, 1); + offBuffer.setSrgb(true); offBuffer.setDepthTarget(FrameBuffer.FrameBufferTarget.newTarget(Image.Format.Depth)); offBuffer.addColorTarget(FrameBuffer.FrameBufferTarget.newTarget(renderTexture)); - offBuffer.setSrgb(true); + app.getRenderer().setMainFrameBufferOverride(offBuffer);