[ < ] [ > ]   [ << ] [ 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 which ship with Crystal Space. See section 4. Applications.

CS/apps/tests
Applications for testing specific features of the project reside 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
May applications and plugins utilize a (`.cfg') file. For convenience they are grouped here.

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 link libraries reside. 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 library. Various geometry related functions and classes can be found here: matrices, vectors, transforms, clipper, planes, etc.

CS/libs/csgfx
The graphics library. 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 library contains high-level utility functions which rely upon the other libraries, and possibly upon plugin modules. It is possible to write programs without utilizing this library, but it does provide several convenience classes for common cases and is, therefore, quite valuable.

CS/libs/csutil
This library contains various low-level utilities. The utilities include an archiver, configuration manager, virtual clock, scheduler, strings, hash tables, SCF (see section 6.2 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/csws
The Crystal Space Windowing System which is platform-independent and works within a Crystal Space window. This library is deprecated, unmaintained, and no longer developed. Instead, use AWS. See section 7.11 Alternate Windowing System (AWS).

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 Win32 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 6.2 Shared Class Facility (SCF).

CS/plugin/aws
Alternate Windowing System.

CS/plugins/bugplug
Crystal Space debugger.

CS/plugins/collide
Collision detection plugins.

CS/plugins/collide/rapid
This is the RAPID collision detection plugin.

CS/plugins/collide/opcode
This is the Opcode collision detection plugin which is based upon the Opcode library. This plugin is generally much faster then RAPID and also uses less memory.

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 7.2 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 7.7 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/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/sound
Audio plugins.

CS/plugins/sound/driver
Platform-specific sound drivers.

CS/plugins/sound/driver/coreaudio
CoreAudio sound driver (MacOS/X).
CS/plugins/sound/driver/oss
Open Sound System (OSS) sound driver (UNIX).
CS/plugins/sound/driver/waveoutsd
WaveOut sound driver (Windows).

CS/plugins/sound/loader
Loaders for various sound file formats.

CS/plugins/sound/renderer
Platform- or facility-specific sound renderers.

CS/plugins/sound/renderer/common
Common sound rendering utility functions.

CS/plugins/sound/renderer/ds3d
DirectSound 3D sound renderer.

CS/plugins/sound/renderer/openal
OpenAL sound renderer.

CS/plugins/sound/renderer/software
Software sound renderer.

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/asciiart
ASCII Art driver.

CS/plugins/video/canvas/common
Common code for 2D drivers.

CS/plugins/video/canvas/ddraw
Windows DirectDraw driver.

CS/plugins/video/canvas/directxcommon
Common DirectX (Win32) code.

CS/plugins/video/canvas/macosx
MacOS/X OpenGL and CoreGraphics graphics drivers.

CS/plugins/video/canvas/memory
Memory driver (render a scene directly to memory).

CS/plugins/video/canvas/null2d
A do-nothing 2D canvas.

CS/plugins/video/canvas/openglcommon
Common code for all OpenGL 2D drivers.

CS/plugins/video/canvas/openglwin
OpenGL 2D driver for Windows.

CS/plugins/video/canvas/openglx
OpenGL 2D driver for X11.

CS/plugins/video/canvas/softx
X11 software 2D driver.

CS/plugins/video/canvas/xextf86vm
X-extension driver (X11).

CS/plugins/video/canvas/xextshm
MIT X-extension shared memory driver (X11).

CS/plugins/video/canvas/xwindow
X-windows X11 driver.

CS/plugins/video/format
Code for playing video files on a surface.

CS/plugins/video/format/avi
Audio-Video Interlace format.

CS/plugins/video/format/codecs
Video codecs for various formats (currently only AVI).

codecs/divx4
DivX version 4.

codecs/opendivx
OpenDivX.

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/plugins/video/renderer/software
Software (non-accelerated) renderer.

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

This document was generated using texi2html