From 8585d8b2a525c1e7736df7f60395edde36dc1ee5 Mon Sep 17 00:00:00 2001 From: Elias Naur Date: Sun, 4 Jul 2004 08:39:09 +0000 Subject: [PATCH] Make sure the GL11 native stubs are unloaded too. Throw exception when wglMakeCurrent fails --- src/java/org/lwjgl/opengl/GLContext.java | 7 +++++-- src/native/win32/org_lwjgl_opengl_Display.cpp | 4 +++- src/native/win32/org_lwjgl_opengl_Pbuffer.cpp | 3 ++- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/java/org/lwjgl/opengl/GLContext.java b/src/java/org/lwjgl/opengl/GLContext.java index 953faa04..6c80a983 100644 --- a/src/java/org/lwjgl/opengl/GLContext.java +++ b/src/java/org/lwjgl/opengl/GLContext.java @@ -330,8 +330,11 @@ public final class GLContext { private static void unloadStubs() { Iterator exts_it = exts.keySet().iterator(); - while (exts_it.hasNext()) - resetNativeStubs((Class)exts_it.next()); + while (exts_it.hasNext()) { + Class ext_class = (Class)exts_it.next(); + resetNativeStubs(ext_class); + } + resetNativeStubs(org.lwjgl.opengl.GL11.class); } /** diff --git a/src/native/win32/org_lwjgl_opengl_Display.cpp b/src/native/win32/org_lwjgl_opengl_Display.cpp index 80b2267b..a14a3a0a 100644 --- a/src/native/win32/org_lwjgl_opengl_Display.cpp +++ b/src/native/win32/org_lwjgl_opengl_Display.cpp @@ -561,7 +561,9 @@ JNIEXPORT void JNICALL Java_org_lwjgl_opengl_Display_nSetVSyncEnabled JNIEXPORT void JNICALL Java_org_lwjgl_opengl_Display_nMakeCurrent (JNIEnv *env, jclass clazz) { - wglMakeCurrent(hdc, hglrc); + BOOL result = wglMakeCurrent(hdc, hglrc); + if (!result) + throwException(env, "Could not make display context current"); } /* diff --git a/src/native/win32/org_lwjgl_opengl_Pbuffer.cpp b/src/native/win32/org_lwjgl_opengl_Pbuffer.cpp index e6a6e340..482b78f4 100755 --- a/src/native/win32/org_lwjgl_opengl_Pbuffer.cpp +++ b/src/native/win32/org_lwjgl_opengl_Pbuffer.cpp @@ -174,7 +174,8 @@ JNIEXPORT void JNICALL Java_org_lwjgl_opengl_Pbuffer_nMakeCurrent (JNIEnv *env, jclass clazz, jint handle) { PbufferInfo *Pbuffer_info = (PbufferInfo *)handle; - wglMakeCurrent(Pbuffer_info->Pbuffer_dc, Pbuffer_info->Pbuffer_context); + if (!wglMakeCurrent(Pbuffer_info->Pbuffer_dc, Pbuffer_info->Pbuffer_context)) + throwException(env, "Could not make pbuffer context current"); } JNIEXPORT void JNICALL Java_org_lwjgl_opengl_Pbuffer_nDestroy