| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
This section documents the major changes between versions 0.96 and 0.98 of of Crystal Space.
The following interfaces have been removed: iPolyTexNone,
iPolyTexGouraud, iPolyTexFlat, and iPolyTexLightMap.
The combined API from iPolyTexNone and the iPolyTexLightMap
have moved to iPolygon3D itself.
iPolygon3D->SetTextureType() and GetTextureType() have been
removed. Instead use:
iPolygon3D->EnableTextureMapping()
iPolygon3D->IsTextureMappingEnabled()
iPolygon3D->GetPolyTexType() has been removed.
The `shading' keyword in polygons now accepts a boolean value instead of `NONE', `FLAT', `GOURAUD', or `LIGHTMAP'. With this you can enable/disable lightmapping.
If you want gouraud shaded polygons you should use the `genmesh' mesh object plugin instead.
The notion of curve templates has been reworked. iCurveTemplate has
been removed and it's functionality has moved to iCurve itself.
As a consequence of this change the bezier addon loader has been removed.
Also curves have been seperated from the thing plugin and now live in the
'bezier' plugin. So a curve like this in the past:
<addon>
<plugin>crystalspace.mesh.loader.thing.bezier</plugin>
<params>
<name>b1</name>
<material>mosaic</material>
<v>0</v> <v>1</v> <v>2</v>
<v>3</v> <v>4</v> <v>5</v>
<v>6</v> <v>7</v> <v>8</v>
</params>
</addon>
<meshfact name="tunnel">
<plugin>crystalspace.mesh.loader.factory.thing</plugin>
<params>
<curvecenter x="0" y="0" z="0" />
<curvescale>80</curvescale>
<curvecontrol x="5" y="2" z="0" u="1" v="0" />
...
<curve name="bez">b1</curve>
</params>
</meshfact>
|
should now become (mark the new plugin line):
<meshfact name="tunnel">
<plugin>crystalspace.mesh.loader.factory.bezier</plugin>
<params>
<curvecenter x="0" y="0" z="0" />
<curvescale>80</curvescale>
<curvecontrol x="5" y="2" z="0" u="1" v="0" />
...
<curve name="b1">
<material>mosaic</material>
<v>0</v> <v>1</v> <v>2</v>
<v>3</v> <v>4</v> <v>5</v>
<v>6</v> <v>7</v> <v>8</v>
</curve>
</params>
</meshfact>
|
On the API side nothing much changes except that when you use
the bezier mesh plugin you need to use iBezierState and
iBezierFactoryState.
The iThingEnvironment no longer has code to maintain bezier curve
templates.
iPolygon3D and iThingState no longer implement iObject.
So the QueryObject() function has been removed. Polygons can still
have names though. Added SetName() and GetName() for that.
iPolygon3D has been split in iPolygon3D and
iPolygon3DStatic. The static version contains all static data that
can be put in a factory. Several functions like
iThingState->CreatePolygon() will now return iPolygon3DStatic.
iThingState has been split in iThingState and
iThingFactoryState. A thing mesh no longer implements both a mesh
object and a mesh object factory. Instead things now work like usual
mesh objects where iMeshObjectType->NewFactory() creates a
factory that implements iThingFactoryState and
iMeshObjectFactory->NewInstance() creates an instance that implements
iThingState. The engine conveniance functions to create a thing
mesh will automatically create both the factory and mesh so you don't
have to worry about that. You can use iThingState->GetFactory()
from a thing mesh object to get the iThingFactoryState so you can
build the polygons. Note that SCF_QUERY_INTERFACE of
iThingFactoryState no longer works on a thing mesh object. You must
use GetFactory.
Polygon planes are removed. So it is no longer possible to use
the plane addon loader to define texture mapping for a polygon outside
of the polygon itself. To fix this you must specify all texture mapping
information in the texmap statement of the polygon. `map2cs'
now correctly outputs polygons like this (no longer outputs planes) and
`levtool' can convert old style maps to new format like this:
iThingEnvironment no longer has code to maintain polygon texture
mapping planes.
The plane loader and saver addons have been removed from the thing loader plugin.
Removed iPolyTxtPlane interface. Added
iPolygon3DStatic->GetTextureSpace() function to get texture space
definition for polygon.
levtool -planes yourmap.zip |
Several methods in iPortal have changed slightly. For example
SetMirror now expects a plane instead of a polygon.
The csSome, csConstSome and uint types have been removed.
Use void*, const void* and usigned int instead.
csHashIterator can no longer iterate over all objects. To do that
you need to use csGlobalHashIterator.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |