[
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 A Guide to This Documentation
1.5 Feature List
1.6 Where to Get Crystal Space
1.7 Mailing Lists
1.8 Internet Relay Chat (IRC)
1.9 Feedback and Bug Reporting
1.10 Genesis of Crystal Space
1.11 Documentation Authors & Contributors
1.12 Crystal Space Contributors
1.13 GNU Library General Public License
1.14 Parts of CS covered under different licenses
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.2 Windows using Microsoft Visual C++
2.4.2.1 Microsoft Visual C++ 6
2.4.2.2 Microsoft Visual C++ 7
2.4.3 Windows using MinGW
2.4.4 Windows using Cygwin
2.4.5 MacOS/X
2.4.5.1 Library Prerequisites
2.4.5.2 Resources
2.4.5.3 Building
2.4.5.4 Using Crystal Space
2.5 Platform Specific Problems
2.6 Quick Start
3. Configuring Crystal Space
3.1 Common Command Line Options
3.2 Configuration File
3.3 Configuration Domains
3.4 Specific Options
3.4.1 System Configuration
3.4.2 Graphics Configuration
3.4.3 Engine Configuration
3.4.4 Sound Configuration
3.4.5 Console Configuration
3.4.6 Mouse Configuration
4. Applications
4.1 Quick Overview
4.2 Walktest
4.2.1 Getting Started
4.2.2 Mouse Movement
4.2.3 Command Line options
4.2.4 Console Commands
4.2.4.1 General Commands
4.2.4.2 Movement Commands
4.2.4.3 Special Effects
4.2.4.4 Recording and Playback Commands
4.2.4.5 Views Commands
4.2.4.6 Mesh Manipulation Commands
4.2.4.7 Lighting Commands
4.2.4.8 Statistics Commands
4.2.4.9 Debugging Commands
4.2.5 Special Keys
4.2.6 Configuration Files
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 Quake Model Converter (
mdl2spr
)
5. Tutorials and HOWTO's
5.1 Developing a Crystal Space Application
5.1.1 Basic Crystal Space Concepts
5.1.2 Minimum Application Requirements
5.1.3 Compiling the Application
5.2 Simple Tutorial 1
5.2.1 Simple Header File
5.2.2 Event Handling
5.2.3 Creating a "World"
5.2.4 The Camera
5.2.5 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
md32spr
Tutorial
5.7 WinCVS Tutorial
5.7.1 Step 1: Getting the Software
5.7.2 Step 2: Installing the Software
5.7.3 Step 3: Creating a Home Directory
5.7.4 Step 4: Setting WinCVS Preferences
5.7.5 Step 5: Setting Location to Checkout Crystal Space
5.7.6 Step 6: Checking out Crystal Space
5.7.7 Step 7: Updating Crystal Space
5.8 HOWTO
5.8.1 Correctly Using Smart Pointers
5.8.2 Doing Collision Detection
5.8.3 Mesh Lighting and Animation
5.8.4 Mesh Movement
5.8.5 Creating a Thing Mesh
5.8.6 Creating a Genmesh Mesh
5.8.7 Camera Movement
5.8.8 Clicking on Objects
5.8.9 Pseudo-dynamic Lights
5.8.10 Loading a Level
5.8.11 Loading Images for Pixmaps
5.8.12 Render Priorities and Objects in Sectors
5.8.13 Attaching User Objects to CS Objects
5.8.14 Attaching User Objects to CS Objects in a map file
5.8.15 Creating an External Crystal Space Application
5.8.16 Creating an External MSVC 6 Application
5.8.17 Creating an External MSVC 7 Application
5.8.18 Creating an External Application using KDevelop
5.8.19 Setting the CRYSTAL environment variable
5.8.20 Create Your Own Plugin
5.8.21 Simple Map Example
5.8.22 Using a Custom Font
5.8.23 Recording Movies
5.8.24 Using Procedural Textures
6. Libraries
6.1 Utility Library (
csUtil
)
6.1.1
csObject
6.1.2 Typed Arrays
6.2 Shared Class Facility (SCF)
6.2.1 How it Works
6.2.2 Using SCF
6.2.3 Classes Implementing Multiple Interfaces
6.2.4 Interface Versions
6.2.5 Client Side
6.2.6 Plugin Meta-Information
6.2.7 Meta-Information Embedding
6.2.8 Plugin Discovery
6.2.9 Example
6.2.10 Advanced Techniques
6.3 Geometry Library (
csGeom
)
6.4 Crystal Space Windowing System (CSWS)
6.4.1 Concepts
6.4.2 Components
6.4.3 Events
6.4.4 Clipping
6.4.5 Quick Tutorial
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.5.1 EN Socket
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 Visibility Cullers
7.6.7.3 Entities
7.6.7.4 Sector Structure
7.6.7.5 Visibility Culling
7.6.7.6 View Frustum Culling
7.6.7.7 Portal/Sector Visibility
7.6.7.8 In-sector Visibility
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.6.11 Level of Detail
7.6.12 Sequence Manager
7.7 The Map File Parser (
csParser
)
7.8 Format of Map File (XML)
7.8.1 Initalization Section
7.8.2 World Element Section
7.8.3 World Definition Section
7.8.4 Action Section
7.8.5 Old Format of Map File
7.8.5.1 Grammar
7.8.5.2 Syntax
7.8.5.3 Hints
7.9 Mesh Object Plug-In System
7.9.1 MeshObject Concepts
7.9.2 Using Mesh Objects
7.9.3 Writing Mesh Objects
7.9.4 Sprite2D Mesh Object
7.9.5 Sprite3D Mesh Object
7.9.6 Genmesh Mesh Object
7.9.7 Ball Mesh Object
7.9.8 Emitter Mesh Object
7.9.9 Particle Systems in General
7.9.10 Fountain Mesh Object
7.9.11 Fire Mesh Object
7.9.12 Snow Mesh Object
7.9.13 Rain Mesh Object
7.9.14 Explosion Mesh Object
7.9.15 Spiral Mesh Object
7.9.16 Haze Mesh Object
7.9.17 Terrain Mesh Object
7.9.18 Thing Mesh Object
7.10 Scripting Languages
7.10.1 The iScript Interface
7.10.2 Python Bindings
7.10.3 Perl Bindings
7.11 Animation
7.11.1 Introduction
7.11.2 Sprite Actions
7.11.3 The Sprite Action Interface
7.11.4 Moving On
7.12 Importing Model Files
7.12.1 Common Model Data Structure (
iModelData
)
7.13 Alternate Windowing System (AWS)
7.13.1 Quick Start
7.13.2 Signals: Responding To User Input
7.13.3 Creating Custom AWS Components
7.13.3.1 Parameter Delivery
7.13.3.2 Events: Responding To User Actions
7.13.3.3 Sending and Receiving Signals
7.13.4 AWS Standard Sink Trigger Reference
7.13.5 AWS Standard Component Signal and Action Reference
7.13.5.1 All Components
7.13.5.2 Command Button
7.13.5.3 Label
7.13.5.4 Check Box
7.13.5.5 Radio Button
7.13.5.6 Group Frame
7.13.5.7 List Box
7.13.5.8 Scrollbar
7.13.5.9 Textbox
7.13.5.10 Image View
7.13.5.11 Multiline Edit
7.13.5.12 Notebook
7.13.5.13 Notebook Page
7.13.5.14 Bar Chart
7.13.6 In-Depth Explanation of AWS Architecture
7.13.7 Using QT Designer To Create AWS Definition Files
8. Internal Project Structure
8.1 Platform-Specific Details
8.1.1 MacOS/X
8.1.1.1 Contents
8.1.1.2 Run-Loop
8.1.1.3 Cocoa Video Optimization
8.1.1.4 Cocoa Frame Buffer
8.1.1.5 Dynamic Linking
8.2 Makefile How-To
8.2.1 Overall Structure
8.2.2 Variable Naming Conventions
8.2.3 Output Directory
8.3 Threads in Crystal Space
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 Platform
A. Glossary
B. Frequently Asked Questions (FAQ)
C. Release Notes
C.1 Release Notes from 0.96 to 0.98
C.2 Release Notes from 0.94 to 0.96
C.3 Release Notes from 0.92 to 0.94
C.4 Release Notes from 0.90 to 0.92
C.5 Release Notes from 0.18 to 0.90
C.6 Release Notes from 0.17 to 0.18
C.7 Release Notes from 0.16 to 0.17
Index
This document was generated using
texi2html