|
@@ -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);
|
|
|
}
|
|
|
}
|