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

### C.1.21 Removed Features

In order to clean up the codebase and simplify maintenance, a couple of features and plugins have been removed.

### Ball Mesh 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.

### Stars Mesh Removed

Due to limited use (and it having been broken for more then a year) the stars mesh has been removed.

### Simple Console Removed

The simple console (``crystalspace.console.output.simple'` has been removed. Instead use ``crystalspace.console.output.standard'`.

### Old Renderer Architecture Removal

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.

#### Removed Plugins

The following plugin modules have been removed:

- `terrfunc` (`crystalspace.mesh.object.terrfunc`)
- Old `gl3d` (``plugins/video/renderer/opengl'`)
- Old `soft3d` (``plugins/video/renderer/software'`)
- Old `null3d` (``plugins/video/renderer/null'`)

#### Removed Application

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.

#### Removed and Renamed Files

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`

#### Removed Methods and Classes

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`

### CSWS Removal

The long-deprecated Crystal Space Windowing System (CSWS) was removed. Instead use AWS. See section Alternate Windowing System (AWS).

### RAPID Collision Detection Plugin Removal

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())
    {

### ``chunklod'` Terrain Removal

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*>`.

### Miscellaneous Removals

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.