diff options
-rw-r--r-- | make/build-jogl.xml | 10 | ||||
-rw-r--r-- | make/build-nativewindow.xml | 2 | ||||
-rw-r--r-- | make/build-newt.xml | 4 | ||||
-rwxr-xr-x | make/config/jogl/eglext.cfg | 3 | ||||
-rwxr-xr-x | make/stub_includes/egl/EGL/egl.h | 5 | ||||
-rw-r--r-- | src/nativewindow/classes/javax/media/nativewindow/NativeWindowFactory.java | 4 | ||||
-rwxr-xr-x | src/newt/classes/com/sun/javafx/newt/Display.java | 3 | ||||
-rwxr-xr-x | src/newt/classes/com/sun/javafx/newt/NewtFactory.java | 3 | ||||
-rw-r--r-- | src/newt/classes/com/sun/javafx/newt/opengl/egl/EGLDisplay.java | 85 |
9 files changed, 111 insertions, 8 deletions
diff --git a/make/build-jogl.xml b/make/build-jogl.xml index b23aee60c..348dc0624 100644 --- a/make/build-jogl.xml +++ b/make/build-jogl.xml @@ -1204,6 +1204,10 @@ <syslibset dir="/usr/X11R6/lib" libs="Xxf86vm" /> </linker> + <linker id="linker.cfg.linux.jogl.egl" extends="linker.cfg.linux"> + <syslibset dir="/nfsroot/lg/lib" libs="EglUtil"/> + </linker> + <linker id="linker.cfg.linux.jogl.gl2" extends="linker.cfg.linux.jogl.x11"> <syslibset dir="/usr/X11R6/lib" libs="GL"/> </linker> @@ -1331,7 +1335,11 @@ <property name="linker.cfg.id.cg" value="linker.cfg.linux.jogl.cg" /> </target> - <target name="c.configure.linux" depends="c.configure.linux.x86,c.configure.linux.amd64,c.configure.linux.ia64,c.configure.x11" if="isLinux" /> + <target name="c.configure.linux" + depends="c.configure.linux.x86,c.configure.linux.amd64,c.configure.linux.ia64,c.configure.x11" + if="isLinux"> + <property name="linker.cfg.id.egl" value="linker.cfg.linux.jogl.egl" /> + </target> <target name="c.configure.solaris32" depends="c.configure.x11" if="isSolaris32Bit"> <echo message="Solaris" /> diff --git a/make/build-nativewindow.xml b/make/build-nativewindow.xml index fa1dfe696..e583d05a6 100644 --- a/make/build-nativewindow.xml +++ b/make/build-nativewindow.xml @@ -490,8 +490,6 @@ <!-- linker configuration --> <linker id="linker.cfg.linux.nativewindow.x11" extends="linker.cfg.linux"> - <syslibset dir="/usr/X11R6/lib" libs="X11"/> - <syslibset dir="/usr/X11R6/lib" libs="Xxf86vm" /> </linker> <linker id="linker.cfg.linux.amd64.nativewindow.x11" extends="linker.cfg.linux.amd64"> diff --git a/make/build-newt.xml b/make/build-newt.xml index fc8bd1f00..31a23172a 100644 --- a/make/build-newt.xml +++ b/make/build-newt.xml @@ -135,7 +135,7 @@ value="com/sun/javafx/newt/macosx/*"/> <property name="java.part.opengl" - value="com/sun/javafx/newt/opengl/*, com/sun/javafx/newt/opengl/kd/*"/> + value="com/sun/javafx/newt/opengl/*, com/sun/javafx/newt/opengl/egl/*, com/sun/javafx/newt/opengl/kd/*"/> <property name="java.part.awt" value="com/sun/javafx/newt/awt/*"/> @@ -365,8 +365,6 @@ <!-- linker configuration --> <linker id="linker.cfg.linux.newt.x11" extends="linker.cfg.linux"> - <syslibset dir="/usr/X11R6/lib" libs="X11"/> - <syslibset dir="/usr/X11R6/lib" libs="Xxf86vm" /> </linker> <linker id="linker.cfg.linux.amd64.newt.x11" extends="linker.cfg.linux.amd64"> diff --git a/make/config/jogl/eglext.cfg b/make/config/jogl/eglext.cfg index bdd9a3655..0447dd1e4 100755 --- a/make/config/jogl/eglext.cfg +++ b/make/config/jogl/eglext.cfg @@ -124,3 +124,6 @@ Ignore eglTerminate Ignore eglWaitClient Ignore eglWaitGL Ignore eglWaitNative + +Ignore EGLUtil_CreateDisplayByNative +Ignore EGLUtil_CreateWindowByNative diff --git a/make/stub_includes/egl/EGL/egl.h b/make/stub_includes/egl/EGL/egl.h index 86ca4818f..5b4c4215c 100755 --- a/make/stub_includes/egl/EGL/egl.h +++ b/make/stub_includes/egl/EGL/egl.h @@ -297,6 +297,11 @@ EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffers(EGLDisplay dpy, EGLSurface surface) EGLAPI EGLBoolean EGLAPIENTRY eglCopyBuffers(EGLDisplay dpy, EGLSurface surface, EGLNativePixmapType target); +EGLAPI EGLDisplay EGLAPIENTRY EGLUtil_CreateDisplayByNative(EGLint w, EGLint h); + +EGLAPI EGLSurface EGLAPIENTRY EGLUtil_CreateWindowByNative(EGLDisplay dpy, EGLint xx, + EGLint *wvalue, EGLint *hvalue); + typedef void (* EGLAPIENTRY __EGLFuncPtr)(void); EGLAPI __EGLFuncPtr eglGetProcAddress(const char *procname); diff --git a/src/nativewindow/classes/javax/media/nativewindow/NativeWindowFactory.java b/src/nativewindow/classes/javax/media/nativewindow/NativeWindowFactory.java index cbd485649..fd6eb458e 100644 --- a/src/nativewindow/classes/javax/media/nativewindow/NativeWindowFactory.java +++ b/src/nativewindow/classes/javax/media/nativewindow/NativeWindowFactory.java @@ -80,7 +80,7 @@ public abstract class NativeWindowFactory { } private static String _getNativeWindowingType(String osNameLowerCase) { - if (osNameLowerCase.startsWith("kd")) { + if (osNameLowerCase.startsWith("kd") || osNameLowerCase.startsWith("linux")) { return TYPE_EGL; } else if (osNameLowerCase.startsWith("wind")) { return TYPE_WINDOWS; @@ -101,6 +101,8 @@ public abstract class NativeWindowFactory { AccessControlContext acc = AccessController.getContext(); nativeOSNamePure = Debug.getProperty("os.name", false, acc); nativeOSNameCustom = Debug.getProperty("nativewindow.ws.name", true, acc); + System.out.println(nativeOSNamePure); + System.out.println(nativeOSNameCustom); if(null==nativeOSNameCustom||nativeOSNameCustom.length()==0) { nativeOSNameCustom = nativeOSNamePure; } diff --git a/src/newt/classes/com/sun/javafx/newt/Display.java b/src/newt/classes/com/sun/javafx/newt/Display.java index 5032477c9..bdac08dab 100755 --- a/src/newt/classes/com/sun/javafx/newt/Display.java +++ b/src/newt/classes/com/sun/javafx/newt/Display.java @@ -45,7 +45,8 @@ public abstract class Display implements Runnable { { Class displayClass = null; if (NativeWindowFactory.TYPE_EGL.equals(type)) { - displayClass = Class.forName("com.sun.javafx.newt.opengl.kd.KDDisplay"); + // displayClass = Class.forName("com.sun.javafx.newt.opengl.kd.KDDisplay"); + displayClass = Class.forName("com.sun.javafx.newt.opengl.egl.EGLDisplay"); } else if (NativeWindowFactory.TYPE_WINDOWS.equals(type)) { displayClass = Class.forName("com.sun.javafx.newt.windows.WindowsDisplay"); } else if (NativeWindowFactory.TYPE_MACOSX.equals(type)) { diff --git a/src/newt/classes/com/sun/javafx/newt/NewtFactory.java b/src/newt/classes/com/sun/javafx/newt/NewtFactory.java index b5a555455..b88e1e49e 100755 --- a/src/newt/classes/com/sun/javafx/newt/NewtFactory.java +++ b/src/newt/classes/com/sun/javafx/newt/NewtFactory.java @@ -50,6 +50,7 @@ public abstract class NewtFactory { * Create a Display entity, incl native creation */ public static Display createDisplay(String name) { + System.out.println("NewtFactory: NAME: " + name); return Display.create(NativeWindowFactory.getNativeWindowType(true), name); } @@ -57,6 +58,8 @@ public abstract class NewtFactory { * Create a Display entity using the given implementation type, incl native creation */ public static Display createDisplay(String type, String name) { + System.out.println("NewtFactory: TYPE: " + type); + System.out.println("NewtFactory: NAME: " + name); return Display.create(type, name); } diff --git a/src/newt/classes/com/sun/javafx/newt/opengl/egl/EGLDisplay.java b/src/newt/classes/com/sun/javafx/newt/opengl/egl/EGLDisplay.java new file mode 100644 index 000000000..bebb7ccf2 --- /dev/null +++ b/src/newt/classes/com/sun/javafx/newt/opengl/egl/EGLDisplay.java @@ -0,0 +1,85 @@ +/* + * Copyright (c) 2008 Sun Microsystems, Inc. All Rights Reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * - Redistribution of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * - Redistribution in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * Neither the name of Sun Microsystems, Inc. or the names of + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * This software is provided "AS IS," without a warranty of any kind. ALL + * EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, + * INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A + * PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN + * MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL NOT BE LIABLE FOR + * ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR + * DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN OR + * ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR + * DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE + * DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, + * ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN IF + * SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + * + */ + +package com.sun.javafx.newt.opengl.egl; + +import com.sun.javafx.newt.*; +import com.sun.javafx.newt.impl.*; +import com.sun.opengl.impl.egl.*; +import javax.media.nativewindow.*; +import javax.media.nativewindow.egl.*; + +public class EGLDisplay extends Display { + + static { + NativeLibLoader.loadNEWT(); + + System.loadLibrary("EglUtil"); + } + + public static void initSingleton() { + // just exist to ensure static init has been run + } + + + public EGLDisplay() { + } + + protected void createNative() { + try { + int windowWidth = 1920, windowHeight = 1080; + int width[] = { windowWidth }; + int height[] = { windowHeight }; + long eglDisplayHandle = + EGL.EGLUtil_CreateDisplayByNative(windowWidth, windowHeight); + long eglSurfaceHandle = + EGL.EGLUtil_CreateWindowByNative(eglDisplayHandle, 1, + width, 0, height, 0); + } catch (Throwable th) { + th.printStackTrace(); + } + } + + protected void closeNative() { + if (aDevice.getHandle() != EGL.EGL_NO_DISPLAY) { + EGL.eglTerminate(aDevice.getHandle()); + } + } + + protected void dispatchMessages() { + DispatchMessages(); + } + + private native void DispatchMessages(); +} + |