delete GL resources only when the Gl thread is current. Fixes #12

This commit is contained in:
codeanticode
2013-02-20 16:14:31 -05:00
parent 2432a9fed3
commit 3005f33ea3
2 changed files with 34 additions and 22 deletions

View File

@@ -667,7 +667,7 @@ public class PGL {
protected void deleteSurface() {
if (glColorTex != null) {
if (threadIsCurrent() && fboLayerCreated) {
deleteTextures(2, glColorTex);
deleteFramebuffers(1, glColorFbo);
deleteFramebuffers(1, glMultiFbo);
@@ -676,10 +676,22 @@ public class PGL {
deleteRenderbuffers(1, glDepth);
deleteRenderbuffers(1, glStencil);
}
if (canvasAWT != null) {
canvasAWT.removeGLEventListener(listener);
pg.parent.removeListeners(canvasAWT);
pg.parent.remove(canvasAWT);
} else if (canvasNEWT != null) {
window.removeGLEventListener(listener);
pg.parent.remove(canvasNEWT);
}
fboLayerCreated = false;
fboLayerInUse = false;
firstFrame = false;
GLProfile.shutdown();
}