Contents |
CEL Notes
iPcDefaultCamera
This Camera supports various camera-modes and will hide the entitie it is attached to in first-person-mode!
ipcinput
The available keycodes are listed here: csInputDefinition Doc
Crystalspace Notes
Note for FGLRX Users
CS has some issues with the "Catalyst A.I." Option from the Catalyst-Control-Center. Disabling this option fixed some graphics glitches for me.
Segmentation Faults in glextmanager.cpp with EXTMGR_FUNC_INIT Macro
If your CS segfaults in glextmanager.cpp inside the EXTMGR_FUNC_INIT Macro your build could be incomplete. A clean rebuild should solve the problem.
xmldoc system
This is a draft of a small parser which should generate nice looking and easy to use documentation about xml-tags understood by different parts of cs and their params(including descriptions and type) for use as a reference.
Planned Features:
- generate html (+ optionally texinfo) output.
- overview of existing xml-tags, ability to search, show grouped, show as "tree" with parent and child tags.
- Add descriptions to tags, support adding params,their type(string,float), and descriptions for them
Syntax:
- special comments in c++ code, similar to doxygen/javadoc
Example:
Xmltag: <tagname foobar="stringher" bar="inthere">somestring</tagname>
Code:
/*sometoken <tagname>
@param[string] foobar some description here
@param[int] bar another here
@sub subtag1,subtag2
@sup supertag1
@content <parenttag1>
this is the description of the tag itself.
multiline or whatever
sometoken*/
Following @foo commands should be inplemented:
- @param[some_string] name doc : To document params in xml tags
- @sup tag1[,tag2[,...]]: To document one or more Parenttags which use this tag
- @sub tag1[,tag2[,...]]: To document tags used inside this tag
- @content <tag1> or some_string: Describe the content of this tag, e.g. some datatype or a list of other tags
- @group some_string : Add this element to a group of elements
Generating Foliage
To generate foliage crystalspace uses the MeshGenerator "meshgen".
As there is no documentation about its usage yet, here are some of the xml-tags it uses. For more detailed information about its inner workings see the API-Documentation or the according sourcefiles (meshgen.cpp, meshgen.h or csthreadedloader.cpp for <meshgen> Xml-Parsing related things)
- <meshgen >
- The Meshgen root element
- Param name
- the name of the meshgen instance
- <geometry>
- Contains information about the objects which should be created by meshgen
- <positionmap>
- Param mapname
- TODO
- Param(float) value
- TODO
- Param resx
- X-Resolution
- Param resy
- Y-Resolution
- <region>
- TODO
- Vector <min>
- TODO
- Vector <max>
- TODO
- <densitymap>
- This map determines the global obj density. Contains a image (e.g. /foo/densmap.png)
- Param(float) factor
- The influence factor of the densitymap
- <factory>
- Specifies the meshfactory which creates the geometry. Adding more than one factory results in the factorys being interpreted as LOD-levels, so a factory with bigger maxdist will be display in the range from the end of the last maxdist to the end of the maxdist of the factory
- Param name
- The factorys name
- Param(int) maxdist
- The maximum distance from the camera to which this geometry should be created
- <radius>
- Contains the radius around the geometry in which no other objects are placed (very small values creaty overlapping geometrys to be placed
- <density>
- Specifies how many elements should be placed per cell
- <materialfactor>
- Defines the material for the geometry
- Param name
- The materials name
- Param(float) factor
- TODO (i'm not sure yet what these are used for)
- <defaultmaterialfactor>
- Contains the default materialfactor (See plugins/engine/3d/meshgen.h:111: Default material factor. Only used in case the table above is not empty.) (I'm not sure about the _NOT_ empty, too.)
- <windbias>
- Contains a float. The windbias (whatever this is ;)
- <winddirection>
- The winddirection
- Param(float) x
- X-Direction
- Param(float) y
- Y-Direction
- <windspeed>
- Contains a float. The windspeed
2D Painting
Use the iGraphics2D Interface.
Some XML things
One way of parsing xml is using the TOKEN-related macros to define xml-tags you want to parse ( see tokenlist.h) in conjunction with iSyntaxService for the general xml-parsing.
