From 2aad768c8a4c9688a140ac8a0175b97986490944 Mon Sep 17 00:00:00 2001 From: shadowislord Date: Tue, 3 Jun 2014 23:18:20 -0400 Subject: [PATCH] * Forgot to remove withSRGB from LwjglCanvas --- .../jme3/renderer/lwjgl/LwjglRenderer.java | 19 +++++++++++++++---- .../com/jme3/system/lwjgl/LwjglCanvas.java | 6 ++---- .../com/jme3/system/lwjgl/LwjglDisplay.java | 3 +-- .../system/lwjgl/LwjglOffscreenBuffer.java | 3 +-- 4 files changed, 19 insertions(+), 12 deletions(-) diff --git a/jme3-lwjgl/src/main/java/com/jme3/renderer/lwjgl/LwjglRenderer.java b/jme3-lwjgl/src/main/java/com/jme3/renderer/lwjgl/LwjglRenderer.java index bcfd1acc5..b43cea719 100644 --- a/jme3-lwjgl/src/main/java/com/jme3/renderer/lwjgl/LwjglRenderer.java +++ b/jme3-lwjgl/src/main/java/com/jme3/renderer/lwjgl/LwjglRenderer.java @@ -2565,14 +2565,25 @@ public class LwjglRenderer implements Renderer { return; } + setFrameBuffer(null); + if (enableSrgb) { if (!glGetBoolean(GL30.GL_FRAMEBUFFER_SRGB_CAPABLE)) { - logger.warning("Driver claims that default framebuffer " + - "is not sRGB capable. Enabling anyway."); + logger.warning("Driver claims that default framebuffer " + + "is not sRGB capable. Enabling anyway."); } - + + int encoding = GL30.glGetFramebufferAttachmentParameteri(GL30.GL_DRAW_FRAMEBUFFER, + GL_FRONT_LEFT, + GL30.GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING); + + if (encoding != GL21.GL_SRGB) { + logger.warning("Driver claims that default framebuffer " + + "is not using sRGB color encoding. Enabling anyway."); + } + glEnable(GL30.GL_FRAMEBUFFER_SRGB); - + logger.log(Level.FINER, "SRGB FrameBuffer enabled (Gamma Correction)"); } else { glDisable(GL30.GL_FRAMEBUFFER_SRGB); diff --git a/jme3-lwjgl/src/main/java/com/jme3/system/lwjgl/LwjglCanvas.java b/jme3-lwjgl/src/main/java/com/jme3/system/lwjgl/LwjglCanvas.java index e7d9756fe..f51fc7b35 100644 --- a/jme3-lwjgl/src/main/java/com/jme3/system/lwjgl/LwjglCanvas.java +++ b/jme3-lwjgl/src/main/java/com/jme3/system/lwjgl/LwjglCanvas.java @@ -308,8 +308,7 @@ public class LwjglCanvas extends LwjglAbstractDisplay implements JmeCanvasContex 0, 0, 0, - settings.useStereo3D()) - .withSRGB(settings.getGammaCorrection()); + settings.useStereo3D()); } return pbufferFormat; }else{ @@ -323,8 +322,7 @@ public class LwjglCanvas extends LwjglAbstractDisplay implements JmeCanvasContex 0, 0, 0, - settings.useStereo3D()) - .withSRGB(settings.getGammaCorrection()); + settings.useStereo3D()); } return canvasFormat; } diff --git a/jme3-lwjgl/src/main/java/com/jme3/system/lwjgl/LwjglDisplay.java b/jme3-lwjgl/src/main/java/com/jme3/system/lwjgl/LwjglDisplay.java index cce6c0c06..1974e5137 100644 --- a/jme3-lwjgl/src/main/java/com/jme3/system/lwjgl/LwjglDisplay.java +++ b/jme3-lwjgl/src/main/java/com/jme3/system/lwjgl/LwjglDisplay.java @@ -91,8 +91,7 @@ public class LwjglDisplay extends LwjglAbstractDisplay { 0, 0, 0, - settings.useStereo3D()) - .withSRGB(settings.getGammaCorrection()); + settings.useStereo3D()); frameRate = settings.getFrameRate(); logger.log(Level.FINE, "Selected display mode: {0}", displayMode); diff --git a/jme3-lwjgl/src/main/java/com/jme3/system/lwjgl/LwjglOffscreenBuffer.java b/jme3-lwjgl/src/main/java/com/jme3/system/lwjgl/LwjglOffscreenBuffer.java index 6d5da4563..27af9317f 100644 --- a/jme3-lwjgl/src/main/java/com/jme3/system/lwjgl/LwjglOffscreenBuffer.java +++ b/jme3-lwjgl/src/main/java/com/jme3/system/lwjgl/LwjglOffscreenBuffer.java @@ -65,8 +65,7 @@ public class LwjglOffscreenBuffer extends LwjglContext implements Runnable { 0, settings.getDepthBits(), settings.getStencilBits(), - samples) - .withSRGB(settings.getGammaCorrection()); + samples); width = settings.getWidth(); height = settings.getHeight();