[
Top
]
[
Contents
]
[
Index
]
[
?
]
Table of Contents
1. Introduction
1.1 How To Read This Manual
1.2 Current Status
1.3 Using Crystal Space For Your Project
1.4 Feature List
1.5 Where to Get Crystal Space
1.6 Mailing Lists
1.7 Internet Relay Chat (IRC)
1.8 Feedback and Bug Reporting
1.9 Genesis of Crystal Space
1.10 Documentation Authors & Contributors
1.11 Crystal Space Contributors
1.12 GNU Library General Public License
2. Building and Installing
2.1 Directory Hierarchy
2.2 Requirements
2.3 External Libraries
2.4 Platform Specific Instructions
2.4.1 Unix
2.4.1.1 Editing the Makefile
2.4.1.2 Compiling on Unix
2.4.1.3 Compiling with other 3D and 2D Drivers
2.4.1.4 Where are the Object Files?
2.4.2 Windows using Microsoft Visual C++
2.4.2.1 Microsoft Visual C++ 5
2.4.2.2 Microsoft Visual C++ 6
2.4.3 Windows using MinGW
2.4.4 MacOS/X, MacOS/X Server 1.0, OpenStep, NextStep
2.4.4.1 GNU make
2.4.4.2 Packages
2.4.4.3 Architectures
2.4.4.4 Library Prerequisites
2.4.4.5 Building
2.4.4.6 Using Crystal Space
2.4.5 MacOS/9
2.4.6 OS/2
2.4.7 BeOS
2.4.7.1 Building
2.4.7.2 Running the Applications
2.4.7.3 Final Notes
2.4.8 MS-DOS - Using DJGPP Compiler
2.5 Platform Specific Problems
2.6 Quick Start
3. Configuring Crystal Space
3.1 Common Command Line Options
3.2 Configuration File
3.2.1 System Configuration
3.2.2 Graphics Configuration
3.2.3 Engine Configuration
3.2.4 Sound Configuration
3.2.5 Console Configuration
4. Applications
4.1 Quick Overview
4.2 Walktest
4.2.1 Keyboard Interface
4.2.2 The Console
4.2.2.1 General commands
4.2.2.2 Boolean Commands
4.2.2.3 Value Commands
4.2.2.4 Multi-Choice Commands
4.2.3 Configuration File
4.3 Quake Map Converter (
map2cs
)
4.3.1 Reference for `
map2cs.cfg
'
4.3.2 Classnames and Keys
4.3.3 Invoking
4.3.4 Game-Specific Data
4.4 Squawk
4.5 Quake Model Converter (
mdl2spr
)
5. Tutorials
5.1 Developing a Crystal Space Application
5.2 Simple Tutorial 1
5.2.1 Basic Crystal Space Concepts
5.2.2 Minimum Application Requirements
5.2.3 Simple Header File
5.2.4 Event Handling
5.2.5 Creating a "World"
5.2.6 The Camera
5.2.7 Locomotion (Moving Around)
5.3 Simple Tutorial 2: Sprites
5.3.1 Loading a Material in Memory
5.3.2 Loading a Mesh Factory in Memory
5.3.3 Creating a Mesh from a Factory
5.4 Simple Tutorial 3: Map Loading
5.4.1 Minimal Base Code
5.4.2 Loading The Map
5.4.3 Locating the Camera
5.5
map2cs
Tutorial
5.5.1 Step 1: Links to Required Tools and Data
5.5.2 Step 2: Configuring Worldcraft
5.5.3 Step 3: Configuring `
map2cs
'
5.5.4 Step 4: Creating a Simple Room in Worldcraft
5.5.5 Step 5: Compiling the Room and Testing It
5.5.6 Step 6: Applying Textures
5.5.7 Step 7: Adding Another Room
5.5.8 Step 8: Adding More Detail
5.5.9 Step 9: Adding Manual Sectors
5.5.10 Generating Skybox Textures
5.5.11 Tips for Map Creation
5.6 WinCVS Tutorial
5.6.1 Step 1: Getting the Software
5.6.2 Step 2: Installing the Software
5.6.3 Step 3: Creating a Home Directory
5.6.4 Step 4: Setting WinCVS Preferences
5.6.5 Step 5: Setting Location to Checkout Crystal Space
5.6.6 Step 6: Checking out Crystal Space
5.6.7 Step 7: Updating Crystal Space
5.7 HOWTO
5.7.1 Doing Collision Detection
5.7.2 Mesh Lighting and Animation
5.7.3 Mesh Movement
5.7.4 Camera Movement
5.7.5 Pseudo-dynamic Lights
5.7.6 Loading a Level
5.7.7 Loading Images for Pixmaps
5.7.8 Render Priorities and Objects in Sectors
5.7.9 Creating an External Crystal Space Application
5.7.10 Creating an External MSVC Application
6. Libraries
6.1 Quick Overview
6.2 System Library (
csSys
)
6.3 Utility Library (
csUtil
)
6.3.1
csObject
6.4 Shared Class Facility (SCF)
6.4.1 How it Works
6.4.2 Using SCF
6.4.3 Classes Implementing Multiple Interfaces
6.4.4 Interface Versions
6.4.5 Client Side
6.4.6 Example
6.4.7 Advanced Techniques
6.5 Geometry Library (
csGeom
)
6.6 Crystal Space Windowing System (CSWS)
6.6.1 Concepts
6.6.2 Components
6.6.3 Events
6.6.4 Clipping
6.6.5 Quick Tutorial
6.7 csPhyziks Library (
csphyzik
)
6.7.1 Physical World
6.7.2 Bodies
6.7.3 Forces
6.7.4 Articulated Bodies
6.7.5 Impulses
6.7.6 Solvers
6.7.7 Catastrophes
6.7.8 ODE Solvers
6.7.9 Usage Guide
7. Plug-In Modules and Drivers
7.1 Quick Overview
7.2 Virtual File System (VFS)
7.2.1 Details
7.2.2 Configuration File (`
vfs.cfg
')
7.3 Graphics Drivers
7.3.1 Procedural Texture System
7.4 Sound Drivers
7.5 Network Drivers
7.6 The 3D Engine (
csEngine
)
7.6.1 Components of a World
7.6.2 Portal Engine
7.6.3 Lighting
7.6.4 Cameras and Matrices
7.6.5 Space Warping
7.6.6 Texture Mapping
7.6.6.1 Conventions
7.6.6.2 General Concepts
7.6.6.3 Perspective Correction
7.6.6.4 Bringing it All Together
7.6.6.5 Instructions for Texture Mapper
7.6.6.6 Procedural, Dynamic and Animated Textures
7.6.7 Visibility Culling In Detail
7.6.7.1 Sectors and Portals
7.6.7.2 Entities
7.6.7.3 Sector Structure
7.6.7.4 Visibility Culling
7.6.7.5 View Frustum Culling
7.6.7.6 Portal/Sector Visibility
7.6.7.7 In-Sector Visibility
7.6.7.8 Potentially Visible Set (PVS)
7.6.8 Rendering Loop
7.6.9 3D Sprites
7.6.9.1 A Simple 3D Sprite
7.6.9.2 Texturing
7.6.9.3 Shading
7.6.10 Dynamic Worlds
7.7 The Map File Parser (
csParser
)
7.7.1 Format of Map File
7.7.1.1 Grammar
7.7.1.2 Syntax
7.7.1.3 Hints
7.8 Mesh Object Plug-In System
7.8.1 MeshObject Concepts
7.8.2 Using Mesh Objects
7.8.3 Writing Mesh Objects
7.8.4 Sprite2D Mesh Object
7.8.5 Sprite3D Mesh Object
7.8.6 Ball Mesh Object
7.8.7 Cube Mesh Object
7.8.8 Emitter Mesh Object
7.8.9 Particle Systems in General
7.8.10 Fountain Mesh Object
7.8.11 Fire Mesh Object
7.8.12 Snow Mesh Object
7.8.13 Rain Mesh Object
7.8.14 Explosion Mesh Object
7.8.15 Spiral Mesh Object
7.8.16 Haze Mesh Object
7.8.17 Terrain Mesh Object
7.8.18 Thing Mesh Object
7.8.19 Metaball Mesh Object
7.9 csPython
7.10 Animation
7.10.1 Introduction
7.10.2 Sprite Actions
7.10.3 The Sprite Action Interface
7.10.4 Moving On
7.11 Importing Model Files
7.11.1 Common Model Data Structure (
iModelData
)
8. Internal Project Structure
8.1 Platform-Specific Details
8.1.1 MacOS/X, MacOS/X Server 1.0, OpenStep, NextStep
8.1.1.1 Directories
8.1.1.2 Files
8.1.1.3 Run-Loop
8.1.1.4 Video Optimization
8.1.1.5 Frame Buffer
8.1.1.6 Dynamic Linking
8.1.1.7 Key Mapping
8.1.1.8 Final Notes
8.1.2 OS/2
8.1.2.1 DIVE
8.1.2.2 DIVE Features
8.1.2.3 Mouse and Keyboard
8.1.2.4 Mysterious Crashes
8.2 Dependencies
8.3 Makefile How-To
8.3.1 Overall Structure
8.3.2 Variable Naming Conventions
8.3.3 Output Directory
8.4 Crystal Space Memory Debugger
8.4.1 Usage
8.4.2 Map File Format
8.4.3 How It Works
9. Contributing to Crystal Space
9.1 Writing Documentation
9.2 Portability
9.3 Coding Style
9.4 CVS Etiquette Guidelines
9.5 Porting to a New Platorm
A. Glossary
B. Frequently Asked Questions (FAQ)
C. Significant API Changes
C.1 API Changes from 0.18 to 0.90
C.2 API Changes from 0.17 to 0.18
C.3 API Changes from 0.16 to 0.17
Index
This document was generated using
texi2html