Panda3D
Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
PandaSystem Class Reference

This class is used as a namespace to group several global properties of Panda. More...

Public Member Functions

 addSystem (str system)
 Intended for use by each subsystem to register itself at startup. More...
 
int getNumSystems ()
 Returns the number of Panda subsystems that have registered themselves. More...
 
str getSystem (int n)
 Returns the nth Panda subsystem that has registered itself. More...
 
list getSystems ()
 
str getSystemTag (str system, str tag)
 Returns the value associated with the indicated tag for the given system. More...
 
bool hasSystem (str system)
 Returns true if the current version of Panda claims to have the indicated subsystem installed, false otherwise. More...
 
bool heapTrim (int pad)
 Attempts to release memory back to the system, if possible. More...
 
 output (Ostream out)
 
 setSystemTag (str system, str tag, str value)
 Intended for use by each subsystem to register its set of capabilities at startup. More...
 
 write (Ostream out)
 

Static Public Member Functions

static str getBuildDate ()
 Returns a string representing the date and time at which this version of Panda (or at least dtool) was compiled, if available. More...
 
static TypeHandle getClassType ()
 
static str getCompiler ()
 Returns a string representing the compiler that was used to generate this version of Panda, if it is available, or "unknown" if it is not. More...
 
static str getDistributor ()
 Returns the string defined by the distributor of this version of Panda, or "homebuilt" if this version was built directly from the sources by the end- user. More...
 
static str getGitCommit ()
 Returns a string representing the git commit hash that this source tree is based on, or the empty string if it has not been specified at build time. More...
 
static PandaSystem getGlobalPtr ()
 Returns the global PandaSystem object. More...
 
static int getMajorVersion ()
 Returns the major version number of the current version of Panda. More...
 
static int getMemoryAlignment ()
 Returns the memory alignment that Panda's allocators are using. More...
 
static int getMinorVersion ()
 Returns the minor version number of the current version of Panda. More...
 
static str getP3dCoreapiVersionString ()
 Returns the current version of Panda's Core API, expressed as a string of dot-delimited integers. More...
 
static str getPackageHostUrl ()
 Returns the URL of the download server that provides the Panda3D distributable package currently running. More...
 
static str getPackageVersionString ()
 Returns the version of the Panda3D distributable package that provides this build of Panda. More...
 
static str getPlatform ()
 Returns a string representing the runtime platform that we are currently running on. More...
 
static int getSequenceVersion ()
 Returns the sequence version number of the current version of Panda. More...
 
static str getVersionString ()
 Returns the current version of Panda, expressed as a string, e.g. More...
 
static bool isOfficialVersion ()
 Returns true if current version of Panda claims to be an "official" version, that is, one that was compiled by an official distributor of Panda using a specific version of the panda source tree. More...
 

Public Attributes

String build_date
 Returns a string representing the date and time at which this version of Panda (or at least dtool) was compiled, if available. More...
 
String compiler
 Returns a string representing the compiler that was used to generate this version of Panda, if it is available, or "unknown" if it is not. More...
 
String distributor
 Returns the string defined by the distributor of this version of Panda, or "homebuilt" if this version was built directly from the sources by the end- user. More...
 
String git_commit
 Returns a string representing the git commit hash that this source tree is based on, or the empty string if it has not been specified at build time. More...
 
int major_version
 Returns the major version number of the current version of Panda. More...
 
int memory_alignment
 Returns the memory alignment that Panda's allocators are using. More...
 
int minor_version
 Returns the minor version number of the current version of Panda. More...
 
bool official_version
 Returns true if current version of Panda claims to be an "official" version, that is, one that was compiled by an official distributor of Panda using a specific version of the panda source tree. More...
 
String platform
 Returns a string representing the runtime platform that we are currently running on. More...
 
int sequence_version
 Returns the sequence version number of the current version of Panda. More...
 
String systems []
 
String version_string
 Returns the current version of Panda, expressed as a string, e.g. More...
 

Detailed Description

This class is used as a namespace to group several global properties of Panda.

Application developers can use this class to query the runtime version or capabilities of the current Panda environment.

Member Function Documentation

◆ addSystem()

addSystem ( str  system)

Intended for use by each subsystem to register itself at startup.

◆ getBuildDate()

static str getBuildDate ( )
static

Returns a string representing the date and time at which this version of Panda (or at least dtool) was compiled, if available.

◆ getClassType()

static TypeHandle getClassType ( )
static

◆ getCompiler()

static str getCompiler ( )
static

Returns a string representing the compiler that was used to generate this version of Panda, if it is available, or "unknown" if it is not.

◆ getDistributor()

static str getDistributor ( )
static

Returns the string defined by the distributor of this version of Panda, or "homebuilt" if this version was built directly from the sources by the end- user.

This is a completely arbitrary string.

◆ getGitCommit()

static str getGitCommit ( )
static

Returns a string representing the git commit hash that this source tree is based on, or the empty string if it has not been specified at build time.

◆ getGlobalPtr()

static PandaSystem getGlobalPtr ( )
static

Returns the global PandaSystem object.

◆ getMajorVersion()

static int getMajorVersion ( )
static

Returns the major version number of the current version of Panda.

This is the first number of the dotted triple returned by get_version_string(). It changes very rarely.

◆ getMemoryAlignment()

static int getMemoryAlignment ( )
static

Returns the memory alignment that Panda's allocators are using.

◆ getMinorVersion()

static int getMinorVersion ( )
static

Returns the minor version number of the current version of Panda.

This is the second number of the dotted triple returned by get_version_string(). It changes with each release that introduces new features.

◆ getNumSystems()

int getNumSystems ( )

Returns the number of Panda subsystems that have registered themselves.

This can be used with get_system() to iterate through the entire list of available Panda subsystems.

◆ getP3dCoreapiVersionString()

static str getP3dCoreapiVersionString ( )
static

Returns the current version of Panda's Core API, expressed as a string of dot-delimited integers.

There are usually four integers in this version, but this is not guaranteed.

The Core API is used during the runtime (plugin) environment only. This may be the empty string if the current version of Panda is not built to provide a particular Core API, which will be the normal case in a development SDK. However, you should not use this method to determine whether you are running in a runtime environment or not.

◆ getPackageHostUrl()

static str getPackageHostUrl ( )
static

Returns the URL of the download server that provides the Panda3D distributable package currently running.

This can be used, along with the get_package_version_string(), to uniquely identify the running version of Panda among distributable Panda versions.

See get_package_version_string() for more information.

This string is set explicitly at compilation time. Normally, it should be set to a nonempty string only when building a Panda3D package for distribution.

◆ getPackageVersionString()

static str getPackageVersionString ( )
static

Returns the version of the Panda3D distributable package that provides this build of Panda.

When the currently-executing version of Panda was loaded from a distributable package, such as via the browser plugin, then this string will be nonempty and will contain the corresponding version string. You can build applications that use this particular version of Panda by requesting it in the pdef file, using "panda3d", this version string, and the download host provided by get_package_host_url().

If this string is empty, then the currently-executing Panda was built independently, and is not part of a distributable package.

This string is set explicitly at compilation time. Normally, it should be set to a nonempty string only when building a Panda3D package for distribution.

◆ getPlatform()

static str getPlatform ( )
static

Returns a string representing the runtime platform that we are currently running on.

This will be something like "win32" or "osx_i386" or "linux_amd64".

◆ getSequenceVersion()

static int getSequenceVersion ( )
static

Returns the sequence version number of the current version of Panda.

This is the third number of the dotted triple returned by get_version_string(). It changes with bugfix updates and very minor feature updates.

◆ getSystem()

str getSystem ( int  n)

Returns the nth Panda subsystem that has registered itself.

This list will be sorted in alphabetical order.

◆ getSystems()

list getSystems ( )

◆ getSystemTag()

str getSystemTag ( str  system,
str  tag 
)

Returns the value associated with the indicated tag for the given system.

This provides a standard way to query each subsystem's advertised capabilities. The set of tags and values are per-system and implementation-defined.

The return value is the empty string if the indicated system is undefined or if does not define the indicated tag.

◆ getVersionString()

static str getVersionString ( )
static

Returns the current version of Panda, expressed as a string, e.g.

"1.0.0". The string will end in the letter "c" if this build does not represent an official version.

◆ hasSystem()

bool hasSystem ( str  system)

Returns true if the current version of Panda claims to have the indicated subsystem installed, false otherwise.

The set of available subsystems is implementation defined.

◆ heapTrim()

bool heapTrim ( int  pad)

Attempts to release memory back to the system, if possible.

The pad argument is the minimum amount of unused memory to keep in the heap (against future allocations). Any memory above that may be released to the system, reducing the memory size of this process. There is no guarantee that any memory may be released.

Returns true if any memory was actually released, false otherwise.

◆ isOfficialVersion()

static bool isOfficialVersion ( )
static

Returns true if current version of Panda claims to be an "official" version, that is, one that was compiled by an official distributor of Panda using a specific version of the panda source tree.

If this is true, there will not be a "c" at the end of the version string returned by get_version_string().

Note that we must take the distributor's word for it here.

◆ output()

output ( Ostream  out)

◆ setSystemTag()

setSystemTag ( str  system,
str  tag,
str  value 
)

Intended for use by each subsystem to register its set of capabilities at startup.

◆ write()

write ( Ostream  out)

Member Data Documentation

◆ build_date

String build_date

Returns a string representing the date and time at which this version of Panda (or at least dtool) was compiled, if available.

◆ compiler

String compiler

Returns a string representing the compiler that was used to generate this version of Panda, if it is available, or "unknown" if it is not.

◆ distributor

String distributor

Returns the string defined by the distributor of this version of Panda, or "homebuilt" if this version was built directly from the sources by the end- user.

This is a completely arbitrary string.

◆ git_commit

String git_commit

Returns a string representing the git commit hash that this source tree is based on, or the empty string if it has not been specified at build time.

◆ major_version

int major_version

Returns the major version number of the current version of Panda.

This is the first number of the dotted triple returned by get_version_string(). It changes very rarely.

◆ memory_alignment

int memory_alignment

Returns the memory alignment that Panda's allocators are using.

◆ minor_version

int minor_version

Returns the minor version number of the current version of Panda.

This is the second number of the dotted triple returned by get_version_string(). It changes with each release that introduces new features.

◆ official_version

bool official_version

Returns true if current version of Panda claims to be an "official" version, that is, one that was compiled by an official distributor of Panda using a specific version of the panda source tree.

If this is true, there will not be a "c" at the end of the version string returned by get_version_string().

Note that we must take the distributor's word for it here.

◆ platform

String platform

Returns a string representing the runtime platform that we are currently running on.

This will be something like "win32" or "osx_i386" or "linux_amd64".

◆ sequence_version

int sequence_version

Returns the sequence version number of the current version of Panda.

This is the third number of the dotted triple returned by get_version_string(). It changes with bugfix updates and very minor feature updates.

◆ systems

String systems[]

◆ version_string

String version_string

Returns the current version of Panda, expressed as a string, e.g.

"1.0.0". The string will end in the letter "c" if this build does not represent an official version.