From 55195bd996539b02942ba66f07a6bf572b04314c Mon Sep 17 00:00:00 2001 From: Nehon Date: Mon, 16 Feb 2015 14:48:32 +0100 Subject: [PATCH] SDK scene viewer and previews are now gamma corrected --- .../src/com/jme3/gde/core/scene/SceneApplication.java | 4 +++- .../com/jme3/gde/core/scene/ScenePreviewProcessor.java | 8 ++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/sdk/jme3-core/src/com/jme3/gde/core/scene/SceneApplication.java b/sdk/jme3-core/src/com/jme3/gde/core/scene/SceneApplication.java index b19da0729..73794adf0 100644 --- a/sdk/jme3-core/src/com/jme3/gde/core/scene/SceneApplication.java +++ b/sdk/jme3-core/src/com/jme3/gde/core/scene/SceneApplication.java @@ -136,9 +136,11 @@ public class SceneApplication extends Application implements LookupProvider { public SceneApplication() { Logger.getLogger("com.jme3").addHandler(logHandler); useCanvas = "true".equals(NbPreferences.forModule(Installer.class).get("use_lwjgl_canvas", "false")); + Logger.getLogger("com.jme3.renderer.opengl.TextureUtil").setLevel(Level.SEVERE); try { AppSettings newSetting = new AppSettings(true); newSetting.setFrameRate(30); + newSetting.setGammaCorrection(true); if (!useCanvas) { newSetting.setCustomRenderer(AwtPanelsContext.class); } @@ -169,7 +171,7 @@ public class SceneApplication extends Application implements LookupProvider { return ((JmeCanvasContext) getContext()).getCanvas(); } else { if (panel == null) { - panel = ((AwtPanelsContext) getContext()).createPanel(PaintMode.Accelerated); + panel = ((AwtPanelsContext) getContext()).createPanel(PaintMode.Accelerated, true); ((AwtPanelsContext) getContext()).setInputSource(panel); attachPanel(); } diff --git a/sdk/jme3-core/src/com/jme3/gde/core/scene/ScenePreviewProcessor.java b/sdk/jme3-core/src/com/jme3/gde/core/scene/ScenePreviewProcessor.java index f827eacff..0b6e7fe35 100644 --- a/sdk/jme3-core/src/com/jme3/gde/core/scene/ScenePreviewProcessor.java +++ b/sdk/jme3-core/src/com/jme3/gde/core/scene/ScenePreviewProcessor.java @@ -37,6 +37,7 @@ import com.jme3.math.ColorRGBA; import com.jme3.math.Vector3f; import com.jme3.post.SceneProcessor; import com.jme3.renderer.Camera; +import com.jme3.renderer.Caps; import com.jme3.renderer.RenderManager; import com.jme3.renderer.ViewPort; import com.jme3.renderer.queue.RenderQueue; @@ -49,6 +50,8 @@ import java.awt.image.DataBufferByte; import java.awt.image.WritableRaster; import java.nio.ByteBuffer; import java.util.concurrent.ConcurrentLinkedQueue; +import java.util.logging.Level; +import java.util.logging.Logger; /** * @@ -113,8 +116,9 @@ public class ScenePreviewProcessor implements SceneProcessor { offCamera.lookAt(new Vector3f(0f, 0f, 0f), Vector3f.UNIT_Y); //setup framebuffer to use texture - offBuffer.setDepthBuffer(Format.Depth); + offBuffer.setDepthBuffer(Format.Depth); offBuffer.setColorBuffer(Format.RGBA8); + offBuffer.setSrgb(true); //set viewport to render to offscreen framebuffer offView.setOutputFrameBuffer(offBuffer); @@ -182,7 +186,7 @@ public class ScenePreviewProcessor implements SceneProcessor { byte g = cpuArray[i + 1]; byte r = cpuArray[i + 2]; byte a = cpuArray[i + 3]; - + cpuArray[i + 0] = a; cpuArray[i + 1] = b; cpuArray[i + 2] = g;