package com.jme3.system;

public enum Platform {

    /**
     * Microsoft Windows 32 bit
     */
    Windows32,
    
    /**
     * Microsoft Windows 64 bit
     */
    Windows64,
    
    /**
     * Linux 32 bit
     */
    Linux32,
    
    /**
     * Linux 64 bit
     */
    Linux64,
    
    /**
     * Apple Mac OS X 32 bit
     */
    MacOSX32,
    
    /**
     * Apple Mac OS X 64 bit
     */
    MacOSX64,
    
    /**
     * Apple Mac OS X 32 bit PowerPC
     */
    MacOSX_PPC32,
    
    /**
     * Apple Mac OS X 64 bit PowerPC
     */
    MacOSX_PPC64,
    
    /**
     * Android ARM5
     */
    Android_ARM5,
    
    /**
     * Android ARM6
     */
    Android_ARM6,

    /**
     * Android ARM7
     */
    Android_ARM7,

    /**
     * Android x86
     */
    Android_X86;
    
}