From: <eli...@us...> - 2008-04-30 16:01:27
|
Revision: 3057 http://java-game-lib.svn.sourceforge.net/java-game-lib/?rev=3057&view=rev Author: elias_naur Date: 2008-04-30 09:01:25 -0700 (Wed, 30 Apr 2008) Log Message: ----------- Windows: Made WindowsDisplayPeerInfo take hwnd and hdc arguments Modified Paths: -------------- trunk/LWJGL/src/java/org/lwjgl/opengl/WindowsDisplay.java trunk/LWJGL/src/java/org/lwjgl/opengl/WindowsDisplayPeerInfo.java trunk/LWJGL/src/native/windows/org_lwjgl_opengl_Display.c trunk/LWJGL/src/native/windows/org_lwjgl_opengl_WindowsDisplayPeerInfo.c Modified: trunk/LWJGL/src/java/org/lwjgl/opengl/WindowsDisplay.java =================================================================== --- trunk/LWJGL/src/java/org/lwjgl/opengl/WindowsDisplay.java 2008-04-30 15:29:39 UTC (rev 3056) +++ trunk/LWJGL/src/java/org/lwjgl/opengl/WindowsDisplay.java 2008-04-30 16:01:25 UTC (rev 3057) @@ -155,7 +155,7 @@ long parent_hwnd = parent != null ? getHwnd(parent) : 0; boolean isUndecorated = isUndecorated(); nCreateWindow(mode, fullscreen, x, y, isUndecorated, parent != null, parent_hwnd); - peer_info.initDC(); + peer_info.initDC(getHwnd(), getHdc()); showWindow(getHwnd(), SW_SHOWDEFAULT); if (parent == null) { setForegroundWindow(getHwnd()); @@ -468,6 +468,7 @@ private static native long getDllInstance(); private static native long getHwnd(); + private static native long getHdc(); private static native long getDesktopWindow(); static void centerCursor(long hwnd) { getGlobalClientRect(getHwnd(), rect); Modified: trunk/LWJGL/src/java/org/lwjgl/opengl/WindowsDisplayPeerInfo.java =================================================================== --- trunk/LWJGL/src/java/org/lwjgl/opengl/WindowsDisplayPeerInfo.java 2008-04-30 15:29:39 UTC (rev 3056) +++ trunk/LWJGL/src/java/org/lwjgl/opengl/WindowsDisplayPeerInfo.java 2008-04-30 16:01:25 UTC (rev 3057) @@ -49,11 +49,11 @@ GLContext.loadOpenGLLibrary(); } - void initDC() throws LWJGLException { - nInitDC(getHandle()); + void initDC(long hwnd, long hdc) throws LWJGLException { + nInitDC(getHandle(), hwnd, hdc); choosePixelFormat(0, 0, pixel_format, null, true, true, false, true); } - private static native void nInitDC(ByteBuffer peer_info_handle); + private static native void nInitDC(ByteBuffer peer_info_handle, long hwnd, long hdc); protected void doLockAndInitHandle() throws LWJGLException { // NO-OP Modified: trunk/LWJGL/src/native/windows/org_lwjgl_opengl_Display.c =================================================================== --- trunk/LWJGL/src/native/windows/org_lwjgl_opengl_Display.c 2008-04-30 15:29:39 UTC (rev 3056) +++ trunk/LWJGL/src/native/windows/org_lwjgl_opengl_Display.c 2008-04-30 16:01:25 UTC (rev 3057) @@ -155,15 +155,14 @@ } } +JNIEXPORT jlong JNICALL Java_org_lwjgl_opengl_WindowsDisplay_getHdc(JNIEnv *env, jclass unused) { + return (INT_PTR)display_hdc; +} + JNIEXPORT jlong JNICALL Java_org_lwjgl_opengl_WindowsDisplay_getHwnd(JNIEnv *env, jclass unused) { return (INT_PTR)display_hwnd; } -/* - * Class: org_lwjgl_Window - * Method: nSetTitle - * Signature: ()V - */ JNIEXPORT void JNICALL Java_org_lwjgl_opengl_WindowsDisplay_setTitle (JNIEnv * env, jobject self, jstring title_obj) { char * title = GetStringNativeChars(env, title_obj); Modified: trunk/LWJGL/src/native/windows/org_lwjgl_opengl_WindowsDisplayPeerInfo.c =================================================================== --- trunk/LWJGL/src/native/windows/org_lwjgl_opengl_WindowsDisplayPeerInfo.c 2008-04-30 15:29:39 UTC (rev 3056) +++ trunk/LWJGL/src/native/windows/org_lwjgl_opengl_WindowsDisplayPeerInfo.c 2008-04-30 16:01:25 UTC (rev 3057) @@ -44,8 +44,10 @@ #include "common_tools.h" JNIEXPORT void JNICALL Java_org_lwjgl_opengl_WindowsDisplayPeerInfo_nInitDC - (JNIEnv *env, jclass clazz, jobject peer_info_handle) { + (JNIEnv *env, jclass clazz, jobject peer_info_handle, jlong hwnd_ptr, jlong hdc_ptr) { + HWND hwnd = (HWND)(INT_PTR)hwnd_ptr; + HDC hdc = (HDC)(INT_PTR)hdc_ptr; WindowsPeerInfo *peer_info = (WindowsPeerInfo *)(*env)->GetDirectBufferAddress(env, peer_info_handle); - peer_info->drawable_hdc = getCurrentHDC(); - peer_info->u.hwnd = getCurrentHWND(); + peer_info->drawable_hdc = hdc; + peer_info->u.hwnd = hwnd; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |