|
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.
|