From: <eli...@us...> - 2008-04-30 14:34:59
|
Revision: 3054 http://java-game-lib.svn.sourceforge.net/java-game-lib/?rev=3054&view=rev Author: elias_naur Date: 2008-04-30 07:34:54 -0700 (Wed, 30 Apr 2008) Log Message: ----------- Moved Sys.JNI_VERSION to SysImplementation.getRequiredJNIVersion() to enable platform specific native library versions. Modified Paths: -------------- trunk/LWJGL/src/java/org/lwjgl/LinuxSysImplementation.java trunk/LWJGL/src/java/org/lwjgl/MacOSXSysImplementation.java trunk/LWJGL/src/java/org/lwjgl/Sys.java trunk/LWJGL/src/java/org/lwjgl/SysImplementation.java trunk/LWJGL/src/java/org/lwjgl/WindowsSysImplementation.java Modified: trunk/LWJGL/src/java/org/lwjgl/LinuxSysImplementation.java =================================================================== --- trunk/LWJGL/src/java/org/lwjgl/LinuxSysImplementation.java 2008-04-30 13:47:26 UTC (rev 3053) +++ trunk/LWJGL/src/java/org/lwjgl/LinuxSysImplementation.java 2008-04-30 14:34:54 UTC (rev 3054) @@ -38,11 +38,15 @@ * @version $Revision$ * $Id$ */ -class LinuxSysImplementation extends J2SESysImplementation { +final class LinuxSysImplementation extends J2SESysImplementation { static { java.awt.Toolkit.getDefaultToolkit(); // This will make sure libjawt.so is loaded } + public int getRequiredJNIVersion() { + return 16; + } + public boolean openURL(final String url) { // Linux may as well resort to pure Java hackery, as there's no Linux native way of doing it // right anyway. Modified: trunk/LWJGL/src/java/org/lwjgl/MacOSXSysImplementation.java =================================================================== --- trunk/LWJGL/src/java/org/lwjgl/MacOSXSysImplementation.java 2008-04-30 13:47:26 UTC (rev 3053) +++ trunk/LWJGL/src/java/org/lwjgl/MacOSXSysImplementation.java 2008-04-30 14:34:54 UTC (rev 3054) @@ -44,12 +44,16 @@ * @version $Revision$ * $Id$ */ -class MacOSXSysImplementation extends J2SESysImplementation { +final class MacOSXSysImplementation extends J2SESysImplementation { static { // Make sure AWT is properly initialized. This avoids hangs on Mac OS X 10.3 Toolkit.getDefaultToolkit(); } + public int getRequiredJNIVersion() { + return 16; + } + public boolean openURL(String url) { try { FileManager.openURL(url); Modified: trunk/LWJGL/src/java/org/lwjgl/Sys.java =================================================================== --- trunk/LWJGL/src/java/org/lwjgl/Sys.java 2008-04-30 13:47:26 UTC (rev 3053) +++ trunk/LWJGL/src/java/org/lwjgl/Sys.java 2008-04-30 14:34:54 UTC (rev 3054) @@ -56,9 +56,6 @@ /** Current version of library */ private static final String VERSION = "2.0b1"; - /** Current version of the JNI library */ - static final int JNI_VERSION = 16; - /** The implementation instance to delegate platform specific behavior to */ private final static SysImplementation implementation; @@ -101,8 +98,9 @@ loadLibrary(JNI_LIBRARY_NAME); int native_jni_version = implementation.getJNIVersion(); - if (native_jni_version != JNI_VERSION) - throw new LinkageError("Version mismatch: jar version is '" + JNI_VERSION + + int required_version = implementation.getRequiredJNIVersion(); + if (native_jni_version != required_version) + throw new LinkageError("Version mismatch: jar version is '" + required_version + "', native libary version is '" + native_jni_version + "'"); implementation.setDebug(LWJGLUtil.DEBUG); } @@ -112,9 +110,9 @@ case LWJGLUtil.PLATFORM_LINUX: return new LinuxSysImplementation(); case LWJGLUtil.PLATFORM_WINDOWS: - return new org.lwjgl.WindowsSysImplementation(); + return new WindowsSysImplementation(); case LWJGLUtil.PLATFORM_MACOSX: - return new org.lwjgl.MacOSXSysImplementation(); + return new MacOSXSysImplementation(); default: throw new IllegalStateException("Unsupported platform"); } Modified: trunk/LWJGL/src/java/org/lwjgl/SysImplementation.java =================================================================== --- trunk/LWJGL/src/java/org/lwjgl/SysImplementation.java 2008-04-30 13:47:26 UTC (rev 3053) +++ trunk/LWJGL/src/java/org/lwjgl/SysImplementation.java 2008-04-30 14:34:54 UTC (rev 3054) @@ -42,6 +42,11 @@ */ interface SysImplementation { /** + * Return the required version of the native library + */ + int getRequiredJNIVersion(); + + /** * Return the version of the native library */ int getJNIVersion(); Modified: trunk/LWJGL/src/java/org/lwjgl/WindowsSysImplementation.java =================================================================== --- trunk/LWJGL/src/java/org/lwjgl/WindowsSysImplementation.java 2008-04-30 13:47:26 UTC (rev 3053) +++ trunk/LWJGL/src/java/org/lwjgl/WindowsSysImplementation.java 2008-04-30 14:34:54 UTC (rev 3054) @@ -38,11 +38,15 @@ * @version $Revision$ * $Id$ */ -class WindowsSysImplementation extends DefaultSysImplementation { +final class WindowsSysImplementation extends DefaultSysImplementation { static { Sys.initialize(); } + public int getRequiredJNIVersion() { + return 16; + } + public long getTimerResolution() { return 1000; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |