diff options
Diffstat (limited to 'src/java/com/jogamp/gluegen/runtime/Platform.java')
-rw-r--r-- | src/java/com/jogamp/gluegen/runtime/Platform.java | 162 |
1 files changed, 0 insertions, 162 deletions
diff --git a/src/java/com/jogamp/gluegen/runtime/Platform.java b/src/java/com/jogamp/gluegen/runtime/Platform.java deleted file mode 100644 index a621279..0000000 --- a/src/java/com/jogamp/gluegen/runtime/Platform.java +++ /dev/null @@ -1,162 +0,0 @@ -/* - * Copyright (c) 2010, Michael Bien, Sven Gothel - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions 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 Michael Bien nor the - * names of its contributors may be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL Michael Bien BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -/* - * Created on Sunday, March 28 2010 14:43 - */ -package com.jogamp.gluegen.runtime; - -import java.nio.ByteBuffer; -import java.nio.IntBuffer; -import java.nio.ShortBuffer; - -/** - * Utility class for querying platform specific properties. - * @author Michael Bien, Sven Gothel - */ -public class Platform { - - public static final boolean JAVA_SE; - public static final boolean LITTLE_ENDIAN; - - private final static boolean is32Bit; - private final static int pointerSizeInBits; - private final static String os, arch; - - static { - NativeLibrary.ensureNativeLibLoaded(); - - // We don't seem to need an AccessController.doPrivileged() block - // here as these system properties are visible even to unsigned - // applets - os = System.getProperty("os.name"); - arch = System.getProperty("os.arch"); - - pointerSizeInBits = getPointerSizeInBitsImpl(); - - // Try to use Sun's sun.arch.data.model first .. - if ( 32 == pointerSizeInBits || 64 == pointerSizeInBits ) { - is32Bit = ( 32 == pointerSizeInBits ); - }else { - String os_lc = os.toLowerCase(); - String arch_lc = arch.toLowerCase(); - - if ((os_lc.startsWith("windows") && arch_lc.equals("x86")) || - (os_lc.startsWith("windows") && arch_lc.equals("arm")) || - (os_lc.startsWith("linux") && arch_lc.equals("i386")) || - (os_lc.startsWith("linux") && arch_lc.equals("x86")) || - (os_lc.startsWith("mac os_lc") && arch_lc.equals("ppc")) || - (os_lc.startsWith("mac os_lc") && arch_lc.equals("i386")) || - (os_lc.startsWith("darwin") && arch_lc.equals("ppc")) || - (os_lc.startsWith("darwin") && arch_lc.equals("i386")) || - (os_lc.startsWith("sunos_lc") && arch_lc.equals("sparc")) || - (os_lc.startsWith("sunos_lc") && arch_lc.equals("x86")) || - (os_lc.startsWith("freebsd") && arch_lc.equals("i386")) || - (os_lc.startsWith("hp-ux") && arch_lc.equals("pa_risc2.0"))) { - is32Bit = true; - } else if ((os_lc.startsWith("windows") && arch_lc.equals("amd64")) || - (os_lc.startsWith("linux") && arch_lc.equals("amd64")) || - (os_lc.startsWith("linux") && arch_lc.equals("x86_64")) || - (os_lc.startsWith("linux") && arch_lc.equals("ia64")) || - (os_lc.startsWith("mac os_lc") && arch_lc.equals("x86_64")) || - (os_lc.startsWith("darwin") && arch_lc.equals("x86_64")) || - (os_lc.startsWith("sunos_lc") && arch_lc.equals("sparcv9")) || - (os_lc.startsWith("sunos_lc") && arch_lc.equals("amd64"))) { - is32Bit = false; - }else{ - throw new RuntimeException("Please port CPU detection (32/64 bit) to your platform (" + os_lc + "/" + arch_lc + ")"); - } - } - - // fast path - boolean se = System.getProperty("java.runtime.name").indexOf("Java SE") != -1; - - if(!se) { - try{ - Class.forName("java.nio.LongBuffer"); - Class.forName("java.nio.DoubleBuffer"); - se = true; - }catch(ClassNotFoundException ex) { - se = false; - } - } - JAVA_SE = se; - - // byte order - ByteBuffer tst_b = Buffers.newDirectByteBuffer(Buffers.SIZEOF_INT); // 32bit in native order - IntBuffer tst_i = tst_b.asIntBuffer(); - ShortBuffer tst_s = tst_b.asShortBuffer(); - tst_i.put(0, 0x0A0B0C0D); - LITTLE_ENDIAN = 0x0C0D == tst_s.get(0); - } - - private Platform() {} - - private static native int getPointerSizeInBitsImpl(); - - /** - * Returns true only if this program is running on the Java Standard Edition. - */ - public static boolean isJavaSE() { - return JAVA_SE; - } - - /** - * Returns true only if this system uses little endian byte ordering. - */ - public static boolean isLittleEndian() { - return LITTLE_ENDIAN; - } - - /** - * Returns the OS name. - */ - public static String getOS() { - return os; - } - - /** - * Returns the CPU architecture String. - */ - public static String getArch() { - return arch; - } - - /** - * Returns true if this JVM is a 32bit JVM. - */ - public static boolean is32Bit() { - return is32Bit; - } - - public static int getPointerSizeInBits() { - return pointerSizeInBits; - } - -} - - |