System for drawing, updating, and re-using tread mark render objects. More...
#include <W3DTerrainTracks.h>
Public Member Functions | |
| TerrainTracksRenderObjClassSystem (void) | |
| ~TerrainTracksRenderObjClassSystem (void) | |
| void | ReleaseResources (void) |
| Release all dx8 resources so the device can be reset. | |
| void | ReAcquireResources (void) |
| Reacquire all resources after device reset. | |
| void | setDetail (void) |
| void | flush (void) |
| draw all tracks that were requested for rendering. | |
| void | update (void) |
| update the state of all edges (fade alpha, remove old, etc.) | |
| void | init (SceneClass *TerrainTracksScene) |
| pre-allocate track objects | |
| void | shutdown (void) |
| release all pre-allocated track objects, called by destructor | |
| void | Reset (void) |
| empties the system, ready for a new scene. | |
| TerrainTracksRenderObjClass * | bindTrack (RenderObjClass *renderObject, Real length, const Char *texturename) |
| track object to be controlled by owner | |
| void | unbindTrack (TerrainTracksRenderObjClass *mod) |
| releases control of track object | |
Protected Member Functions | |
| void | releaseTrack (TerrainTracksRenderObjClass *mod) |
| returns track object to free store. | |
| void | clearTracks (void) |
| reset the amount of visible track marks of each object. | |
Protected Attributes | |
| DX8VertexBufferClass * | m_vertexBuffer |
| vertex buffer used to draw all tracks | |
| DX8IndexBufferClass * | m_indexBuffer |
| indices defining triangles in maximum length track | |
| VertexMaterialClass * | m_vertexMaterialClass |
| vertex lighting material | |
| ShaderClass | m_shaderClass |
| shader or rendering state for heightmap | |
| TerrainTracksRenderObjClass * | m_usedModules |
| active objects being rendered in the scene | |
| TerrainTracksRenderObjClass * | m_freeModules |
| SceneClass * | m_TerrainTracksScene |
| scene that will contain all the TerrainTracks | |
| Int | m_edgesToFlush |
| number of edges to flush on next render. | |
| Int | m_maxTankTrackEdges |
| maximum length of tank track | |
| Int | m_maxTankTrackOpaqueEdges |
| maximum length of tank track before it starts fading. | |
| Int | m_maxTankTrackFadeDelay |
| maximum amount of time a tank track segment remains visible. | |
Friends | |
| class | TerrainTracksRenderObjClass |
System for drawing, updating, and re-using tread mark render objects.
This system keeps track of all the active track mark objects and reuses them when they expire. It also renders all the track marks that were submitted in this frame.
Definition at line 113 of file W3DTerrainTracks.h.
| TerrainTracksRenderObjClassSystem::TerrainTracksRenderObjClassSystem | ( | void | ) |
Constructor. Just nulls out some variables.
Definition at line 556 of file W3DTerrainTracks.cpp.
| TerrainTracksRenderObjClassSystem::~TerrainTracksRenderObjClassSystem | ( | void | ) |
Destructor. Free all pre-allocated track laying render objects
Definition at line 576 of file W3DTerrainTracks.cpp.
| TerrainTracksRenderObjClass * TerrainTracksRenderObjClassSystem::bindTrack | ( | RenderObjClass * | renderObject, |
| Real | length, | ||
| const Char * | texturename ) |
track object to be controlled by owner
Grab a track from the free store. If no free tracks exist, return NULL. As long as a track is bound to an object (like a tank) it is ready to accept updates with additional edges. Once it is unbound, it will expire and return to the free store once all tracks have faded out.
Input: width in world units of each track edge (should probably width of vehicle). length in world units between edges. Shorter lengths produce more edges and smoother curves. texture to use for the tracks - image should be symetrical and include alpha channel.
Definition at line 474 of file W3DTerrainTracks.cpp.
|
protected |
reset the amount of visible track marks of each object.
Clear the treads from each track laying object without freeing the objects. Mostly used when user changed LOD level
Definition at line 944 of file W3DTerrainTracks.cpp.
| void TerrainTracksRenderObjClassSystem::flush | ( | void | ) |
draw all tracks that were requested for rendering.
Draw all active track marks for this frame
Definition at line 795 of file W3DTerrainTracks.cpp.
| void TerrainTracksRenderObjClassSystem::init | ( | SceneClass * | TerrainTracksScene | ) |
pre-allocate track objects
initialize the system, allocate all the render objects we will need
Definition at line 642 of file W3DTerrainTracks.cpp.
| void TerrainTracksRenderObjClassSystem::ReAcquireResources | ( | void | ) |
Reacquire all resources after device reset.
(Re)allocates all W3D assets after a reset..
Definition at line 592 of file W3DTerrainTracks.cpp.
| void TerrainTracksRenderObjClassSystem::ReleaseResources | ( | void | ) |
Release all dx8 resources so the device can be reset.
(Re)allocates all W3D assets after a reset..
Definition at line 629 of file W3DTerrainTracks.cpp.
|
protected |
returns track object to free store.
Returns a track laying object to free store to be used again later.
Definition at line 526 of file W3DTerrainTracks.cpp.
| void TerrainTracksRenderObjClassSystem::Reset | ( | void | ) |
empties the system, ready for a new scene.
Removes all remaining tracks from the rendering system
Definition at line 923 of file W3DTerrainTracks.cpp.
| void TerrainTracksRenderObjClassSystem::setDetail | ( | void | ) |
Adjust various paremeters which affect the cost of rendering tracks on the map. Parameters are passed via GlobalData
Definition at line 965 of file W3DTerrainTracks.cpp.
| void TerrainTracksRenderObjClassSystem::shutdown | ( | void | ) |
release all pre-allocated track objects, called by destructor
Shutdown and free all memory for this system
Definition at line 698 of file W3DTerrainTracks.cpp.
| void TerrainTracksRenderObjClassSystem::unbindTrack | ( | TerrainTracksRenderObjClass * | mod | ) |
releases control of track object
Called when an object (i.e Tank) will not lay down any more tracks and doesn't need this object anymore. The track-laying object will be returned to pool of available tracks as soon as any remaining track edges have faded out.
Definition at line 513 of file W3DTerrainTracks.cpp.
| void TerrainTracksRenderObjClassSystem::update | ( | void | ) |
update the state of all edges (fade alpha, remove old, etc.)
Update the state of all active track marks - fade, expire, etc.
Definition at line 740 of file W3DTerrainTracks.cpp.
|
friend |
Definition at line 115 of file W3DTerrainTracks.h.
|
protected |
number of edges to flush on next render.
Definition at line 147 of file W3DTerrainTracks.h.
|
protected |
Definition at line 144 of file W3DTerrainTracks.h.
|
protected |
indices defining triangles in maximum length track
Definition at line 139 of file W3DTerrainTracks.h.
|
protected |
maximum length of tank track
Definition at line 152 of file W3DTerrainTracks.h.
|
protected |
maximum amount of time a tank track segment remains visible.
Definition at line 154 of file W3DTerrainTracks.h.
|
protected |
maximum length of tank track before it starts fading.
Definition at line 153 of file W3DTerrainTracks.h.
|
protected |
shader or rendering state for heightmap
Definition at line 141 of file W3DTerrainTracks.h.
|
protected |
scene that will contain all the TerrainTracks
Definition at line 145 of file W3DTerrainTracks.h.
|
protected |
active objects being rendered in the scene
Definition at line 143 of file W3DTerrainTracks.h.
|
protected |
vertex buffer used to draw all tracks
Definition at line 138 of file W3DTerrainTracks.h.
|
protected |
vertex lighting material
Definition at line 140 of file W3DTerrainTracks.h.