Pārlūkot izejas kodu

* Attempt to fix SDK / AWT panels issue "Framebuffer doesn’t have any renderbuffers attached."

git-svn-id: https://jmonkeyengine.googlecode.com/svn/trunk@9991 75d07b2b-3a1a-0410-a2c5-0572b91ccdca
Sha..rd 13 gadi atpakaļ
vecāks
revīzija
b7c76799e2

+ 10 - 5
engine/src/lwjgl/com/jme3/system/lwjgl/LwjglOffscreenBuffer.java

@@ -104,15 +104,20 @@ public class LwjglOffscreenBuffer extends LwjglContext implements Runnable {
     }
 
     protected void runLoop(){
-        if (!created.get())
+        if (!created.get()) {
             throw new IllegalStateException();
+        }
 
-        if (pbuffer.isBufferLost()){
+        if (pbuffer.isBufferLost()) {
             pbuffer.destroy();
-            try{
+
+            try {
                 pbuffer = new Pbuffer(width, height, pixelFormat, null);
                 pbuffer.makeCurrent();
-            }catch (LWJGLException ex){
+                
+                // Context MUST be reset here to avoid invalid objects!
+                renderer.invalidateState();
+            } catch (LWJGLException ex) {
                 listener.handleError("Failed to restore pbuffer content", ex);
             }
         }
@@ -123,7 +128,7 @@ public class LwjglOffscreenBuffer extends LwjglContext implements Runnable {
         renderer.onFrame();
 
         int frameRate = settings.getFrameRate();
-        if (frameRate >= 1){
+        if (frameRate >= 1) {
             Display.sync(frameRate);
         }
     }