File: cs_16.html

package info (click to toggle)
crystalspace 0.94-20020412-3
  • links: PTS
  • area: main
  • in suites: woody
  • size: 62,276 kB
  • ctags: 52,843
  • sloc: cpp: 274,783; ansic: 6,608; perl: 6,276; objc: 3,952; asm: 2,942; python: 2,354; php: 542; pascal: 530; sh: 430; makefile: 370; awk: 193
file content (420 lines) | stat: -rw-r--r-- 15,333 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<!-- Created by texi2html 1.64 -->
<!-- 
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
            Karl Berry  <karl@freefriends.org>
            Olaf Bachmann <obachman@mathematik.uni-kl.de>
            and many others.
Maintained by: Olaf Bachmann <obachman@mathematik.uni-kl.de>
Send bugs and suggestions to <texi2html@mathematik.uni-kl.de>
 
-->
<HTML>
<HEAD>
<TITLE>Crystal Space: Directory Hierarchy</TITLE>

<META NAME="description" CONTENT="Crystal Space: Directory Hierarchy">
<META NAME="keywords" CONTENT="Crystal Space: Directory Hierarchy">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">
<META NAME="Generator" CONTENT="texi2html 1.64">

</HEAD>

<BODY LANG="" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#800080" ALINK="#FF0000">

<A NAME="SEC23"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="cs_15.html#SEC22"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="cs_17.html#SEC24"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="cs_15.html#SEC22"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="cs_15.html#SEC22"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="cs_45.html#SEC119"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="index.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="cs_toc.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="cs_285.html#SEC711">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="cs_abt.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<HR SIZE=1>
<H2> 2.1 Directory Hierarchy </H2>
<!--docid::SEC23::-->
<P>

<EM>Written by Thomas Hieber, <A HREF="mailto:thieber@gmx.net">thieber@gmx.net</A>.</EM>
</P><P>

This section is intended to explain the general CS directory structure. It
lists all the directories, however some may be missing from your copy of 
Crystal Space if you just downloaded the files for a specific port like 
Linux or Win32.
</P><P>

Crystal Space consists of the following directories:
</P><P>

<DL COMPACT>
<DT><CODE>CS</CODE>
<DD>The main directory for Crystal Space.  You can choose any path for it, as long
as it is supported by your operating system.  This is the path that all
compiled programs end up in.  This should be your working directory for these
executables. The two files `<TT>vfs.cfg</TT>' and `<TT>scf.cfg</TT>' also reside in this directory.
<P>

<DT><CODE>CS/apps</CODE>
<DD>This is where all applications which ship with Crystal Space reside.
See section <A HREF="cs_53.html#SEC134">4. Applications</A>.
<P>

<DL COMPACT>
<DT><CODE>CS/apps/tests</CODE>
<DD>Applications for testing specific features of the project reside here.
</DL>
<P>

<DT><CODE>CS/bin</CODE>
<DD>Some scripts to support the build process on various platforms.
<P>

<DT><CODE>CS/data</CODE>
<DD>Here you should place your levels like `<TT>flarge.zip</TT>'. You can use any
directory for this, so this is only a suggestion. If you change the name, you
must update the information in the configuration for the Virtual File System,
(`<TT>vfs.cfg</TT>').
<P>

<DT><CODE>CS/data/config</CODE>
<DD>Most applications and plugins utilise a (`<TT>.cfg</TT>') file. For convenience they
are all grouped here. 
<P>

<DT><CODE>CS/docs</CODE>
<DD>The root of the Crystal Space documentation hierarchy.  There are several
subdirectories.
<P>

<DL COMPACT>
<DT><CODE>CS/docs/texinfo</CODE>
<DD>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 may be interested in this
directory.
<P>

<DT><CODE>CS/docs/html</CODE>
<DD>This directory contains the HTML conversion of the Texinfo Crystal Space
documentation.  Most users will want to look at the `<TT>CS/docs/html/index.htm</TT>'
that resides here.
<P>

<DT><CODE>CS/docs/incoming</CODE>
<DD>This is a temporary staging area for documentation which has not yet been
converted to Texinfo format.  Much of this documentation is useful and worth
perusing.
<P>

<DT><CODE>CS/docs/pubapi</CODE>
<DD>This directory contains the Crystal Space SDK's public API reference manual
rendered in HTML format.
</DL>
<P>

<DT><CODE>CS/include</CODE>
<DD>Here are the headers that can be used from other modules. The path for the
headers reflect the structure of the modules in the `<TT>CS/lib</TT>' directory. So for
further explanation of a specific directory see the `<TT>CS/lib</TT>' section.
Include files which live in this directory itself (i.e. not deeper in the
hierarchy) contain definitions for SCF interfaces.
See section <A HREF="cs_134.html#SEC297">6.4 Shared Class Facility (SCF)</A>.
<P>

<DT><CODE>CS/libs</CODE>
<DD>Here is where all the modules provided by Crystal Space live. Some modules will 
consist of only one subdirectory, others will be a combination of several
subdirectories.
<P>

<DL COMPACT>
<DT><CODE>CS/libs/csengine</CODE>
<DD>The 3D engine is one of the cornerstones of Crystal Space and also what
originally sparked the birth of the Crystal Space project.  It needs the 3D
rasterizer component to display output and also requires a number of other
libraries (csutil, csgeom, csgfxldr).  The 3D engine exports a number of
SCF interfaces to allow access through the SCF mechanism.
<P>

<DL COMPACT>
<DT><CODE>CS/libs/csengine/light</CODE>
<DD>Lighting system
<DT><CODE>CS/libs/csengine/objects</CODE>
<DD>Things and Mesh objects
<DT><CODE>CS/libs/csengine/polygon</CODE>
<DD>Polygon related functionality
</DL>
<P>

<DT><CODE>CS/libs/csgeom</CODE>
<DD>The geometry library.  Various geometry related functions and classes can be
found here: matrices, vectors, transforms, clipper, planes, etc.
<P>

<DT><CODE>CS/libs/csgfx</CODE>
<DD>The graphics library.  Routines to support loading various graphic file
formats (through plugins) and put them internally in the same format.
Through this library you can get at JPG, GIF, TGA, PNG,
and BMP files.
<P>

<DT><CODE>CS/libs/cssys</CODE>
<DD>All system dependent stuff (non-graphics and non-sound related) is in this
library.
<P>

<DL COMPACT>
<DT><CODE>CS/libs/cssys/general</CODE>
<DD>Code which may be shared between system drivers that can make use of it.
<DT><CODE>CS/libs/cssys/be</CODE>
<DD>BeOS
<DT><CODE>CS/libs/cssys/djgpp</CODE>
<DD>DOS using the DJGPP compiler
<DT><CODE>CS/libs/cssys/next</CODE>
<DD>MacOS/X, MacOS/X Server 1.0 (Rhapsody), OpenStep, NextStep
<DT><CODE>CS/libs/cssys/os2</CODE>
<DD>OS/2
<DT><CODE>CS/libs/cssys/unix</CODE>
<DD>Unix, including Linux, Solaris, Irix, etc.
<DT><CODE>CS/libs/cssys/win32</CODE>
<DD>Win32
</DL>
<P>

<DT><CODE>CS/libs/csutil</CODE>
<DD>This library contains various utilities.  There is an Archive class which can
read and/or write ZIP archives.  There is a vector class, a sparse matrix class
and some other useful goodies.  This library requires the use of the external
`<TT>zlib</TT>' library which is used to read/write ZIP archives.
<P>

<DT><CODE>CS/libs/csws</CODE>
<DD>The Crystal Space Window System which is nicely integrated with Crystal Space.
It is also platform independent.
</DL>
<P>

<DT><CODE>CS/mk</CODE>
<DD>This directory contains the common parts of the makefiles for many systems
<P>

<DL COMPACT>
<DT><CODE>CS/mk/msvcgen</CODE>
<DD>Component for automatic generation of Visual C++ project files based upon
information gleaned from GNU makefiles project-wide.
<DT><CODE>CS/mk/visualc</CODE>
<DD>Project files for Win32 using MSVC 5.0/ 6.0
</DL>
<P>

<DT><CODE>CS/plugins</CODE>
<DD>Plug-in, dynamically loaded modules.  Communication with these modules is
performed strictly via SCF interfaces.  See section <A HREF="cs_134.html#SEC297">6.4 Shared Class Facility (SCF)</A>.
<P>

<DT><CODE>CS/plugins/csparser</CODE>
<DD>A plugin which parses ASCII map files and imports the map into the
3D engine.
<P>

<DT><CODE>CS/plugins/video/canvas</CODE>
<DD>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).  It can be used standalone but it is currently very
limited and not very useful (this may change in the future).  There are several
implementations of this component.  All are specific to some 3D Rasterizer
(for example, the OpenGL 3D Rasterizer on Unix requires the OpenGL 2D XLib
Driver).
<P>

<DL COMPACT>
<DT><CODE>CS/plugins/video/canvas/common</CODE>
<DD>Common code for 2D drivers
<DT><CODE>CS/plugins/video/canvas/be</CODE>
<DD>BeOS version
<DT><CODE>CS/plugins/video/canvas/csdive</CODE>
<DD>OS/2 version
<DT><CODE>CS/plugins/video/canvas/ddraw</CODE>
<DD>Win32 using Direct Draw
<DT><CODE>CS/plugins/video/canvas/ddraw61</CODE>
<DD>Win32 using Direct Draw (DirectX 6.1)
<DT><CODE>CS/plugins/video/canvas/dosraw</CODE>
<DD>DOS
<DT><CODE>CS/plugins/video/canvas/ggi</CODE>
<DD>Unix, using GGI
<DT><CODE>CS/plugins/video/canvas/softx</CODE>
<DD>Unix, using X
<DT><CODE>CS/plugins/video/canvas/svgalib</CODE>
<DD>Unix, using SVGAlib
<DT><CODE>CS/plugins/video/canvas/next</CODE>
<DD>MacOS/X, MacOS/X Server, OpenStep, NextStep
<DT><CODE>CS/plugins/video/canvas/openglcommon</CODE>
<DD>Common code for all OpenGL 2D drivers
<DT><CODE>CS/plugins/video/canvas/openglbe</CODE>
<DD>OpenGL 2D driver for BeOS
<DT><CODE>CS/plugins/video/canvas/openglos2</CODE>
<DD>OpenGL 2D driver for OS/2
<DT><CODE>CS/plugins/video/canvas/openglwin</CODE>
<DD>OpenGL 2D driver for Win32
<DT><CODE>CS/plugins/video/canvas/openglx</CODE>
<DD>OpenGL 2D driver for Unix/X Windows
</DL>
<P>

<DT><CODE>CS/plugins/video/renderer</CODE>
<DD>The 3D rasterizer component is required by the 3D engine but may also be
used in a standalone environment.  It requires a 2D Driver to function.  
There are currently several classes of this component which correspond 
to particular APIs: software, OpenGL, and Direct3D.  Some rasterizers 
are operating system independent, such as OpenGL and software.  Some 
rasterizer technology is only available on certain operating systems, 
such as DirectX.
<P>

<DL COMPACT>
<DT><CODE>CS/plugins/video/renderer/common</CODE>
<DD>Common code for 3D rasterizers
<DT><CODE>CS/plugins/video/renderer/direct3d61</CODE>
<DD>Direct3D rasterizer using DirectX 6.1
<DT><CODE>CS/plugins/video/renderer/opengl</CODE>
<DD>3D rasterizer using OpenGL
<DT><CODE>CS/plugins/video/renderer/software</CODE>
<DD>Software based rasterizer
<DT><CODE>CS/plugins/video/renderer/line</CODE>
<DD>A vector based rasterizer (draws only lines)
<DT><CODE>CS/plugins/video/renderer/inf</CODE>
<DD>The <EM>infinite</EM> rasterizer (draws nothing at all)
<DT><CODE>CS/plugins/video/renderer/null</CODE>
<DD>The <EM>null</EM> rasterizer (required to work with 2D graphics only)
</DL>
<P>

<DT><CODE>CS/plugins/video/format</CODE>
<DD>Support for playing video files on a texture.
<P>

<DT><CODE>CS/plugins/net/driver</CODE>
<DD>Network drivers.  The only existing driver is a BSD socket-based
TCP/IP driver.
<P>

<DT><CODE>CS/plugins/cscript/cspython</CODE>
<DD>PYTHON scripting module.
<P>

<DT><CODE>CS/plugins/sequence</CODE>
<DD>This is the sequence manager which is useful for managing timed sequences
of events such as for demos.
<P>

<DT><CODE>CS/plugins/bugplug</CODE>
<DD>BUGPLUG is a small plugin that gives debugging facilities to any
Crystal Space application. Just load the plugin and it works.
<P>

<DT><CODE>CS/plugins/collide/rapid</CODE>
<DD>This is the RAPID collision detection plugin. In the future we may
have other collision detection plugins in the `<TT>CS/plugins/collide</TT>'
directory.
<P>

<DT><CODE>CS/plugins/engine/3d</CODE>
<DD>If you want to use the engine as a plugin then this directory contains
the needed support. Using the engine as a plugin is the perferred method. 
<P>

<DT><CODE>CS/plugins/engine/iso</CODE>
<DD>This is an alternative engine used in Crystal Space. It gives an isometric view
instead of a real 3D view. Mesh objects can also work with this engine
with a few limitations (mostly regarding size).
<P>

<DL COMPACT>
<DT><CODE>CS/plugins/sound/driver</CODE>
<DD>System dependent sound drivers.  There are currently drivers for Macintosh,
OSS (Unix), and Windows.
<P>

<DL COMPACT>
<DT><CODE>CS/plugins/sound/driver/oss</CODE>
<DD>Sound driver for Unix
<DT><CODE>CS/plugins/sound/driver/waveoutsd</CODE>
<DD>Sound driver for Win32
</DL>
<P>

<DT><CODE>CS/plugins/sound/loader</CODE>
<DD>Loaders for various sound file formats.
<DT><CODE>CS/plugins/sound/renderer</CODE>
<DD>Support for 3D sound (DS3D or SOFTWARE only at the moment).
</DL>
<P>

<DL COMPACT>
<DT><CODE>CS/plugins/console</CODE>
<DD>Various console plugins for input/output. A console is typically overlayed
on top of the 3D display.
</DL>
<P>

<DL COMPACT>
<DT><CODE>CS/plugins/mesh</CODE>
<DD>Various mesh object implementations.  See section <A HREF="cs_201.html#SEC452">7.8 Mesh Object Plug-In System</A>.
For every mesh object there is typically one implementation in OBJECT
and one or more loader/saver plugins in PERSIST. PERSIST/CLASSIC
is the loader in Crystal Space format.
</DL>
<P>

<DL COMPACT>
<DT><CODE>CS/plugins/font/server/csfont</CODE>
<DD>Standard Crystal Space font server.
<DT><CODE>CS/plugins/font/server/freefont</CODE>
<DD>Freefont font server.
<DT><CODE>CS/plugins/font/server/fontplex</CODE>
<DD>Font server multiplexer.
</DL>
<P>

<DT><CODE>CS/support</CODE>
<DD>Support routines.
<P>

<DL COMPACT>
<DT><CODE>CS/support/debug</CODE>
<DD>Support routines for extensive memory checking.
<DT><CODE>CS/support/gnu</CODE>
<DD>Replacement for `<TT>bison.simple</TT>', which is missing on some systems.
</DL>
</DL>
<A NAME="Requirements"></A>
<HR SIZE=1>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="cs_15.html#SEC22"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="cs_17.html#SEC24"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="cs_15.html#SEC22"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="cs_15.html#SEC22"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="cs_45.html#SEC119"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="index.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="cs_toc.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="cs_285.html#SEC711">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="cs_abt.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<BR>  
<FONT SIZE="-1">
This document was generated

using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
"><I>texi2html</I></A>

</BODY>
</HTML>