[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ] [ Search: ]

4.5.4.1 System Configuration

This section describes how the base system can be configured via a configuration file. The default values are stored in ‘CS/data/config/system.cfg’, except the list of default SCF classes to instantiate, for which no default exists. Typically, the list of default requested classes will appear in an application's own configuration file.

List of SCF Classes

The most important part of the system configuration is the list of SCF classes to instantiate by default. A class is instantiated with the following line:

 
System.Plugins.InterfaceName = ClassName

‘System.Plugins.’ is obligatory and tells the system to instantiate the class at startup. The ‘InterfaceName’ specifies the name of the abstract SCF interface which this module is expected to implement. For example the interface name ‘iGraphics3D’ means that this plug-in is used for 3D rendering. Note that it is not possible to load more than one module with the same functionality identifier.

Finally, ‘ClassName’ determines which SCF class to instantiate. The class you mention here must be designed for the purpose for which you try to use it. In other words, it must implement the interface specified with ‘InterfaceName’ (it may also implement additional interfaces). For example, if you load a sound driver with the ‘iGraphics3D’, the application will not be able to instantiate the driver because it does not implement that interface.

Note that some modules depend on others. If module A depends on module B, then you must first load B, then A. If you don't do this then module A will usually fail to initialize.

Here is an example of a line from the configuration file:

 
System.Plugins.iGraphics3D = crystalspace.graphics3d.opengl

This line instantiates the SCF class ‘crystalspace.graphics3d.opengl’ (the OpenGL graphics driver) which implements the abstract ‘iGraphics3D’ interface, and makes the instantiated object available via shared object registry.

The interface name mentioned above is exactly the name of the C++ abstract interface which modules implement. Some of the common ones which you will see or use in configuration files are listed below.

iVFS

The virtual file system. Presently, there is only one VFS implementation, and it is named ‘crystalspace.kernel.vfs’. See section Virtual File System (VFS).

iGraphics3D

A 3D renderer. Some possible values include

crystalspace.graphics3d.opengl

Uses OpenGL for 3D output, and by this takes advantage of hardware acceleration. Requires installed OpenGL run-time libraries.

crystalspace.graphics3d.null

A null renderer useful for servers.

iBugPlug

A useful debugging plugin. Can also show frames per second. There is only one implementation and it is named ‘crystalspace.utilities.bugplug’. See section Using the BugPlug Debugging Plugin.

Other Low-Level Configuration Options

Apart from the list of plug-in modules, the following keys are recognized:

System.UserConfig = true

Specifies whether or not user-specific configuration information should be used and maintained. See Config PerUser.

System.MinimumElapsedTicks = 0

This option controls the minimum elapsed ticks that the default runloop will use every frame. By default this is set to 0 which means that there is no minimum but if you (for example) set this to 20 then this means that framerate will be limited to 50 fps maximum since every frame will take at least 20 milliseconds. Using this setting can relieve some load from the cpu.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

This document was generated using texi2html 1.76.