Crystal Space 2.0.0: 2.1 Directory Hierarchy

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

## 2.1 Directory Hierarchy

This section is intended to explain the general CS directory structure. Crystal Space consists of the following directories:

`CS`

  The main directory for Crystal Space. You can choose any path for it, as long as it is supported by your operating system. If you choose to build the project within this directory, then this is where the built applications and plugin modules are deposited. The file `‘vfs.cfg’` also resides in this directory.

`CS/out`

  This directory is used by the build process if you build the project using “make” or “jam” within the source tree. It is also possible—indeed recommended—to build the project in some other location. This directory will contain all object files, static link libraries, and other generated files needed for building the project.

`CS/apps`

  Contains the source code for applications shipped with Crystal Space. See section Applications Overview.

  `CS/apps/tests`

    Applications for testing specific features of the project reside here.

  `CS/apps/tutorial`

    Various tutorial applications can be found here.

`CS/bin`

  Miscellaneous scripts used by the project maintainers.

`CS/data`

  Location of data files and maps distributed with Crystal Space.

  `CS/data/config-apps`

    Configuration (`‘.cfg’`) files for applications in Crystal Space.

  `CS/data/config-plugins`

    Configuration (`‘.cfg’`) files for plugins in Crystal Space.

  `CS/data/renderlayers`

    Description of the render layers of the render managers that are available within Crystal Space.

  `CS/data/shader`

    This important directory contains shaders and other related information which is used by the Crystal Space engine.

    This directory contains the shaders that are defined using the shader weaver, by combining shader snippets.

  `CS/data/shader-snippets`

    This directory contains the snippets that are combined by the shader weaver, in order to create more complex shaders.

  `CS/data/shader-old`

    This directory contains the shaders that do not use the shader weaver.

`CS/docs`

  The root of the Crystal Space documentation hierarchy. There are several subdirectories.

  `CS/docs/texinfo`

    Texinfo is the master format for all Crystal Space documentation. This directory and its subdirectories contain all of the Texinfo source and images which comprise the Crystal Space manual. Most users need not concern themselves with this directory since the Texinfo documentation is automatically converted to HTML which is more accessible to the general user. Documentation writers and maintainers, however, may be interested in this directory.

  `CS/docs/html/manual`

    This directory contains the HTML conversion of the Texinfo Crystal Space manual. Most users will want to browse the file `‘CS/docs/html/manual/index.html’`.

  `CS/docs/html/api`

    This directory contains the Crystal Space SDK's public API reference manual. Most users will want to browse the file `‘CS/docs/html/api/index.html’`.

  `CS/docs/support`

    This directory contains support scripts and templates for automatically generating documentation.

`CS/include`

  These are the public Crystal Space header files. These headers will be installed as part of the SDK when you invoke `‘make install’` or `‘jam install’`.

`CS/libs`

  Here is where the utility-like modules reside which you can link into your applications or plugins. There are relatively few such libraries since most of Crystal Space's functionality is provided in the form of plugin modules.

  `CS/libs/csgeom`

    The geometry module. Various geometry related functions and classes can be found here: matrices, vectors, transforms, clipper, planes, etc.

  `CS/libs/csgfx`

    The graphics module. Here you will find bumpmapping, mipmapping, quantizers, and routines to support loading an image file (through the various image loading plug-ins).

  `CS/libs/cstool`

    This module contains high-level utility functions which rely upon the other modules, and possibly upon plugin modules. It is possible to write programs without utilizing this module, but it does provide several convenience classes for common cases and is, therefore, quite valuable.

  `CS/libs/csutil`

    This module contains various low-level utilities. The utilities include an archiver, configuration manager, virtual clock, scheduler, strings, hash tables, SCF (see section Shared Class Facility (SCF)), MD5 algorithm, command-line parser, event structures, and many others.

    `CS/libs/csutil/generic`

      Generic implementations of possibly platform-specific functionality.

    `CS/libs/csutil/macosx`

      MacOS/X-specific functionality.

    `CS/libs/csutil/unix`

      Unix-specific functionality.

    `CS/libs/csutil/win32`

      Windows-specific functionality.

  `CS/libs/csplugincommon`

    A collection of convenience modules which eliminate much of the drudgery associated with implementing SCF interfaces in certain types of common plugin modules. For example, the `‘csGraphics2D’` class in `‘csplugincommon/canvas’` implements the `‘iGraphics2D’` interface and provides much of the functionality common to most canvases. Likewise, the `‘csGraphics3D’` class in `‘csplugincommon/render3d’` implements the `‘iGraphics3D’` interface and provides much functionality common to renderers. You are not required to utilize these implementations when authoring your own plugins, but they are available for your convenience and may prove to be handy time-savers.

    `CS/libs/csplugincommon/canvas`

      Common canvas functionality.

    `CS/libs/csplugincommon/directx`

      Common Direct-X functionality.

    `CS/libs/csplugincommon/imageloader`

      Common image loader functionality.

    `CS/libs/csplugincommon/macosx`

      Common MacOS/X functionality.

    `CS/libs/csplugincommon/opengl`

      Common OpenGL functionality.

    `CS/libs/csplugincommon/particlesys`

      Common particle system functionality.

    `CS/libs/csplugincommon/render3d`

      Common renderer functionality.

    `CS/libs/csplugincommon/renderstep`

      Common render-loop functionality.

    `CS/libs/csplugincommon/shader`

      Common shader functionality.

    `CS/libs/csplugincommon/soundloader`

      Common sound loader functionality.

    `CS/libs/csplugincommon/soundrenderer`

      Common sound renderer functionality.

    `CS/libs/csplugincommon/win32`

      Common Microsoft Windows functionality.

`CS/mk`

  This directory contains support facilities for the configuration and build systems.

  `CS/mk/autoconf`

    Handy Autoconf utility macros which may be of use to external projects based upon Crystal space.

  `CS/mk/jam`

    Handy Jam rules which may be of use to external projects based upon Crystal Space.

  `CS/mk/msvcgen`

    Component for automatic generation of Visual C++ project files based upon information gleaned from Jamfiles project-wide.

  `CS/mk/msvc`

    Project files for Microsoft Windows using MSVC 6.0 and 7.0.

`CS/plugins`

  Dynamically loaded plug-ins. Communication with these modules is performed strictly via SCF interfaces. See section Shared Class Facility (SCF).

  `CS/plugins/utilities/bugplug`

    Crystal Space debugger.

  `CS/plugins/collide`

    Collision detection plugins.

    `CS/plugins/collide/opcode`

      This is the Opcode collision detection plugin which is based upon the Opcode library.

  `CS/plugins/console`

    Various console plugins for input/output. A console is often overlaid atop the 3D display.

  `CS/plugins/cscript`

    The Crystal Script plugins. Crystal Script plugins allow programmers to interact with the Crystal Space engine via a scripting language.

    `CS/plugins/cscript/csjava`

      Java interface.

    `CS/plugins/cscript/csperl5`

      Perl5 interface.

    `CS/plugins/cscript/cspython`

      Python interface.

  `CS/plugins/csparser`

    A plugin which parses structured map files and imports the map into the 3D engine. The standard map file format is XML, however the parser can parse any structured document which can be represented by an `‘iDocument’` interface.

    `CS/plugins/csparser/services`

      Crystal Space format loader services.

  `CS/plugins/culling`

    Visibility culling plug-ins.

    `CS/plugins/culling/dynavis`

      Dynavis visibility culling system.

    `CS/plugins/culling/frustvis`

      Frustvis visibility culling system (default culler if no other is selected).

  `CS/plugins/device`

    Hardware device plugins.

    `CS/plugins/device/joystick`

      Joystick support.

  `CS/plugins/engine`

    The 3D engine which drives Crystal Space.

    `CS/plugins/engine/3d`

      The 3D engine plugin.

  `CS/plugins/filesys`

    Filesystem-related plugins.

    `CS/plugins/filesys/vfs`

      Virtual filesystem, VFS. See section Virtual File System (VFS).

  `CS/plugins/font`

    Collection of font servers.

    `CS/plugins/font/server/csfont`

      Standard (bitmapped) Crystal Space font server.

    `CS/plugins/font/server/freefont`

      FreeType (version 2) font server.

    `CS/plugins/font/server/fontplex`

      Font server multiplexer.

  `CS/plugins/mesh`

    Various mesh object implementations (see section Mesh Object Plug-In System). For every mesh object there is typically one implementation in `‘object/’` and one or more loader/saver plugins in `‘persist/’`. `‘persist/standard/’` is the loader in Crystal Space format.

  `CS/plugins/physics`

    Plug-ins relating to the physics of motion.

    `CS/plugins/physics/odedynam`

      ODE dynamics.

    `CS/plugins/physics/bullet`

      Bullet physics.

  `CS/plugins/reporter`

    Reporter.

  `CS/plugins/sequence`

    This is the sequence manager which is useful for managing timed sequences of events such as for demos.

  `CS/plugins/sndsys`

    All sound-related plugins (see section Sound System).

  `CS/plugins/stdrep`

    Standard reporter listener.

  `CS/plugins/video`

    All rendering- and graphics-related plugins.

    `CS/plugins/video/canvas`

      The 2D driver component which manages creation of the Crystal Space window used for rendering and also supports limited 2D drawing capabilities (including 2D pixmaps).

      `CS/plugins/video/canvas/common`

        Common code for 2D drivers.

      `CS/plugins/video/canvas/macosx`

        MacOS/X OpenGL graphics driver.

      `CS/plugins/video/canvas/null2d`

        A do-nothing 2D canvas.

      `CS/plugins/video/canvas/openglwin`

        OpenGL 2D driver for Windows.

      `CS/plugins/video/canvas/openglx`

        OpenGL 2D driver for X11.

      `CS/plugins/video/canvas/xextf86vm`

        X-extension driver (X11).

      `CS/plugins/video/canvas/xwindow`

        X-window X11 driver.

    `CS/plugins/video/loader`

      Loaders for various graphics file formats.

    `CS/plugins/video/renderer`

      The 3D rasterizer component is required by the 3D engine but may also be used in a standalone environment. It requires a 2D canvas.

      `CS/plugins/video/renderer/common`

        Common code for 3D rasterizers.

      `CS/plugins/video/renderer/null`

        A do-nothing renderer (required when working only with 2D graphics).

      `CS/plugins/video/renderer/opengl`

        OpenGL renderer.

`CS/scripts`

  This directory contains scripts that are used for several different purposes: exporting data from 3D editors, creating skeleton of projects based on Crystal Space, packaging Crystal Space, or using the script bindings of the API.

  `CS/scripts/blender`

    Export script for the “Blender” 3D modeling editor.

  `CS/scripts/cs-config`

    Generation of the `‘cs-config’` configuration tool that can be used to detect the presence of Crystal Space on a given system.

  `CS/scripts/glextgen`

    Generation of the OpenGL extensions.

  `CS/scripts/jamtemplate`

    Generation of the skeleton of a project based on Crystal Space and using the “jam” build system.

  `CS/scripts/java`

    Example of an application written using the Java bindings (although these are currently no more supported...).

  `CS/scripts/maketemplate`

    Generation of the skeleton of a project based on Crystal Space and using the “make” build system.

  `CS/scripts/max`

    Export script for the “3ds Max” 3D modeling editor.

  `CS/scripts/maya`

    Export script for the “Maya” 3D modeling editor.

  `CS/scripts/packaging`

    Generation of packages for the distribution of Crystal Space.

  `CS/scripts/perl5`

    Example of an application written using the Perl bindings (although these are currently no more supported...).

  `CS/scripts/python`

    Tools for the generation of the Python bindings, along with application examples using those bindings.

  `CS/scripts/xml`

    XML schema of the Crystal Space map file format. This is unfortunately mostly obsolete...

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

This document was generated using texi2html 1.76.