Pyrogenesis
13997
|
#include <Renderer.h>
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... | |
Scene & | GetScene () |
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 () |
Stats & | GetStats () |
const CLightEnv & | GetLightEnv () |
const CCamera & | GetViewCamera () const |
void | SetViewCamera (const CCamera &camera) |
const CCamera & | GetCullCamera () const |
WaterManager * | GetWaterManager () |
GetWaterManager: Return the renderer's water manager. More... | |
SkyManager * | GetSkyManager () |
GetSkyManager: Return the renderer's sky manager. More... | |
CTextureManager & | GetTextureManager () |
CShaderManager & | GetShaderManager () |
CParticleManager & | GetParticleManager () |
TerrainRenderer & | GetTerrainRenderer () |
CMaterialManager & | GetMaterialManager () |
CShaderDefines | GetSystemShaderDefines () |
CTimeManager & | GetTimeManager () |
CPostprocManager & | GetPostprocManager () |
const Caps & | GetCapabilities () const |
GetCapabilities: Return which OpenGL capabilities are available and enabled. More... | |
![]() | |
Singleton () | |
~Singleton () | |
Static Public Member Functions | |
static CStr | GetRenderPathName (RenderPath rp) |
static RenderPath | GetRenderPathByName (const CStr &name) |
static void | RegisterScriptFunctions (ScriptInterface &scriptInterface) |
![]() | |
static CRenderer & | GetSingleton () |
static CRenderer * | GetSingletonPtr () |
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 | |
CRendererInternals * | m |
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... | |
Scene * | m_CurrentScene |
float | m_ClearColor [4] |
CLightEnv * | m_LightEnv |
Handle | m_hCompositeAlphaMap |
struct { | |
float u0 | |
float u1 | |
float v0 | |
float v1 | |
} | m_AlphaMapCoords [NumAlphaMaps] |
Caps | m_Caps |
Stats | m_Stats |
WaterManager * | m_WaterManager |
m_WaterManager: the WaterManager object used for water textures and settings (e.g. More... | |
SkyManager * | m_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 | |
![]() | |
virtual | ~SceneCollector () |
virtual void | SubmitRecursive (CModelAbstract *model) |
Submit a model that is part of the scene, including attached sub-models. More... | |
Definition at line 72 of file Renderer.h.
anonymous enum |
Enumerator | |
---|---|
NumAlphaMaps |
Definition at line 78 of file Renderer.h.
enum CRenderer::Option |
Definition at line 79 of file Renderer.h.
Enumerator | |
---|---|
RP_DEFAULT | |
RP_FIXED | |
RP_SHADER |
Definition at line 96 of file Renderer.h.
CRenderer::CRenderer | ( | ) |
Definition at line 412 of file Renderer.cpp.
CRenderer::~CRenderer | ( | ) |
Definition at line 481 of file Renderer.cpp.
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.
|
protected |
Definition at line 1636 of file Renderer.cpp.
void CRenderer::EndFrame | ( | ) |
Definition at line 1603 of file Renderer.cpp.
|
protected |
Definition at line 494 of file Renderer.cpp.
|
inline |
Definition at line 189 of file Renderer.h.
|
inline |
GetCapabilities: Return which OpenGL capabilities are available and enabled.
Definition at line 318 of file Renderer.h.
|
inline |
Definition at line 281 of file Renderer.h.
|
inline |
Definition at line 187 of file Renderer.h.
|
inline |
Definition at line 273 of file Renderer.h.
CMaterialManager & CRenderer::GetMaterialManager | ( | ) |
Definition at line 2002 of file Renderer.cpp.
|
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.
|
inline |
Definition at line 180 of file Renderer.h.
|
static |
Definition at line 817 of file Renderer.cpp.
|
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.
|
inline |
GetSkyManager: Return the renderer's sky manager.
Definition at line 295 of file Renderer.h.
|
inline |
Definition at line 270 of file Renderer.h.
|
inline |
Definition at line 307 of file Renderer.h.
TerrainRenderer & CRenderer::GetTerrainRenderer | ( | ) |
Definition at line 1992 of file Renderer.cpp.
|
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.
|
inline |
Definition at line 276 of file Renderer.h.
|
inline |
GetWaterManager: Return the renderer's water manager.
Definition at line 288 of file Renderer.h.
|
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.
|
protected |
Definition at line 537 of file Renderer.cpp.
|
static |
Definition at line 1955 of file Renderer.cpp.
|
protected |
Definition at line 553 of file Renderer.cpp.
|
protected |
Definition at line 979 of file Renderer.cpp.
|
protected |
Definition at line 1386 of file Renderer.cpp.
|
protected |
Definition at line 900 of file Renderer.cpp.
|
protected |
Definition at line 1121 of file Renderer.cpp.
|
protected |
Definition at line 1208 of file Renderer.cpp.
void CRenderer::RenderScene | ( | Scene & | scene | ) |
Render the given scene immediately.
scene | a Scene object describing what should be rendered. |
Definition at line 1758 of file Renderer.cpp.
|
protected |
Definition at line 865 of file Renderer.cpp.
|
protected |
Definition at line 1284 of file Renderer.cpp.
|
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.
|
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.
|
inline |
Definition at line 258 of file Renderer.h.
|
inline |
Definition at line 243 of file Renderer.h.
|
inline |
Definition at line 253 of file Renderer.h.
|
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.
Set up the camera used for rendering the next scene; this includes setting OpenGL state like viewport, projection and modelview matrices.
viewCamera | this camera determines the eye position for rendering |
cullCamera | this 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.
|
inline |
Definition at line 248 of file Renderer.h.
|
inline |
Definition at line 278 of file Renderer.h.
void CRenderer::SetViewport | ( | const SViewPort & | vp | ) |
Definition at line 1687 of file Renderer.cpp.
|
protectedvirtual |
Submit a terrain patch that is part of the scene.
Implements SceneCollector.
Definition at line 1692 of file Renderer.cpp.
|
protectedvirtual |
Submit a line-based overlay.
Implements SceneCollector.
Definition at line 1697 of file Renderer.cpp.
|
protectedvirtual |
Submit a textured line overlay.
Implements SceneCollector.
Definition at line 1702 of file Renderer.cpp.
|
protectedvirtual |
|
protectedvirtual |
Submit a textured quad overlay.
Implements SceneCollector.
Definition at line 1712 of file Renderer.cpp.
|
protectedvirtual |
|
protectedvirtual |
|
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.
|
friend |
Definition at line 326 of file Renderer.h.
|
friend |
Definition at line 325 of file Renderer.h.
|
friend |
Definition at line 323 of file Renderer.h.
|
friend |
Definition at line 324 of file Renderer.h.
|
friend |
Definition at line 327 of file Renderer.h.
|
friend |
Definition at line 332 of file Renderer.h.
|
friend |
Definition at line 334 of file Renderer.h.
|
friend |
Definition at line 328 of file Renderer.h.
|
friend |
Definition at line 329 of file Renderer.h.
|
friend |
Definition at line 331 of file Renderer.h.
|
friend |
Definition at line 335 of file Renderer.h.
|
friend |
Definition at line 333 of file Renderer.h.
|
friend |
Definition at line 330 of file Renderer.h.
|
friend |
Definition at line 336 of file Renderer.h.
|
protected |
Private data that is not needed by inline functions.
Definition at line 384 of file Renderer.h.
struct { ... } CRenderer::m_AlphaMapCoords[NumAlphaMaps] |
|
protected |
Definition at line 424 of file Renderer.h.
|
protected |
Definition at line 414 of file Renderer.h.
|
protected |
m_CullCamera: determines the frustum for culling and shadowmap calculations
Definition at line 408 of file Renderer.h.
|
protected |
Definition at line 411 of file Renderer.h.
|
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.
|
protected |
Enable rendering of terrain tile priority text overlay, for debugging.
Definition at line 452 of file Renderer.h.
|
protected |
Definition at line 418 of file Renderer.h.
|
protected |
Definition at line 388 of file Renderer.h.
|
protected |
Definition at line 416 of file Renderer.h.
|
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.
|
protected |
m_SkyManager: the SkyManager object used for sky textures and settings
Definition at line 439 of file Renderer.h.
|
protected |
Definition at line 428 of file Renderer.h.
|
protected |
Definition at line 394 of file Renderer.h.
|
protected |
Definition at line 390 of file Renderer.h.
|
protected |
m_ViewCamera: determines the eye position for rendering
Definition at line 401 of file Renderer.h.
|
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.
|
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.