From 5f88d137a87cadc695ba98cee9b80eefeedfd449 Mon Sep 17 00:00:00 2001 From: "Sha..rd" <ShadowIsLord@gmail.com> Date: Wed, 19 Sep 2012 04:09:06 +0000 Subject: [PATCH] * Add RenderManager.setUsingShaders() method in case it is used directly (without RenderManager.render()). * Fix issue where LwjglOffscreenBuffer's thread would freeze after it has been destroyed git-svn-id: https://jmonkeyengine.googlecode.com/svn/trunk@9753 75d07b2b-3a1a-0410-a2c5-0572b91ccdca --- engine/src/core/com/jme3/renderer/RenderManager.java | 12 +++++++----- .../com/jme3/system/lwjgl/LwjglOffscreenBuffer.java | 4 +++- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/engine/src/core/com/jme3/renderer/RenderManager.java b/engine/src/core/com/jme3/renderer/RenderManager.java index 5d69fc882..b65c193f6 100644 --- a/engine/src/core/com/jme3/renderer/RenderManager.java +++ b/engine/src/core/com/jme3/renderer/RenderManager.java @@ -650,19 +650,17 @@ public class RenderManager { scene.runControlRender(this, vp); if (scene instanceof Node) { - // recurse for all children + // Recurse for all children Node n = (Node) scene; List<Spatial> children = n.getChildren(); - //saving cam state for culling + // Saving cam state for culling int camState = vp.getCamera().getPlaneState(); for (int i = 0; i < children.size(); i++) { - //restoring cam state before proceeding children recusively + // Restoring cam state before proceeding children recusively vp.getCamera().setPlaneState(camState); renderScene(children.get(i), vp); - } } else if (scene instanceof Geometry) { - // add to the render queue Geometry gm = (Geometry) scene; if (gm.getMaterial() == null) { @@ -991,6 +989,10 @@ public class RenderManager { clearQueue(vp); } + public void setUsingShaders(boolean usingShaders) { + this.shader = usingShaders; + } + /** * Called by the application to render any ViewPorts * added to this RenderManager. diff --git a/engine/src/lwjgl/com/jme3/system/lwjgl/LwjglOffscreenBuffer.java b/engine/src/lwjgl/com/jme3/system/lwjgl/LwjglOffscreenBuffer.java index 05f714310..d2359732d 100644 --- a/engine/src/lwjgl/com/jme3/system/lwjgl/LwjglOffscreenBuffer.java +++ b/engine/src/lwjgl/com/jme3/system/lwjgl/LwjglOffscreenBuffer.java @@ -118,7 +118,7 @@ public class LwjglOffscreenBuffer extends LwjglContext implements Runnable { } listener.update(); - assert checkGLError(); + checkGLError(); renderer.onFrame(); @@ -135,6 +135,8 @@ public class LwjglOffscreenBuffer extends LwjglContext implements Runnable { renderer.cleanup(); pbuffer.destroy(); logger.info("Offscreen buffer destroyed."); + + super.internalDestroy(); } public void run(){