Pyrogenesis  trunk
Public Member Functions | Static Public Attributes | Private Member Functions | Private Attributes | List of all members
OverlayRenderer Class Reference

Class OverlayRenderer: Render various bits of data that overlay the game world (selection circles, health bars, etc). More...

#include <OverlayRenderer.h>

Collaboration diagram for OverlayRenderer:
Collaboration graph
[legend]

Public Member Functions

 OverlayRenderer ()
 
 ~OverlayRenderer ()
 
void Initialize ()
 Performs one-time initialization. More...
 
void Submit (SOverlayLine *overlay)
 Add a line overlay for rendering in this frame. More...
 
void Submit (SOverlayTexturedLine *overlay)
 Add a textured line overlay for rendering in this frame. More...
 
void Submit (SOverlaySprite *overlay)
 Add a sprite overlay for rendering in this frame. More...
 
void Submit (SOverlayQuad *overlay)
 Add a textured quad overlay for rendering in this frame. More...
 
void Submit (SOverlaySphere *overlay)
 Add a sphere overlay for rendering in this frame. More...
 
void PrepareForRendering ()
 Prepare internal data structures for rendering. More...
 
void EndFrame ()
 Reset the list of submitted overlays. More...
 
void RenderOverlaysBeforeWater ()
 Render all the submitted overlays that are embedded in the world (i.e. More...
 
void RenderOverlaysAfterWater ()
 Render all the submitted overlays that are embedded in the world (i.e. More...
 
void RenderForegroundOverlays (const CCamera &viewCamera)
 Render all the submitted overlays that should appear on top of everything in the world. More...
 

Static Public Attributes

static const float OVERLAY_VOFFSET = 0.2f
 Small vertical offset of overlays from terrain to prevent visual glitches. More...
 

Private Member Functions

 NONCOPYABLE (OverlayRenderer)
 
void RenderTexturedOverlayLines ()
 Helper method; renders all overlay lines currently registered in the internals. More...
 
void RenderTexturedOverlayLines (CShaderProgramPtr shader, bool alwaysVisible)
 Helper method; renders those overlay lines currently registered in the internals (i.e. More...
 
void RenderQuadOverlays ()
 Helper method; batch-renders all registered quad overlays, batched by their texture for effiency. More...
 
void RenderSphereOverlays ()
 Helper method; batch-renders all sphere quad overlays. More...
 

Private Attributes

OverlayRendererInternalsm
 

Detailed Description

Class OverlayRenderer: Render various bits of data that overlay the game world (selection circles, health bars, etc).

Constructor & Destructor Documentation

OverlayRenderer::OverlayRenderer ( )
OverlayRenderer::~OverlayRenderer ( )

Member Function Documentation

void OverlayRenderer::EndFrame ( )

Reset the list of submitted overlays.

void OverlayRenderer::Initialize ( )

Performs one-time initialization.

Called by CRenderer::Open after graphics capabilities and the shader path have been determined (notably VBO support).

OverlayRenderer::NONCOPYABLE ( OverlayRenderer  )
private
void OverlayRenderer::PrepareForRendering ( )

Prepare internal data structures for rendering.

Must be called after all Submit calls for a frame, and before any rendering calls.

void OverlayRenderer::RenderForegroundOverlays ( const CCamera viewCamera)

Render all the submitted overlays that should appear on top of everything in the world.

Parameters
viewCameracamera to be used for billboard computations
void OverlayRenderer::RenderOverlaysAfterWater ( )

Render all the submitted overlays that are embedded in the world (i.e.

rendered behind other objects in the normal 3D way) and should be drawn after water (i.e. may be visible on top of the water)

void OverlayRenderer::RenderOverlaysBeforeWater ( )

Render all the submitted overlays that are embedded in the world (i.e.

rendered behind other objects in the normal 3D way) and should be drawn before water (i.e. may be visible under the water)

void OverlayRenderer::RenderQuadOverlays ( )
private

Helper method; batch-renders all registered quad overlays, batched by their texture for effiency.

void OverlayRenderer::RenderSphereOverlays ( )
private

Helper method; batch-renders all sphere quad overlays.

void OverlayRenderer::RenderTexturedOverlayLines ( )
private

Helper method; renders all overlay lines currently registered in the internals.

Batch- renders textured overlay lines batched according to their visibility status by delegating to RenderTexturedOverlayLines(CShaderProgramPtr, bool).

void OverlayRenderer::RenderTexturedOverlayLines ( CShaderProgramPtr  shader,
bool  alwaysVisible 
)
private

Helper method; renders those overlay lines currently registered in the internals (i.e.

in m->texlines) for which the 'always visible' flag equals alwaysVisible. Used for batch rendering the overlay lines according to their alwaysVisible status, as this requires a separate shader to be used.

void OverlayRenderer::Submit ( SOverlayLine overlay)

Add a line overlay for rendering in this frame.

Parameters
overlayMust be non-null. The pointed-to object must remain valid at least until the end of the frame.
void OverlayRenderer::Submit ( SOverlayTexturedLine overlay)

Add a textured line overlay for rendering in this frame.

Parameters
overlayMust be non-null. The pointed-to object must remain valid at least until the end of the frame.
void OverlayRenderer::Submit ( SOverlaySprite overlay)

Add a sprite overlay for rendering in this frame.

Parameters
overlayMust be non-null. The pointed-to object must remain valid at least until the end of the frame.
void OverlayRenderer::Submit ( SOverlayQuad overlay)

Add a textured quad overlay for rendering in this frame.

Parameters
overlayMust be non-null. The pointed-to object must remain valid at least until the end of the frame.
void OverlayRenderer::Submit ( SOverlaySphere overlay)

Add a sphere overlay for rendering in this frame.

Parameters
overlayMust be non-null. The pointed-to object must remain valid at least until the end of the frame.

Member Data Documentation

OverlayRendererInternals* OverlayRenderer::m
private
const float OverlayRenderer::OVERLAY_VOFFSET = 0.2f
static

Small vertical offset of overlays from terrain to prevent visual glitches.


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