Richard Boegli's CnC_Generals_Zero_Hour Fork WIP
This is documentation of Richard Boegil's Zero Hour Fork
 
Loading...
Searching...
No Matches
WaterTracksRenderSystem Class Reference

System for drawing, updating, and re-using water mark render objects. More...

#include <W3DWaterTracks.h>

Public Member Functions

 WaterTracksRenderSystem (void)
 
 ~WaterTracksRenderSystem (void)
 
void ReleaseResources (void)
 Release all dx8 resources so the device can be reset.
 
void ReAcquireResources (void)
 Reacquire all resources after device reset.
 
void flush (RenderInfoClass &rinfo)
 draw all tracks that were requested for rendering.
 
void update (void)
 update the state of all edges (fade alpha, remove old, etc.)
 
void init (void)
 pre-allocate track objects
 
void shutdown (void)
 release all pre-allocated track objects, called by destructor
 
void reset (void)
 free all map dependent items.
 
WaterTracksObjbindTrack (waveType type)
 track object to be controlled by owner
 
void unbindTrack (WaterTracksObj *mod)
 releases control of track object
 
void saveTracks (void)
 save all used tracks to disk
 
void loadTracks (void)
 load tracks from disk
 
WaterTracksObjfindTrack (Vector2 &start, Vector2 &end, waveType type)
 

Protected Member Functions

void releaseTrack (WaterTracksObj *mod)
 returns track object to free store.
 

Protected Attributes

DX8VertexBufferClassm_vertexBuffer
 vertex buffer used to draw all tracks
 
DX8IndexBufferClassm_indexBuffer
 indices defining triangles in maximum length track
 
VertexMaterialClassm_vertexMaterialClass
 vertex lighting material
 
ShaderClass m_shaderClass
 shader or rendering state for heightmap
 
WaterTracksObjm_usedModules
 active objects being rendered in the scene
 
WaterTracksObjm_freeModules
 
Int m_stripSizeX
 resolution (vertex count) of wave strip
 
Int m_stripSizeY
 resolution (vertex count) of wave strip
 
Int m_batchStart
 start of unused vertices in vertex buffer
 
Real m_level
 water level
 

Friends

class WaterTracksObj
 

Detailed Description

System for drawing, updating, and re-using water 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 105 of file W3DWaterTracks.h.

Constructor & Destructor Documentation

◆ WaterTracksRenderSystem()

WaterTracksRenderSystem::WaterTracksRenderSystem ( void )

Constructor. Just nulls out some variables.

Definition at line 612 of file W3DWaterTracks.cpp.

◆ ~WaterTracksRenderSystem()

WaterTracksRenderSystem::~WaterTracksRenderSystem ( void )

Destructor. Free all pre-allocated track laying render objects

Definition at line 630 of file W3DWaterTracks.cpp.

Member Function Documentation

◆ bindTrack()

WaterTracksObj * WaterTracksRenderSystem::bindTrack ( waveType type)

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.

Definition at line 503 of file W3DWaterTracks.cpp.

◆ findTrack()

WaterTracksObj * WaterTracksRenderSystem::findTrack ( Vector2 & start,
Vector2 & end,
waveType type )

Definition at line 955 of file W3DWaterTracks.cpp.

◆ flush()

void WaterTracksRenderSystem::flush ( RenderInfoClass & rinfo)

draw all tracks that were requested for rendering.

Draw all active track marks for this frame

Todo
: Optimize system by drawing tracks as triangle strips and use dynamic vertex buffer access. May also try rendering all tracks with one call to W3D/D3D by grouping them by texture. Try improving the fit to vertical surfaces like cliffs.

set to identity

Definition at line 864 of file W3DWaterTracks.cpp.

◆ init()

void WaterTracksRenderSystem::init ( void )

pre-allocate track objects

initialize the system, allocate all the render objects we will need

Todo
: Get a value out of gdf
Todo
: grab these out of gdf or define

Definition at line 708 of file W3DWaterTracks.cpp.

◆ loadTracks()

void WaterTracksRenderSystem::loadTracks ( void )

load tracks from disk

Definition at line 1007 of file W3DWaterTracks.cpp.

◆ ReAcquireResources()

void WaterTracksRenderSystem::ReAcquireResources ( void )

Reacquire all resources after device reset.

(Re)allocates all W3D assets after a reset..

Definition at line 645 of file W3DWaterTracks.cpp.

◆ ReleaseResources()

void WaterTracksRenderSystem::ReleaseResources ( void )

Release all dx8 resources so the device can be reset.

(Re)allocates all W3D assets after a reset..

Definition at line 695 of file W3DWaterTracks.cpp.

◆ releaseTrack()

void WaterTracksRenderSystem::releaseTrack ( WaterTracksObj * mod)
protected

returns track object to free store.

Returns a track laying object to free store to be used again later.

Definition at line 583 of file W3DWaterTracks.cpp.

◆ reset()

void WaterTracksRenderSystem::reset ( void )

free all map dependent items.

Definition at line 761 of file W3DWaterTracks.cpp.

◆ saveTracks()

void WaterTracksRenderSystem::saveTracks ( void )

save all used tracks to disk

Definition at line 969 of file W3DWaterTracks.cpp.

◆ shutdown()

void WaterTracksRenderSystem::shutdown ( void )

release all pre-allocated track objects, called by destructor

Shutdown and free all memory for this system

Definition at line 787 of file W3DWaterTracks.cpp.

◆ unbindTrack()

void WaterTracksRenderSystem::unbindTrack ( WaterTracksObj * 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 570 of file W3DWaterTracks.cpp.

◆ update()

void WaterTracksRenderSystem::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 829 of file W3DWaterTracks.cpp.

Friends And Related Symbol Documentation

◆ WaterTracksObj

friend class WaterTracksObj
friend

Definition at line 107 of file W3DWaterTracks.h.

Member Data Documentation

◆ m_batchStart

Int WaterTracksRenderSystem::m_batchStart
protected

start of unused vertices in vertex buffer

Definition at line 141 of file W3DWaterTracks.h.

◆ m_freeModules

WaterTracksObj* WaterTracksRenderSystem::m_freeModules
protected

Definition at line 137 of file W3DWaterTracks.h.

◆ m_indexBuffer

DX8IndexBufferClass* WaterTracksRenderSystem::m_indexBuffer
protected

indices defining triangles in maximum length track

Definition at line 132 of file W3DWaterTracks.h.

◆ m_level

Real WaterTracksRenderSystem::m_level
protected

water level

Definition at line 142 of file W3DWaterTracks.h.

◆ m_shaderClass

ShaderClass WaterTracksRenderSystem::m_shaderClass
protected

shader or rendering state for heightmap

Definition at line 134 of file W3DWaterTracks.h.

◆ m_stripSizeX

Int WaterTracksRenderSystem::m_stripSizeX
protected

resolution (vertex count) of wave strip

Definition at line 139 of file W3DWaterTracks.h.

◆ m_stripSizeY

Int WaterTracksRenderSystem::m_stripSizeY
protected

resolution (vertex count) of wave strip

Definition at line 140 of file W3DWaterTracks.h.

◆ m_usedModules

WaterTracksObj* WaterTracksRenderSystem::m_usedModules
protected

active objects being rendered in the scene

Definition at line 136 of file W3DWaterTracks.h.

◆ m_vertexBuffer

DX8VertexBufferClass* WaterTracksRenderSystem::m_vertexBuffer
protected

vertex buffer used to draw all tracks

Definition at line 131 of file W3DWaterTracks.h.

◆ m_vertexMaterialClass

VertexMaterialClass* WaterTracksRenderSystem::m_vertexMaterialClass
protected

vertex lighting material

Definition at line 133 of file W3DWaterTracks.h.


The documentation for this class was generated from the following files: