[ < ] | [ > ] | [ << ] | [ 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] | [ ? ] |