C.10 Release Notes from 0.90 to 0.92

This section documents the major changes between versions 0.90 and 0.92 of
Crystal Space.

csInitializer changes

csInitializer::CreateEnvironment() now accepts two additional
parameters: ‘argc’ and ‘argv’.
Consequently csInitializer::SetupKeyboardHandler() has been removed.

iCollideSystem Changes

The iCollideSystem::Collide() function now accepts
‘csReversibleTransform’ transforms instead of just ‘csTransform’.

Texture Manager Changes

The following deregistration functions have been removed. Instead, use the
normal DecRef() mechanism.

iTextureManager::UnregisterTexture()

iTextureManager::UnregisterMaterial()

iRegion

The functions iRegion::Find...() will no longer increase
the reference count of the returned objects.

GetThingState

iEngine::GetThingState() has not been removed but this function
is now deprecated. It is recommended that you get the ‘iMeshObjectType’
for the thing mesh objects the usual way (i.e. by loading the plugin).

iThingState

The following functions were made ‘const’ in ‘iThingState’:

CurveTexel()

CurveVertex()

GetCurveVertices()

GetCurveVertexCount()

GetCurveCount()

GetCurvesScale()

GetMovingOption()

GetPortalCount()

GetPortal()

GetPortalPolygon()

GetVertexCount()

The following methods were renamed in ‘iThingState’:

CurveVertex() => GetCurveVertex()

CurveTexel() => GetCuveTexel()

Added several functions to ‘iThingState’:

FindPolygonIndex()

RemovePolygon()

RemovePolygons()

SetVertex()

DeleteVertex()

DeleteVertices()

SetCurveVertex()

SetCurveTexel()

ClearCurveVertices()

FindCurveIndex()

RemoveCurve()

RemoveCurves()

Isometric Engine

Added iIsoEngine::GetMaterialList() and removed all other
material functions from iIsoEngine except the one to create a material
from a VFS path.

Added iIsoEngine::GetMeshFactories() and removed the following
functions.

AddMeshFactory()

FindMeshFactory()

RemoveMeshFactory()

Terrain Mesh Object

Changed iTerrFuncState::LoadMaterialGroup() so that the first
parameter is now a material list, ‘iMaterialList’, instead of
‘iEngine’.

Loader and Saver Plugins

Changed iLoaderPlugin::Parse() to accept a material list and mesh
factory list (‘iMaterialList’ and ‘iMeshFactoryList’) instead of an
‘iEngine’ instance.

Changed iSaverPlugin::WriteDown() so that it no longer has
the ‘iEngine’ parameter.

iMeshObject and iMeshObjectFactory Changes

Added SetLogicalParent() and GetLogicalParent() to
both ‘iMeshObject’ and ‘iMeshObjectFactory’. This should
be no issue for applications simply using mesh objects but it is an
issue if you made your own mesh object implementation. Also beware
that there have been some changes in the way the parser interact
with the plugin loaders. The plugin loaders are no longer responsible
for setting the factory pointer. The parser will now do that.