From: <eli...@us...> - 2006-09-19 11:06:55
|
Revision: 2572 http://svn.sourceforge.net/java-game-lib/?rev=2572&view=rev Author: elias_naur Date: 2006-09-19 04:06:02 -0700 (Tue, 19 Sep 2006) Log Message: ----------- Windows: Don't discard messages from other windows in the message handler Modified Paths: -------------- trunk/LWJGL/src/native/windows/org_lwjgl_opengl_Display.c Modified: trunk/LWJGL/src/native/windows/org_lwjgl_opengl_Display.c =================================================================== --- trunk/LWJGL/src/native/windows/org_lwjgl_opengl_Display.c 2006-09-18 15:03:44 UTC (rev 2571) +++ trunk/LWJGL/src/native/windows/org_lwjgl_opengl_Display.c 2006-09-19 11:06:02 UTC (rev 2572) @@ -147,15 +147,7 @@ PM_REMOVE // removal options )) { - /* - * It would be better to filter messages - * to display_hwnd by specifying that to - * PeekMessage instead of this check. However, - * Windows will then mark LWJGL apps as "not - * responding". - */ - if (msg.hwnd == display_hwnd) - DispatchMessage(&msg); + DispatchMessage(&msg); } } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <eli...@us...> - 2007-04-23 20:50:48
|
Revision: 2798 http://svn.sourceforge.net/java-game-lib/?rev=2798&view=rev Author: elias_naur Date: 2007-04-23 13:50:44 -0700 (Mon, 23 Apr 2007) Log Message: ----------- Windows: Fixed NULL check in native setupCursorClipping Modified Paths: -------------- trunk/LWJGL/src/native/windows/org_lwjgl_opengl_Display.c Modified: trunk/LWJGL/src/native/windows/org_lwjgl_opengl_Display.c =================================================================== --- trunk/LWJGL/src/native/windows/org_lwjgl_opengl_Display.c 2007-04-23 20:17:42 UTC (rev 2797) +++ trunk/LWJGL/src/native/windows/org_lwjgl_opengl_Display.c 2007-04-23 20:50:44 UTC (rev 2798) @@ -217,7 +217,7 @@ JNIEXPORT void JNICALL Java_org_lwjgl_opengl_WindowsDisplay_setupCursorClipping(JNIEnv *env, jclass unused, jlong hwnd_ptr) { HWND hwnd = (HWND)(INT_PTR)hwnd_ptr; RECT hwnd_client; - if (display_hwnd != NULL && GetWindowRect(hwnd, &hwnd_client) != 0) { + if (hwnd != NULL && GetWindowRect(hwnd, &hwnd_client) != 0) { if (ClipCursor(&hwnd_client) == 0) throwFormattedException(env, "ClipCursor failed (%d)", GetLastError()); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <eli...@us...> - 2008-04-29 18:32:13
|
Revision: 3048 http://java-game-lib.svn.sourceforge.net/java-game-lib/?rev=3048&view=rev Author: elias_naur Date: 2008-04-29 11:32:08 -0700 (Tue, 29 Apr 2008) Log Message: ----------- Windows: Added error handling to nCreateWindow Modified Paths: -------------- trunk/LWJGL/src/native/windows/org_lwjgl_opengl_Display.c Modified: trunk/LWJGL/src/native/windows/org_lwjgl_opengl_Display.c =================================================================== --- trunk/LWJGL/src/native/windows/org_lwjgl_opengl_Display.c 2008-04-27 13:37:00 UTC (rev 3047) +++ trunk/LWJGL/src/native/windows/org_lwjgl_opengl_Display.c 2008-04-29 18:32:08 UTC (rev 3048) @@ -178,6 +178,15 @@ return getAvailableDisplayModes(env); } +static void destroyWindow() { + jclass display_class_global = (jclass)(LONG_PTR)GetWindowLongPtr(display_hwnd, GWLP_USERDATA); + closeWindow(&display_hwnd, &display_hdc); + if (display_class_global != NULL) + (*env)->DeleteGlobalRef(env, display_class_global); + freeLargeIcon(); + freeSmallIcon(); +} + JNIEXPORT void JNICALL Java_org_lwjgl_opengl_WindowsDisplay_nCreateWindow(JNIEnv *env, jobject self, jobject mode, jboolean fullscreen, jint x, jint y, jboolean undecorated, jlong parent_hwnd) { jclass cls_displayMode = (*env)->GetObjectClass(env, mode); jfieldID fid_width = (*env)->GetFieldID(env, cls_displayMode, "width", "I"); @@ -199,15 +208,15 @@ return; } display_hdc = GetDC(display_hwnd); + if (display_hdc == NULL) { + destroyWindow(); + throwException(env, "Failed to get the window DC."); + return; + } } JNIEXPORT void JNICALL Java_org_lwjgl_opengl_WindowsDisplay_nDestroyWindow(JNIEnv *env, jclass clazz) { - jclass display_class_global = (jclass)(LONG_PTR)GetWindowLongPtr(display_hwnd, GWLP_USERDATA); - closeWindow(&display_hwnd, &display_hdc); - if (display_class_global != NULL) - (*env)->DeleteGlobalRef(env, display_class_global); - freeLargeIcon(); - freeSmallIcon(); + destroyWindow(); } JNIEXPORT void JNICALL Java_org_lwjgl_opengl_WindowsDisplay_clientToScreen(JNIEnv *env, jclass unused, jlong hwnd_int, jobject buffer_handle) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <eli...@us...> - 2008-04-29 18:37:57
|
Revision: 3049 http://java-game-lib.svn.sourceforge.net/java-game-lib/?rev=3049&view=rev Author: elias_naur Date: 2008-04-29 11:37:51 -0700 (Tue, 29 Apr 2008) Log Message: ----------- Windows: Fixed compile error Modified Paths: -------------- trunk/LWJGL/src/native/windows/org_lwjgl_opengl_Display.c Modified: trunk/LWJGL/src/native/windows/org_lwjgl_opengl_Display.c =================================================================== --- trunk/LWJGL/src/native/windows/org_lwjgl_opengl_Display.c 2008-04-29 18:32:08 UTC (rev 3048) +++ trunk/LWJGL/src/native/windows/org_lwjgl_opengl_Display.c 2008-04-29 18:37:51 UTC (rev 3049) @@ -178,7 +178,7 @@ return getAvailableDisplayModes(env); } -static void destroyWindow() { +static void destroyWindow(JNIEnv *env) { jclass display_class_global = (jclass)(LONG_PTR)GetWindowLongPtr(display_hwnd, GWLP_USERDATA); closeWindow(&display_hwnd, &display_hdc); if (display_class_global != NULL) @@ -209,14 +209,14 @@ } display_hdc = GetDC(display_hwnd); if (display_hdc == NULL) { - destroyWindow(); + destroyWindow(env); throwException(env, "Failed to get the window DC."); return; } } JNIEXPORT void JNICALL Java_org_lwjgl_opengl_WindowsDisplay_nDestroyWindow(JNIEnv *env, jclass clazz) { - destroyWindow(); + destroyWindow(env); } JNIEXPORT void JNICALL Java_org_lwjgl_opengl_WindowsDisplay_clientToScreen(JNIEnv *env, jclass unused, jlong hwnd_int, jobject buffer_handle) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |