Pyrogenesis  13997
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Classes | Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Protected Member Functions | Static Protected Member Functions | Protected Attributes | Friends | List of all members
CRenderer Class Reference

#include <Renderer.h>

Inheritance diagram for CRenderer:
Singleton< CRenderer > SceneCollector

Classes

struct  Caps
 
struct  Options
 
struct  Stats
 

Public Types

enum  { NumAlphaMaps =14 }
 
enum  Option {
  OPT_NOVBO, OPT_SHADOWS, OPT_WATERNORMAL, OPT_WATERREALDEPTH,
  OPT_WATERFOAM, OPT_WATERCOASTALWAVES, OPT_WATERREFLECTION, OPT_WATERREFRACTION,
  OPT_WATERSHADOW, OPT_SHADOWPCF, OPT_PARTICLES, OPT_PREFERGLSL,
  OPT_SILHOUETTES, OPT_SHOWSKY
}
 
enum  RenderPath { RP_DEFAULT, RP_FIXED, RP_SHADER }
 

Public Member Functions

 CRenderer ()
 
 ~CRenderer ()
 
bool Open (int width, int height)
 
void Resize (int width, int height)
 
void SetOptionBool (enum Option opt, bool value)
 
bool GetOptionBool (enum Option opt) const
 
void SetRenderPath (RenderPath rp)
 
RenderPath GetRenderPath () const
 
int GetWidth () const
 
int GetHeight () const
 
float GetAspect () const
 
void BeginFrame ()
 
void EndFrame ()
 
void SetSimulation (CSimulation2 *simulation)
 Set simulation context for rendering purposes. More...
 
void SetClearColor (SColor4ub color)
 
void MakeShadersDirty ()
 
void SetSceneCamera (const CCamera &viewCamera, const CCamera &cullCamera)
 Set up the camera used for rendering the next scene; this includes setting OpenGL state like viewport, projection and modelview matrices. More...
 
void SetViewport (const SViewPort &)
 
void RenderScene (Scene &scene)
 Render the given scene immediately. More...
 
SceneGetScene ()
 Return the scene that is currently being rendered. More...
 
void RenderTextOverlays ()
 Render text overlays on top of the scene. More...
 
void SetLightEnv (CLightEnv *lightenv)
 
void SetTerrainRenderMode (ERenderMode mode)
 
ERenderMode GetTerrainRenderMode () const
 
void SetModelRenderMode (ERenderMode mode)
 
ERenderMode GetModelRenderMode () const
 
void SetDisplayTerrainPriorities (bool enabled)
 
void BindTexture (int unit, unsigned int tex)
 
int LoadAlphaMaps ()
 
void UnloadAlphaMaps ()
 
StatsGetStats ()
 
const CLightEnvGetLightEnv ()
 
const CCameraGetViewCamera () const
 
void SetViewCamera (const CCamera &camera)
 
const CCameraGetCullCamera () const
 
WaterManagerGetWaterManager ()
 GetWaterManager: Return the renderer's water manager. More...
 
SkyManagerGetSkyManager ()
 GetSkyManager: Return the renderer's sky manager. More...
 
CTextureManagerGetTextureManager ()
 
CShaderManagerGetShaderManager ()
 
CParticleManagerGetParticleManager ()
 
TerrainRendererGetTerrainRenderer ()
 
CMaterialManagerGetMaterialManager ()
 
CShaderDefines GetSystemShaderDefines ()
 
CTimeManagerGetTimeManager ()
 
CPostprocManagerGetPostprocManager ()
 
const CapsGetCapabilities () const
 GetCapabilities: Return which OpenGL capabilities are available and enabled. More...
 
- Public Member Functions inherited from Singleton< CRenderer >
 Singleton ()
 
 ~Singleton ()
 

Static Public Member Functions

static CStr GetRenderPathName (RenderPath rp)
 
static RenderPath GetRenderPathByName (const CStr &name)
 
static void RegisterScriptFunctions (ScriptInterface &scriptInterface)
 
- Static Public Member Functions inherited from Singleton< CRenderer >
static CRendererGetSingleton ()
 
static CRendererGetSingletonPtr ()
 
static bool IsInitialised ()
 

Public Attributes

struct CRenderer::Options m_Options
 
float m_ShadowZBias
 m_ShadowZBias: Z bias used when rendering shadows into a depth texture. More...
 
int m_ShadowMapSize
 m_ShadowMapSize: Size of shadow map, or 0 for default. More...
 
bool m_SkipSubmit
 m_SkipSubmit: Disable the actual submission of rendering commands to OpenGL. More...
 
float u0
 
float u1
 
float v0
 
float v1
 

Protected Member Functions

void Submit (CPatch *patch)
 Submit a terrain patch that is part of the scene. More...
 
void Submit (SOverlayLine *overlay)
 Submit a line-based overlay. More...
 
void Submit (SOverlayTexturedLine *overlay)
 Submit a textured line overlay. More...
 
void Submit (SOverlaySprite *overlay)
 Submit a sprite overlay. More...
 
void Submit (SOverlayQuad *overlay)
 Submit a textured quad overlay. More...
 
void Submit (CModelDecal *decal)
 Submit a terrain decal. More...
 
void Submit (CParticleEmitter *emitter)
 Submit a particle emitter. More...
 
void SubmitNonRecursive (CModel *model)
 Submit a model that is part of the scene, without submitting attached models. More...
 
void RenderSubmissions ()
 
void RenderPatches (const CShaderDefines &context, const CFrustum *frustum=0)
 
void RenderModels (const CShaderDefines &context, const CFrustum *frustum=0)
 
void RenderTransparentModels (const CShaderDefines &context, ETransparentMode transparentMode, const CFrustum *frustum=0)
 
void RenderSilhouettes (const CShaderDefines &context)
 
void RenderParticles ()
 
void RenderShadowMap (const CShaderDefines &context)
 
SScreenRect RenderReflections (const CShaderDefines &context, const CBoundingBoxAligned &scissor)
 
SScreenRect RenderRefractions (const CShaderDefines &context, const CBoundingBoxAligned &scissor)
 
void DisplayFrustum ()
 
void SetObliqueFrustumClipping (const CVector4D &clipPlane)
 
void ReloadShaders ()
 
void RecomputeSystemShaderDefines ()
 
void EnumCaps ()
 

Static Protected Member Functions

static Status ReloadChangedFileCB (void *param, const VfsPath &path)
 

Protected Attributes

CRendererInternalsm
 Private data that is not needed by inline functions. More...
 
int m_Width
 
int m_Height
 
ERenderMode m_TerrainRenderMode
 
ERenderMode m_ModelRenderMode
 
CShaderDefines m_SystemShaderDefines
 
CCamera m_ViewCamera
 m_ViewCamera: determines the eye position for rendering More...
 
CCamera m_CullCamera
 m_CullCamera: determines the frustum for culling and shadowmap calculations More...
 
Scenem_CurrentScene
 
float m_ClearColor [4]
 
CLightEnvm_LightEnv
 
Handle m_hCompositeAlphaMap
 
struct {
   float   u0
 
   float   u1
 
   float   v0
 
   float   v1
 
m_AlphaMapCoords [NumAlphaMaps]
 
Caps m_Caps
 
Stats m_Stats
 
WaterManagerm_WaterManager
 m_WaterManager: the WaterManager object used for water textures and settings (e.g. More...
 
SkyManagerm_SkyManager
 m_SkyManager: the SkyManager object used for sky textures and settings More...
 
bool m_DisplayFrustum
 m_DisplayFrustum: Render the cull frustum and other data that may be interesting to evaluate culling and shadow map calculations More...
 
bool m_DisplayTerrainPriorities
 Enable rendering of terrain tile priority text overlay, for debugging. More...
 

Friends

struct CRendererInternals
 
class CVertexBuffer
 
class CPatchRData
 
class CDecalRData
 
class FixedFunctionModelRenderer
 
class ModelRenderer
 
class PolygonSortModelRenderer
 
class SortModelRenderer
 
class RenderPathVertexShader
 
class HWLightingModelRenderer
 
class ShaderModelVertexRenderer
 
class InstancingModelRenderer
 
class ShaderInstancingModelRenderer
 
class TerrainRenderer
 

Additional Inherited Members

- Private Member Functions inherited from SceneCollector
virtual ~SceneCollector ()
 
virtual void SubmitRecursive (CModelAbstract *model)
 Submit a model that is part of the scene, including attached sub-models. More...
 

Detailed Description

Definition at line 72 of file Renderer.h.

Member Enumeration Documentation

anonymous enum
Enumerator
NumAlphaMaps 

Definition at line 78 of file Renderer.h.

Enumerator
OPT_NOVBO 
OPT_SHADOWS 
OPT_WATERNORMAL 
OPT_WATERREALDEPTH 
OPT_WATERFOAM 
OPT_WATERCOASTALWAVES 
OPT_WATERREFLECTION 
OPT_WATERREFRACTION 
OPT_WATERSHADOW 
OPT_SHADOWPCF 
OPT_PARTICLES 
OPT_PREFERGLSL 
OPT_SILHOUETTES 
OPT_SHOWSKY 

Definition at line 79 of file Renderer.h.

Enumerator
RP_DEFAULT 
RP_FIXED 
RP_SHADER 

Definition at line 96 of file Renderer.h.

Constructor & Destructor Documentation

CRenderer::CRenderer ( )

Definition at line 412 of file Renderer.cpp.

CRenderer::~CRenderer ( )

Definition at line 481 of file Renderer.cpp.

Member Function Documentation

void CRenderer::BeginFrame ( )

Definition at line 833 of file Renderer.cpp.

void CRenderer::BindTexture ( int  unit,
unsigned int  tex 
)

Definition at line 1783 of file Renderer.cpp.

void CRenderer::DisplayFrustum ( )
protected

Definition at line 1636 of file Renderer.cpp.

void CRenderer::EndFrame ( )

Definition at line 1603 of file Renderer.cpp.

void CRenderer::EnumCaps ( )
protected

Definition at line 494 of file Renderer.cpp.

float CRenderer::GetAspect ( ) const
inline

Definition at line 189 of file Renderer.h.

const Caps& CRenderer::GetCapabilities ( ) const
inline

GetCapabilities: Return which OpenGL capabilities are available and enabled.

Returns
capabilities structure

Definition at line 318 of file Renderer.h.

const CCamera& CRenderer::GetCullCamera ( ) const
inline

Definition at line 281 of file Renderer.h.

int CRenderer::GetHeight ( ) const
inline

Definition at line 187 of file Renderer.h.

const CLightEnv& CRenderer::GetLightEnv ( )
inline

Definition at line 273 of file Renderer.h.

CMaterialManager & CRenderer::GetMaterialManager ( )

Definition at line 2002 of file Renderer.cpp.

ERenderMode CRenderer::GetModelRenderMode ( ) const
inline

Definition at line 255 of file Renderer.h.

bool CRenderer::GetOptionBool ( enum Option  opt) const

Definition at line 726 of file Renderer.cpp.

CParticleManager & CRenderer::GetParticleManager ( )

Definition at line 1987 of file Renderer.cpp.

CPostprocManager & CRenderer::GetPostprocManager ( )

Definition at line 2007 of file Renderer.cpp.

RenderPath CRenderer::GetRenderPath ( ) const
inline

Definition at line 180 of file Renderer.h.

CRenderer::RenderPath CRenderer::GetRenderPathByName ( const CStr &  name)
static

Definition at line 817 of file Renderer.cpp.

CStr CRenderer::GetRenderPathName ( RenderPath  rp)
static

Definition at line 807 of file Renderer.cpp.

Scene & CRenderer::GetScene ( )

Return the scene that is currently being rendered.

Only valid when the renderer is in a RenderScene call.

Definition at line 1775 of file Renderer.cpp.

CShaderManager & CRenderer::GetShaderManager ( )

Definition at line 1982 of file Renderer.cpp.

SkyManager* CRenderer::GetSkyManager ( )
inline

GetSkyManager: Return the renderer's sky manager.

Returns
the SkyManager object used by the renderer

Definition at line 295 of file Renderer.h.

Stats& CRenderer::GetStats ( )
inline

Definition at line 270 of file Renderer.h.

CShaderDefines CRenderer::GetSystemShaderDefines ( )
inline

Definition at line 307 of file Renderer.h.

TerrainRenderer & CRenderer::GetTerrainRenderer ( )

Definition at line 1992 of file Renderer.cpp.

ERenderMode CRenderer::GetTerrainRenderMode ( ) const
inline

Definition at line 250 of file Renderer.h.

CTextureManager & CRenderer::GetTextureManager ( )

Definition at line 1977 of file Renderer.cpp.

CTimeManager & CRenderer::GetTimeManager ( )

Definition at line 1997 of file Renderer.cpp.

const CCamera& CRenderer::GetViewCamera ( ) const
inline

Definition at line 276 of file Renderer.h.

WaterManager* CRenderer::GetWaterManager ( )
inline

GetWaterManager: Return the renderer's water manager.

Returns
the WaterManager object used by the renderer

Definition at line 288 of file Renderer.h.

int CRenderer::GetWidth ( ) const
inline

Definition at line 185 of file Renderer.h.

int CRenderer::LoadAlphaMaps ( )

Definition at line 1803 of file Renderer.cpp.

void CRenderer::MakeShadersDirty ( )

Definition at line 1972 of file Renderer.cpp.

bool CRenderer::Open ( int  width,
int  height 
)

Definition at line 608 of file Renderer.cpp.

void CRenderer::RecomputeSystemShaderDefines ( )
protected

Definition at line 537 of file Renderer.cpp.

static void CRenderer::RegisterScriptFunctions ( ScriptInterface scriptInterface)
static
Status CRenderer::ReloadChangedFileCB ( void *  param,
const VfsPath path 
)
staticprotected

Definition at line 1955 of file Renderer.cpp.

void CRenderer::ReloadShaders ( )
protected

Definition at line 553 of file Renderer.cpp.

void CRenderer::RenderModels ( const CShaderDefines context,
const CFrustum frustum = 0 
)
protected

Definition at line 979 of file Renderer.cpp.

void CRenderer::RenderParticles ( )
protected

Definition at line 1386 of file Renderer.cpp.

void CRenderer::RenderPatches ( const CShaderDefines context,
const CFrustum frustum = 0 
)
protected

Definition at line 900 of file Renderer.cpp.

SScreenRect CRenderer::RenderReflections ( const CShaderDefines context,
const CBoundingBoxAligned scissor 
)
protected

Definition at line 1121 of file Renderer.cpp.

SScreenRect CRenderer::RenderRefractions ( const CShaderDefines context,
const CBoundingBoxAligned scissor 
)
protected

Definition at line 1208 of file Renderer.cpp.

void CRenderer::RenderScene ( Scene scene)

Render the given scene immediately.

Parameters
scenea Scene object describing what should be rendered.

Definition at line 1758 of file Renderer.cpp.

void CRenderer::RenderShadowMap ( const CShaderDefines context)
protected

Definition at line 865 of file Renderer.cpp.

void CRenderer::RenderSilhouettes ( const CShaderDefines context)
protected

Definition at line 1284 of file Renderer.cpp.

void CRenderer::RenderSubmissions ( )
protected

Definition at line 1423 of file Renderer.cpp.

void CRenderer::RenderTextOverlays ( )

Render text overlays on top of the scene.

Assumes the caller has set up the GL environment for orthographic rendering with texturing and blending.

Definition at line 1663 of file Renderer.cpp.

void CRenderer::RenderTransparentModels ( const CShaderDefines context,
ETransparentMode  transparentMode,
const CFrustum frustum = 0 
)
protected

Definition at line 1020 of file Renderer.cpp.

void CRenderer::Resize ( int  width,
int  height 
)

Definition at line 655 of file Renderer.cpp.

void CRenderer::SetClearColor ( SColor4ub  color)

Definition at line 857 of file Renderer.cpp.

void CRenderer::SetDisplayTerrainPriorities ( bool  enabled)
inline

Definition at line 258 of file Renderer.h.

void CRenderer::SetLightEnv ( CLightEnv lightenv)
inline

Definition at line 243 of file Renderer.h.

void CRenderer::SetModelRenderMode ( ERenderMode  mode)
inline

Definition at line 253 of file Renderer.h.

void CRenderer::SetObliqueFrustumClipping ( const CVector4D clipPlane)
protected

Definition at line 1085 of file Renderer.cpp.

void CRenderer::SetOptionBool ( enum Option  opt,
bool  value 
)

Definition at line 669 of file Renderer.cpp.

void CRenderer::SetRenderPath ( RenderPath  rp)

Definition at line 769 of file Renderer.cpp.

void CRenderer::SetSceneCamera ( const CCamera viewCamera,
const CCamera cullCamera 
)

Set up the camera used for rendering the next scene; this includes setting OpenGL state like viewport, projection and modelview matrices.

Parameters
viewCamerathis camera determines the eye position for rendering
cullCamerathis camera determines the frustum for culling in the renderer and for shadow calculations

Definition at line 1677 of file Renderer.cpp.

void CRenderer::SetSimulation ( CSimulation2 simulation)

Set simulation context for rendering purposes.

Must be called at least once when the game has started and before frames are rendered.

Definition at line 850 of file Renderer.cpp.

void CRenderer::SetTerrainRenderMode ( ERenderMode  mode)
inline

Definition at line 248 of file Renderer.h.

void CRenderer::SetViewCamera ( const CCamera camera)
inline

Definition at line 278 of file Renderer.h.

void CRenderer::SetViewport ( const SViewPort vp)

Definition at line 1687 of file Renderer.cpp.

void CRenderer::Submit ( CPatch patch)
protectedvirtual

Submit a terrain patch that is part of the scene.

Implements SceneCollector.

Definition at line 1692 of file Renderer.cpp.

void CRenderer::Submit ( SOverlayLine overlay)
protectedvirtual

Submit a line-based overlay.

Implements SceneCollector.

Definition at line 1697 of file Renderer.cpp.

void CRenderer::Submit ( SOverlayTexturedLine overlay)
protectedvirtual

Submit a textured line overlay.

Implements SceneCollector.

Definition at line 1702 of file Renderer.cpp.

void CRenderer::Submit ( SOverlaySprite overlay)
protectedvirtual

Submit a sprite overlay.

Implements SceneCollector.

Definition at line 1707 of file Renderer.cpp.

void CRenderer::Submit ( SOverlayQuad overlay)
protectedvirtual

Submit a textured quad overlay.

Implements SceneCollector.

Definition at line 1712 of file Renderer.cpp.

void CRenderer::Submit ( CModelDecal decal)
protectedvirtual

Submit a terrain decal.

Implements SceneCollector.

Definition at line 1717 of file Renderer.cpp.

void CRenderer::Submit ( CParticleEmitter emitter)
protectedvirtual

Submit a particle emitter.

Implements SceneCollector.

Definition at line 1722 of file Renderer.cpp.

void CRenderer::SubmitNonRecursive ( CModel model)
protectedvirtual

Submit a model that is part of the scene, without submitting attached models.

Implements SceneCollector.

Definition at line 1727 of file Renderer.cpp.

void CRenderer::UnloadAlphaMaps ( )

Definition at line 1947 of file Renderer.cpp.

Friends And Related Function Documentation

friend class CDecalRData
friend

Definition at line 326 of file Renderer.h.

friend class CPatchRData
friend

Definition at line 325 of file Renderer.h.

friend struct CRendererInternals
friend

Definition at line 323 of file Renderer.h.

friend class CVertexBuffer
friend

Definition at line 324 of file Renderer.h.

friend class FixedFunctionModelRenderer
friend

Definition at line 327 of file Renderer.h.

friend class HWLightingModelRenderer
friend

Definition at line 332 of file Renderer.h.

friend class InstancingModelRenderer
friend

Definition at line 334 of file Renderer.h.

friend class ModelRenderer
friend

Definition at line 328 of file Renderer.h.

friend class PolygonSortModelRenderer
friend

Definition at line 329 of file Renderer.h.

friend class RenderPathVertexShader
friend

Definition at line 331 of file Renderer.h.

friend class ShaderInstancingModelRenderer
friend

Definition at line 335 of file Renderer.h.

friend class ShaderModelVertexRenderer
friend

Definition at line 333 of file Renderer.h.

friend class SortModelRenderer
friend

Definition at line 330 of file Renderer.h.

friend class TerrainRenderer
friend

Definition at line 336 of file Renderer.h.

Member Data Documentation

CRendererInternals* CRenderer::m
protected

Private data that is not needed by inline functions.

Definition at line 384 of file Renderer.h.

struct { ... } CRenderer::m_AlphaMapCoords[NumAlphaMaps]
Caps CRenderer::m_Caps
protected

Definition at line 424 of file Renderer.h.

float CRenderer::m_ClearColor[4]
protected

Definition at line 414 of file Renderer.h.

CCamera CRenderer::m_CullCamera
protected

m_CullCamera: determines the frustum for culling and shadowmap calculations

See Also
CGameView::m_ViewCamera

Definition at line 408 of file Renderer.h.

Scene* CRenderer::m_CurrentScene
protected

Definition at line 411 of file Renderer.h.

bool CRenderer::m_DisplayFrustum
protected

m_DisplayFrustum: Render the cull frustum and other data that may be interesting to evaluate culling and shadow map calculations

Can be controlled from JS via renderer.displayFrustum

Definition at line 447 of file Renderer.h.

bool CRenderer::m_DisplayTerrainPriorities
protected

Enable rendering of terrain tile priority text overlay, for debugging.

Definition at line 452 of file Renderer.h.

Handle CRenderer::m_hCompositeAlphaMap
protected

Definition at line 418 of file Renderer.h.

int CRenderer::m_Height
protected

Definition at line 388 of file Renderer.h.

CLightEnv* CRenderer::m_LightEnv
protected

Definition at line 416 of file Renderer.h.

ERenderMode CRenderer::m_ModelRenderMode
protected

Definition at line 392 of file Renderer.h.

struct CRenderer::Options CRenderer::m_Options
int CRenderer::m_ShadowMapSize

m_ShadowMapSize: Size of shadow map, or 0 for default.

Typically slow but useful for high-quality rendering. Changes don't take effect until the shadow map is regenerated.

Can be accessed via JS as renderer.shadowMapSize

Definition at line 471 of file Renderer.h.

float CRenderer::m_ShadowZBias

m_ShadowZBias: Z bias used when rendering shadows into a depth texture.

This can be used to control shadowing artifacts.

Can be accessed via JS as renderer.shadowZBias ShadowMap uses this for matrix calculation.

Definition at line 462 of file Renderer.h.

bool CRenderer::m_SkipSubmit

m_SkipSubmit: Disable the actual submission of rendering commands to OpenGL.

All state setup is still performed as usual.

Can be accessed via JS as renderer.skipSubmit

Definition at line 479 of file Renderer.h.

SkyManager* CRenderer::m_SkyManager
protected

m_SkyManager: the SkyManager object used for sky textures and settings

Definition at line 439 of file Renderer.h.

Stats CRenderer::m_Stats
protected

Definition at line 428 of file Renderer.h.

CShaderDefines CRenderer::m_SystemShaderDefines
protected

Definition at line 394 of file Renderer.h.

ERenderMode CRenderer::m_TerrainRenderMode
protected

Definition at line 390 of file Renderer.h.

CCamera CRenderer::m_ViewCamera
protected

m_ViewCamera: determines the eye position for rendering

See Also
CGameView::m_ViewCamera

Definition at line 401 of file Renderer.h.

WaterManager* CRenderer::m_WaterManager
protected

m_WaterManager: the WaterManager object used for water textures and settings (e.g.

water color, water height)

Definition at line 434 of file Renderer.h.

int CRenderer::m_Width
protected

Definition at line 386 of file Renderer.h.

float CRenderer::u0

Definition at line 421 of file Renderer.h.

float CRenderer::u1

Definition at line 421 of file Renderer.h.

float CRenderer::v0

Definition at line 421 of file Renderer.h.

float CRenderer::v1

Definition at line 421 of file Renderer.h.


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