[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
In order to clean up the codebase and simplify maintenance, a couple of features and plugins have been removed.
The ball mesh has been removed. The genmesh mesh can now be used to generate spheres instead. Here is an example how you would have to change the map file. First here is the old way:
<meshfact name="ballFact"> <plugin>crystalspace.mesh.loader.factory.ball</plugin> <params /> </meshfact> ... <sector name="room"> <meshobj name="ball"> <plugin>crystalspace.mesh.loader.ball</plugin> <params> <factory>ballFact</factory> <material>plasma</material> <numrim>16</numrim> <radius x="2" y="1" z=".5" /> <shift x="0" y=".5" z="0" /> <reversed /> <toponly /> <cylindrical /> </params> <move> <v x="15" y="4" z="14" /> </move> </meshobj> </sector> |
And here is the new way:
<meshfact name="ballFact"> <plugin>crystalspace.mesh.loader.factory.genmesh</plugin> <params> <sphere rimvertices="16" reversed="true" toponly="true" cylindrical="true" > <radius x="2" y="1" z=".5" /> <center x="0" y=".5" z="0" /> </sphere> </params> </meshfact> ... <sector name="room"> <meshobj name="transpBall"> <plugin>crystalspace.mesh.loader.genmesh</plugin> <params> <factory>ballFact</factory> <material>plasma</material> </params> <move> <v x="15" y="4" z="14" /> </move> </meshobj> </sector> |
It is important to note that the geometry defining the sphere is now in the factory (as with all genmeshes).
If you want to create them from code then you have to get rid of using the
iBallState
and instead use iGeneralFactoryState->GenerateSphere()
to generate the desired sphere in a genmesh factory.
Due to limited use (and it having been broken for more then a year) the stars mesh has been removed.
The simple console (`crystalspace.console.output.simple' has been removed. Instead use `crystalspace.console.output.standard'.
The old rendering architecture along with the old renderer plugins have been removed. Additionally, a few plugins, applications, classes, and methods have been deprecated because they are not applicable to the new rendering architecture. The results of the old renderer removal are summarized below.
The following plugin modules have been removed:
terrfunc
(crystalspace.mesh.object.terrfunc
)
gl3d
(`plugins/video/renderer/opengl')
soft3d
(`plugins/video/renderer/software')
null3d
(`plugins/video/renderer/null')
The `perftest' application has been removed, since it is no longer has any purpose. For the future the `csbench' application should be extended to provide more information.
The following files were removed:
include/ivideo/vbufmgr.h
The following files in `data/shader' were renamed:
or_lighting.xml
=> std_lighting.xml
or_lighting_detail.xml
=> std_lighting_detail.xml
or_lighting_detail_add.xml
=> std_lighting_detail_add.xml
or_lighting_detail_alpha.xml
=>
std_lighting_detail_alpha.xml
or_lighting_portal.xml
=> std_lighting_portal.xml
The following methods have been removed from the `iGraphics3D' interface:
ClearCache()
CloseFogObject()
DrawFogPolygon()
DrawPolygonDebug()
DrawPolygonFX()
DrawPolygonMesh()
DrawTriangleMesh()
DumpCache()
GetVertexBufferManager()
GetZBuffAt()
OpenFogObject()
From `iRenderView', the following fog-related methods have been removed. Fog is now calculated within the renderer.
CalculateFogMesh()
CalculateFogPolygon()
From `iMeshObject' and `iParticle', the following rendering-related methods have been removed:
Draw()
DrawTest()
Apart from these methods, the following classes and structures have been removed or have become private, and are no longer available to client code:
G3DFogInfo
G3DPolygonDFP
G3DPolygonDPFX
G3DPolygonDPF
G3DPolygonDP
G3DPolygonMesh
G3DTriangleMesh
The long-deprecated Crystal Space Windowing System (CSWS) was removed. Instead use AWS. @xref{AWS}.
The RAPID collision detection plugin has been removed. In addition to being slower than the OPCODE plugin and consuming more memory, its license prevented its use in commercial applications. You should instead now use the OPCODE plugin.
CS_DECLARE_OBJECT_ITERATOR()
Removal The `iObject' iterator creation macro CS_DECLARE_OBJECT_ITERATOR()
has been replaced by the templated class csTypedObjectIterator<>
. Given
existing code, such as:
iObject* parent = ...; CS_DECLARE_OBJECT_ITERATOR(MyFooIter, iFoo); MyFooIter iter(parent); while (iter.HasNext()) { iFoo* foo = iter.Next(); ... } |
Revise the code by instantiating the new template class:
typedef csTypedObjectIterator<iFoo> MyFooIter; MyFooIter iter(parent); while (iter.HasNext()) { |
Or, even simpler without the `typedef':
csTypedObjectIterator<iFoo> iter(parent); while (iter.HasNext()) { |
The `chunklod' terrain plugin has been removed:
crystalspace.mesh.object.terrain.chunklod
Instead use the `bruteblock' terrain engine.
crystalspace.mesh.object.terrain.bruteblock
csRGBVector
Removed The csRGBVector
class has been removed. A csComparator<>
specialization has been provided, so equivalent functionality can be achieved
by simply using csArray<csRGBcolor*>
.
The following facilities have been removed because they were unused and/or of questionable use.
csCrystalBall
and `csgeom/crysball.h'
csIndPrint
and `csutil/indprint.h'
iMaterialHandle
. Use `iTextureHandle' or `iMaterial' directly
(whichever is more appropriate) to achieve equivalent functionality.
csRenderMeshHolderMultiple
. Equivalent functionality can be achieved by
using `csFrameDataHolder<csDirtyAccessArray<csRenderMesh*> >'.
The casting macros (e.g. CS_STATIC_CAST
) have been removed. Any compiler
that does not support proper C++-style casts is likely also incapable of
correctly supporting other advanced C++ features, e.g the use of complex
templates in CrystalSpace.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] |
This document was generated using texi2html 1.76.