From dd0038a68a9aa99646549644c3338266546b05f8 Mon Sep 17 00:00:00 2001 From: Sven Gothel Date: Wed, 17 Nov 2010 10:38:19 +0100 Subject: Move GDI GlueGen wrapping from JOGL -> NativeWindow (following X11). Moving NEWT WindowsWindow GetRelativeLocation() native implementation to GDI as well. --- make/build-common.xml | 6 ++- make/build-jogl.xml | 1 - make/build-nativewindow.xml | 45 ++++++++++++++++---- make/config/jogl/gdi-CustomCCode.c | 48 ---------------------- make/config/jogl/gdi-win32.cfg | 26 ------------ make/config/nativewindow/win32-CustomJavaCode.java | 24 +++++++++++ make/config/nativewindow/win32-lib.cfg | 37 +++++++++++++++++ make/scripts/tests.bat | 5 ++- make/scripts/tests.sh | 5 ++- make/stub_includes/win32/window-lib.c | 2 + make/stub_includes/win32/window-system0.c | 2 - 11 files changed, 111 insertions(+), 90 deletions(-) delete mode 100644 make/config/jogl/gdi-CustomCCode.c delete mode 100644 make/config/jogl/gdi-win32.cfg create mode 100644 make/config/nativewindow/win32-CustomJavaCode.java create mode 100644 make/config/nativewindow/win32-lib.cfg create mode 100644 make/stub_includes/win32/window-lib.c delete mode 100644 make/stub_includes/win32/window-system0.c (limited to 'make') diff --git a/make/build-common.xml b/make/build-common.xml index 468e5933c..e6a066197 100644 --- a/make/build-common.xml +++ b/make/build-common.xml @@ -274,6 +274,7 @@ + @@ -312,8 +313,9 @@ - - + + + diff --git a/make/build-jogl.xml b/make/build-jogl.xml index 850393202..ddfbc25f7 100644 --- a/make/build-jogl.xml +++ b/make/build-jogl.xml @@ -724,7 +724,6 @@ - diff --git a/make/build-nativewindow.xml b/make/build-nativewindow.xml index 46a3f58f4..432646841 100644 --- a/make/build-nativewindow.xml +++ b/make/build-nativewindow.xml @@ -81,6 +81,9 @@ + + + includes="com/jogamp/nativewindow/impl/x11/** com/jogamp/nativewindow/impl/windows/**" /> @@ -286,6 +289,7 @@ + @@ -406,7 +410,7 @@ - + @@ -561,6 +565,11 @@ + + + + + - + + + + + + + @@ -712,6 +730,19 @@ + + + + + + + + + + + - + + excludes="${java.part.awt} ${java.part.x11} ${java.part.windows}"/> @@ -746,11 +777,11 @@ - + + excludes="${java.part.awt} ${java.part.x11} ${java.part.windows}"/> diff --git a/make/config/jogl/gdi-CustomCCode.c b/make/config/jogl/gdi-CustomCCode.c deleted file mode 100644 index 0fe9ee628..000000000 --- a/make/config/jogl/gdi-CustomCCode.c +++ /dev/null @@ -1,48 +0,0 @@ -#include - -#define JOGL_DUMMY_WINDOW_NAME "__jogl_dummy_window" - -LRESULT CALLBACK DummyWndProc( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { - return DefWindowProc(hWnd,uMsg,wParam,lParam); -} - -ATOM oglClass = 0; - -HWND CreateDummyWindow( int x, int y, int width, int height ) { - HINSTANCE hInstance; - DWORD dwExStyle; - DWORD dwStyle; - HWND hWnd; - - hInstance = GetModuleHandle(NULL); - if( !oglClass ) { - WNDCLASS wc; - ZeroMemory( &wc, sizeof( wc ) ); - wc.style = CS_HREDRAW | CS_VREDRAW | CS_OWNDC; - wc.lpfnWndProc = (WNDPROC) DummyWndProc; - wc.cbClsExtra = 0; - wc.cbWndExtra = 0; - wc.hInstance = hInstance; - wc.hIcon = NULL; - wc.hCursor = NULL; - wc.hbrBackground = NULL; - wc.lpszMenuName = NULL; - wc.lpszClassName = JOGL_DUMMY_WINDOW_NAME; - if( !(oglClass = RegisterClass( &wc )) ) { - printf( "RegisterClass Failed: %d\n", GetLastError() ); - return( 0 ); - } - } - - dwExStyle = WS_EX_APPWINDOW | WS_EX_WINDOWEDGE; - dwStyle = WS_OVERLAPPEDWINDOW; - if( !(hWnd=CreateWindowEx( dwExStyle, - JOGL_DUMMY_WINDOW_NAME, - JOGL_DUMMY_WINDOW_NAME, - dwStyle | WS_CLIPSIBLINGS | WS_CLIPCHILDREN, - x, y, width, height, - NULL, NULL, hInstance, NULL ) ) ) { - return( 0 ); - } - return( hWnd ); -} diff --git a/make/config/jogl/gdi-win32.cfg b/make/config/jogl/gdi-win32.cfg deleted file mode 100644 index 7d831c7b9..000000000 --- a/make/config/jogl/gdi-win32.cfg +++ /dev/null @@ -1,26 +0,0 @@ -# This .cfg file is used to generate the interface to the wgl routines -# used internally by the WindowsGLContext implementation. -JavaOutputDir gensrc/classes -NativeOutputDir gensrc/native/jogl/Windows - -Package com.jogamp.opengl.impl.windows.wgl -JavaClass GDI -Style AllStatic -Include gl-common.cfg -Include gl-common-extensions.cfg -Include gl-desktop.cfg - -GLHeader wingdi.h - -AllowNonGLExtensions true - -CustomCCode #define WIN32_LEAN_AND_MEAN -CustomCCode #include -CustomCCode #undef WIN32_LEAN_AND_MEAN - -CustomCCode #include -CustomCCode #include - -Include ../intptr.cfg - -IncludeAs CustomCCode gdi-CustomCCode.c diff --git a/make/config/nativewindow/win32-CustomJavaCode.java b/make/config/nativewindow/win32-CustomJavaCode.java new file mode 100644 index 000000000..cd5b00b79 --- /dev/null +++ b/make/config/nativewindow/win32-CustomJavaCode.java @@ -0,0 +1,24 @@ + + private static final long hInstance; + + static { + NWJNILibLoader.loadNativeWindow("win32"); + hInstance = initIDs0(); + if( 0 == hInstance ) { + throw new NativeWindowException("GDI: Could not initialized native stub"); + } + } + + public static synchronized void initSingleton() { + } + private static native long initIDs0(); + + public static long getModuleHandle() { + return hInstance; + } + + public static Point GetRelativeLocation(long src_win, long dest_win, int src_x, int src_y) { + return (Point) GetRelativeLocation0(src_win, dest_win, src_x, src_y); + } + private static native Object GetRelativeLocation0(long src_win, long dest_win, int src_x, int src_y); + diff --git a/make/config/nativewindow/win32-lib.cfg b/make/config/nativewindow/win32-lib.cfg new file mode 100644 index 000000000..b7535b5e1 --- /dev/null +++ b/make/config/nativewindow/win32-lib.cfg @@ -0,0 +1,37 @@ +# This .cfg file is used to generate the interface to the wgl routines +# used internally by the WindowsGLContext implementation. +JavaOutputDir gensrc/classes +NativeOutputDir gensrc/native/Windows + +Package com.jogamp.nativewindow.impl.windows +JavaClass GDI +Style AllStatic + +Opaque boolean BOOL +Opaque long HINSTANCE +Opaque long HANDLE +Opaque long HBITMAP +Opaque long HDC +Opaque long HGDIOBJ +Opaque long HGLRC +Opaque long HPBUFFERARB +Opaque long HPBUFFEREXT +Opaque boolean BOOL +Opaque long PROC +Opaque long void ** + +Import javax.media.nativewindow.util.Point +Import javax.media.nativewindow.NativeWindowException +Import com.jogamp.nativewindow.impl.NWJNILibLoader + +CustomCCode #define WIN32_LEAN_AND_MEAN +CustomCCode #include +CustomCCode #undef WIN32_LEAN_AND_MEAN + +CustomCCode #include +CustomCCode #include + +Include ../intptr.cfg + +IncludeAs CustomJavaCode GDI win32-CustomJavaCode.java + diff --git a/make/scripts/tests.bat b/make/scripts/tests.bat index 8fee63e8c..cfb801d79 100644 --- a/make/scripts/tests.bat +++ b/make/scripts/tests.bat @@ -1,5 +1,5 @@ -scripts\java-win64-dbg.bat com.jogamp.newt.opengl.GLWindow -scripts\java-win64-dbg.bat com.jogamp.test.junit.jogl.acore.TestGLProfile01NEWT +REM scripts\java-win64-dbg.bat com.jogamp.newt.opengl.GLWindow +REM scripts\java-win64-dbg.bat com.jogamp.test.junit.jogl.acore.TestGLProfile01NEWT REM scripts\java-win64-dbg.bat com.jogamp.test.junit.jogl.demos.gl2.gears.newt.TestGearsNEWT -time 30000 REM scripts\java-win64-dbg.bat com.jogamp.test.junit.jogl.newt.TestSwingAWTRobotUsageBeforeJOGLInitBug411 @@ -24,3 +24,4 @@ REM scripts\java-win64-dbg.bat com.jogamp.test.junit.newt.TestScreenMode02NEWT REM scripts\java-win64-dbg.bat com.jogamp.test.junit.newt.TestDisplayLifecycle01NEWT REM scripts\java-win64-dbg.bat com.jogamp.test.junit.newt.parenting.TestParenting01NEWT REM scripts\java-win64-dbg.bat com.jogamp.test.junit.newt.parenting.TestParenting02NEWT +scripts\java-win64-dbg.bat com.jogamp.test.junit.newt.TestCloseNewtAWT diff --git a/make/scripts/tests.sh b/make/scripts/tests.sh index d61435d67..1def82be5 100644 --- a/make/scripts/tests.sh +++ b/make/scripts/tests.sh @@ -36,7 +36,7 @@ function jrun() { #D_ARGS="-Dnewt.debug.Screen -Dnewt.debug.EDT -Djogamp.debug.Lock" #D_ARGS="-Dnewt.debug.EDT" #D_ARGS="-Djogl.debug=all -Dnativewindow.debug=all -Dnewt.debug=all" - D_ARGS="-Dnewt.debug=all" + #D_ARGS="-Dnewt.debug=all" X_ARGS="-Dsun.java2d.noddraw=true -Dsun.java2d.opengl=false" java $awtarg $X_ARGS $D_ARGS $* 2>&1 | tee -a java-run.log } @@ -61,7 +61,7 @@ function testawt() { #testawt com.jogamp.test.junit.jogl.demos.gl2.gears.newt.TestGearsNEWT #testawt com.jogamp.test.junit.newt.TestDisplayLifecycle01NEWT #testawt com.jogamp.test.junit.newt.TestDisplayLifecycle02NEWT -testawt com.jogamp.test.junit.newt.parenting.TestParenting01NEWT +#testawt com.jogamp.test.junit.newt.parenting.TestParenting01NEWT #testawt com.jogamp.test.junit.newt.parenting.TestParenting02NEWT #testawt com.jogamp.test.junit.newt.TestScreenMode00NEWT #testnoawt com.jogamp.test.junit.newt.TestScreenMode01NEWT @@ -97,6 +97,7 @@ testawt com.jogamp.test.junit.newt.parenting.TestParenting01NEWT #testawt com.jogamp.test.junit.newt.parenting.TestParenting03AWT #testawt com.jogamp.test.junit.newt.parenting.TestParenting03AWT -time 100000 #testawt com.jogamp.test.junit.newt.parenting.TestParenting03bAWT -time 100000 +testawt com.jogamp.test.junit.newt.TestCloseNewtAWT #testawt $* diff --git a/make/stub_includes/win32/window-lib.c b/make/stub_includes/win32/window-lib.c new file mode 100644 index 000000000..c5c5d37b9 --- /dev/null +++ b/make/stub_includes/win32/window-lib.c @@ -0,0 +1,2 @@ +#include +#include diff --git a/make/stub_includes/win32/window-system0.c b/make/stub_includes/win32/window-system0.c deleted file mode 100644 index c5c5d37b9..000000000 --- a/make/stub_includes/win32/window-system0.c +++ /dev/null @@ -1,2 +0,0 @@ -#include -#include -- cgit v1.2.3