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

C.2 API Changes from 0.94 to 0.96

This section documents the major changes between versions 0.94 and 0.96 of of Crystal Space.

iPolygonMesh changes

The header for iPolygonMesh has moved from `include/ivaria' to `include/igeom'.

iMeshObject changes

The following functions have been removed. Instead there is now a new routine called iMeshObject::GetObjectModel() which will return an instance of iObjectModel. The functions can be called from that instance.

A similar change has happened in the iVisibilityObject interface.

XML

The map format has changed to XML. Use the `cs2xml' tool to convert old maps like this (with a real path to a zip file):

 
  cs2xml data/oldlevel.zip

or (with a VFS path):

 
  cs2xml /this/mydata/sprite1

csGetObject and csGetCommand

The old parser is gone. We switched to XML.

Fast SCF Interfaces

The following macros have been removed:

Fast interfaces are now default. Just use the normal query versions instead of the ones above.

Internal SCF changes

For Interfaces the scfGetID_Interfacename and the VERSION_Interfacename have been renamed to Interfacename_scfGetID and Interfacename_VERSION for making namespaces working nicely with them.

make Targets

Some targets for the make process (all applications, some plugins) have changed. In general, the name of a target is now the same as the name of the resulting binary (without suffix). For example, `walktest' is now built with `make -k walktest' instead of `make -k walk'. However, the composite target names have not been changed. To build `walktest' and all required plugins, one still invokes `make -k walkall'.

Ref count changes

The iLoader::LoadSound() that returns an iSoundWrapper now returns a pointer that is increffed (one ref count more compared to before).

iTextureManager changes

The following methods have moved:

The following methods were removed:

Procedural Textures

The procedural texture system has been rewritten. See the documentation for iGraphics3D::SetRenderTarget() for details.

Hardmove Change

The interpretation of the matrix used in the `hardmove' tag for mesh factories (`meshfact') has been inverted so it is more logical and also corresponds with the wah `hardmove' is interpreted for mesh objects (`meshobj').

Octree Removal

The old octree culler is now completely gone. Instead you should use Dynavis now. If you still have an old level that uses this culler then you can try to convert it using the `levtool' utility but this is only a temporary measure. It is a lot better to design the level with Dynavis in mind. To convert an old level do this:

 
  levtool -dynavis old_level.zip

Note that the statements `culler' and `vistree' are no longer supported in world files. The loader will give an error if it finds them.

Typed Vectors

All the macro versions of the growing arrays and vectors have been removed and replaced with corresponding templated arrays (see section 6.3 Utility Library (csUtil)).

i.e. the following macros are gone: CS_DECLARE_TYPED_VECTOR, CS_DECLARE_OBJECT_VECTOR, CS_DECLARE_GROWING_ARRAY, and all derivatives.


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

This document was generated using texi2html