Class Platform

java.lang.Object
jogamp.common.os.PlatformPropsImpl
com.jogamp.common.os.Platform

public class Platform extends jogamp.common.os.PlatformPropsImpl
Utility class for querying platform specific properties.

Some field declarations and it's static initialization has been delegated to it's super class PlatformPropsImpl to solve static initialization interdependencies w/ the GlueGen native library loading and it's derived information getMachineDataInfo(), is32Bit(), ..
This mechanism is preferred in this case to avoid synchronization and locking and allow better performance accessing the mentioned fields/methods.

  • Field Details

    • USE_TEMP_JAR_CACHE

      public static final boolean USE_TEMP_JAR_CACHE
      System property: 'jogamp.gluegen.UseTempJarCache', defaults to true if PlatformPropsImpl.OS_TYPE is not Platform.OSType.ANDROID.
    • AWT_AVAILABLE

      public static final boolean AWT_AVAILABLE
      true if AWT is available and not in headless mode, otherwise false.
  • Method Details

    • isRunningFromJarURL

      public static final boolean isRunningFromJarURL()
      Returns:
      true if we're running from a Jar URL, otherwise false
    • initSingleton

      public static void initSingleton()
      kick off static initialization of platform property information and native gluegen2-rt lib loading
    • isLittleEndian

      public static boolean isLittleEndian()
      Returns true if this machine is little endian, otherwise false.
    • getOSName

      public static String getOSName()
      Returns the OS name.

      In case of Platform.OSType.ANDROID, see getOSType(), the OS name is Linux

    • getOSVersion

      public static String getOSVersion()
      Returns the OS version.
    • getOSVersionNumber

      public static VersionNumber getOSVersionNumber()
      Returns the OS version number.
    • getArchName

      public static String getArchName()
      Returns the CPU architecture String.
    • getOSType

      public static Platform.OSType getOSType()
      Returns the OS type.

      In case of Platform.OSType.ANDROID the OS name, is Linux

    • getCPUFamily

      public static Platform.CPUFamily getCPUFamily()
      Returns the CPU family.
    • getCPUType

      public static Platform.CPUType getCPUType()
      Returns the CPU architecture type.
    • is32Bit

      public static boolean is32Bit()
      Returns true if this JVM/ARCH is 32bit.

      Shortcut to getCPUType().is32Bit

    • is64Bit

      public static boolean is64Bit()
      Returns true if this JVM/ARCH is 64bit.

      Shortcut to !getCPUType().is32Bit

    • getABIType

      public static Platform.ABIType getABIType()
      Returns the ABI type.

      In case of Platform.CPUFamily.ARM, the value is determined by parsing the Elf Headers of the running VM.

      Otherwise the value is Platform.ABIType.GENERIC_ABI.

    • getOSAndArch

      public static String getOSAndArch()
      Returns the GlueGen common name for the currently running OSType and CPUType as implemented in the build system in 'gluegen-cpptasks-base.xml'.
      See Also:
      • #getOSAndArch(OSType, CPUType)
    • getJavaVendor

      public static String getJavaVendor()
      Returns the JAVA vendor.
    • getJavaVMName

      public static String getJavaVMName()
      Returns the JAVA VM name.
    • getJavaRuntimeName

      public static String getJavaRuntimeName()
      Returns the JAVA runtime name.
    • getJavaVendorURL

      public static String getJavaVendorURL()
      Returns the JAVA vendor url.
    • getJavaVersion

      public static String getJavaVersion()
      Returns the JAVA version.
    • getJavaVersionNumber

      public static VersionNumber getJavaVersionNumber()
      Returns the JAVA version number.
    • getNewline

      public static String getNewline()
      Returns the platform's line separator.
    • getMachineDataInfo

      public static MachineDataInfo getMachineDataInfo()
      Returns the MachineDataInfo of the running machine.
    • isAWTAvailable

      public static boolean isAWTAvailable()
      Returns true if AWT is available and not in headless mode, otherwise false.
    • currentTimeMillis

      public static long currentTimeMillis()
      Returns the unix based current time in milliseconds, based on gettimeofday(..).

      This is an alternative to System.currentTimeMillis() and System.nanoTime(). While the named System methods do provide the required precision, gettimeofday() also guarantees time accuracy, i.e. update interval.

      See Also:
    • currentTimeMicros

      public static long currentTimeMicros()
      Returns the unix based current time in microseconds, based on gettimeofday(..).

      This is an alternative to System.currentTimeMillis() and System.nanoTime(). While the named System methods do provide the required precision, gettimeofday() also guarantees time accuracy, i.e. update interval.

      See Also:
    • getCurrentSleepJitter

      public static long getCurrentSleepJitter()
      Returns the estimated sleep jitter value in nanoseconds.

      Includes a warm-up path, allowing hotspot to optimize the code.