Merge pull request #6579 from deathbeam/properly-destroy

Properly destroy JAWT window on plugin shutdown
This commit is contained in:
Adam
2018-11-19 20:49:06 -05:00
committed by GitHub

View File

@@ -26,7 +26,6 @@ package net.runelite.client.plugins.gpu;
import com.google.common.eventbus.Subscribe; import com.google.common.eventbus.Subscribe;
import com.google.inject.Provides; import com.google.inject.Provides;
import com.jogamp.nativewindow.NativeSurface;
import com.jogamp.nativewindow.awt.AWTGraphicsConfiguration; import com.jogamp.nativewindow.awt.AWTGraphicsConfiguration;
import com.jogamp.nativewindow.awt.JAWTWindow; import com.jogamp.nativewindow.awt.JAWTWindow;
import com.jogamp.opengl.GL; import com.jogamp.opengl.GL;
@@ -330,11 +329,6 @@ public class GpuPlugin extends Plugin implements DrawCallbacks
client.setGpu(false); client.setGpu(false);
client.setDrawCallbacks(null); client.setDrawCallbacks(null);
if (jawtWindow.getLock().getHoldCount() != NativeSurface.LOCK_SURFACE_NOT_READY)
{
jawtWindow.lockSurface();
}
if (bufferId != -1) if (bufferId != -1)
{ {
GLUtil.glDeleteBuffer(gl, bufferId); GLUtil.glDeleteBuffer(gl, bufferId);
@@ -357,7 +351,13 @@ public class GpuPlugin extends Plugin implements DrawCallbacks
shutdownProgram(); shutdownProgram();
shutdownVao(); shutdownVao();
if (!jawtWindow.getLock().isLocked())
{
jawtWindow.lockSurface();
}
glContext.destroy(); glContext.destroy();
NewtFactoryAWT.destroyNativeWindow(jawtWindow);
jawtWindow = null; jawtWindow = null;
gl = null; gl = null;