Documentation
Public Member Functions |
Static Public Member Functions |
Private Member Functions |
Private Attributes |
List of all members
Urho3D::Renderer Class Reference
High-level rendering subsystem. Manages drawing of 3D views. More...
#include <Renderer.h>
Inheritance diagram for Urho3D::Renderer:
Collaboration diagram for Urho3D::Renderer:
Public Member Functions | |
| Renderer (Context *context) | |
| Construct. | |
| virtual | ~Renderer () |
| Destruct. | |
| void | SetNumViewports (unsigned num) |
| Set number of backbuffer viewports to render. | |
| void | SetViewport (unsigned index, Viewport *viewport) |
| Set a backbuffer viewport. | |
| void | SetDefaultRenderPath (RenderPath *renderPath) |
| Set default renderpath. | |
| void | SetDefaultRenderPath (XMLFile *file) |
| Set default renderpath from an XML file. | |
| void | SetHDRRendering (bool enable) |
| Set HDR rendering on/off. | |
| void | SetSpecularLighting (bool enable) |
| Set specular lighting on/off. | |
| void | SetTextureAnisotropy (int level) |
| Set texture anisotropy. | |
| void | SetTextureFilterMode (TextureFilterMode mode) |
| Set texture filtering. | |
| void | SetTextureQuality (int quality) |
| Set texture quality level. See the QUALITY constants in GraphicsDefs.h. | |
| void | SetMaterialQuality (int quality) |
| Set material quality level. See the QUALITY constants in GraphicsDefs.h. | |
| void | SetDrawShadows (bool enable) |
| Set shadows on/off. | |
| void | SetShadowMapSize (int size) |
| Set shadow map resolution. | |
| void | SetShadowQuality (int quality) |
| Set shadow quality mode. See the SHADOWQUALITY constants in GraphicsDefs.h. | |
| void | SetReuseShadowMaps (bool enable) |
| Set reuse of shadow maps. Default is true. If disabled, also transparent geometry can be shadowed. | |
| void | SetMaxShadowMaps (int shadowMaps) |
| Set maximum number of shadow maps created for one resolution. Only has effect if reuse of shadow maps is disabled. | |
| void | SetDynamicInstancing (bool enable) |
| Set dynamic instancing on/off. | |
| void | SetMinInstances (int instances) |
| Set minimum number of instances required in a batch group to render as instanced. | |
| void | SetMaxSortedInstances (int instances) |
| Set maximum number of sorted instances per batch group. If exceeded, instances are rendered unsorted. | |
| void | SetMaxOccluderTriangles (int triangles) |
| Set maximum number of occluder triangles. | |
| void | SetOcclusionBufferSize (int size) |
| Set occluder buffer width. | |
| void | SetOccluderSizeThreshold (float screenSize) |
| Set required screen size (1.0 = full screen) for occluders. | |
| void | SetThreadedOcclusion (bool enable) |
| Set whether to thread occluder rendering. Default false. | |
| void | SetMobileShadowBiasMul (float mul) |
| Set shadow depth bias multiplier for mobile platforms (OpenGL ES.) No effect on desktops. Default 2. | |
| void | SetMobileShadowBiasAdd (float add) |
| Set shadow depth bias addition for mobile platforms (OpenGL ES.) No effect on desktops. Default 0.0001. | |
| void | ReloadShaders () |
| Force reload of shaders. | |
| unsigned | GetNumViewports () const |
| Return number of backbuffer viewports. | |
| Viewport * | GetViewport (unsigned index) const |
| Return backbuffer viewport by index. | |
| RenderPath * | GetDefaultRenderPath () const |
| Return default renderpath. | |
| bool | GetHDRRendering () const |
| Return whether HDR rendering is enabled. | |
| bool | GetSpecularLighting () const |
| Return whether specular lighting is enabled. | |
| bool | GetDrawShadows () const |
| Return whether drawing shadows is enabled. | |
| int | GetTextureAnisotropy () const |
| Return texture anisotropy. | |
| TextureFilterMode | GetTextureFilterMode () const |
| Return texture filtering. | |
| int | GetTextureQuality () const |
| Return texture quality level. | |
| int | GetMaterialQuality () const |
| Return material quality level. | |
| int | GetShadowMapSize () const |
| Return shadow map resolution. | |
| int | GetShadowQuality () const |
| Return shadow quality. | |
| bool | GetReuseShadowMaps () const |
| Return whether shadow maps are reused. | |
| int | GetMaxShadowMaps () const |
| Return maximum number of shadow maps per resolution. | |
| bool | GetDynamicInstancing () const |
| Return whether dynamic instancing is in use. | |
| int | GetMinInstances () const |
| Return minimum number of instances required in a batch group to render as instanced. | |
| int | GetMaxSortedInstances () const |
| Return maximum number of sorted instances per batch group. | |
| int | GetMaxOccluderTriangles () const |
| Return maximum number of occluder triangles. | |
| int | GetOcclusionBufferSize () const |
| Return occlusion buffer width. | |
| float | GetOccluderSizeThreshold () const |
| Return occluder screen size threshold. | |
| bool | GetThreadedOcclusion () const |
| Return whether occlusion rendering is threaded. | |
| float | GetMobileShadowBiasMul () const |
| Return shadow depth bias multiplier for mobile platforms. | |
| float | GetMobileShadowBiasAdd () const |
| Return shadow depth bias addition for mobile platforms. | |
| unsigned | GetNumViews () const |
| Return number of views rendered. | |
| unsigned | GetNumPrimitives () const |
| Return number of primitives rendered. | |
| unsigned | GetNumBatches () const |
| Return number of batches rendered. | |
| unsigned | GetNumGeometries (bool allViews=false) const |
| Return number of geometries rendered. | |
| unsigned | GetNumLights (bool allViews=false) const |
| Return number of lights rendered. | |
| unsigned | GetNumShadowMaps (bool allViews=false) const |
| Return number of shadow maps rendered. | |
| unsigned | GetNumOccluders (bool allViews=false) const |
| Return number of occluders rendered. | |
| Zone * | GetDefaultZone () const |
| Return the default zone. | |
| Material * | GetDefaultMaterial () const |
| Return the default material. | |
| Texture2D * | GetDefaultLightRamp () const |
| Return the default range attenuation texture. | |
| Texture2D * | GetDefaultLightSpot () const |
| Return the default spotlight attenuation texture. | |
| TextureCube * | GetFaceSelectCubeMap () const |
| Return the shadowed pointlight face selection cube map. | |
| TextureCube * | GetIndirectionCubeMap () const |
| Return the shadowed pointlight indirection cube map. | |
| VertexBuffer * | GetInstancingBuffer () const |
| Return the instancing vertex buffer. | |
| const FrameInfo & | GetFrameInfo () const |
| Return the frame update parameters. | |
| void | Update (float timeStep) |
| Update for rendering. Called by HandleRenderUpdate(). More... | |
| void | Render () |
| Render. Called by Engine. | |
| void | DrawDebugGeometry (bool depthTest) |
| Add debug geometry to the debug renderer. More... | |
| void | QueueRenderSurface (RenderSurface *renderTarget) |
| Queue a render surface's viewports for rendering. Called by the surface, or by View. | |
| void | QueueViewport (RenderSurface *renderTarget, Viewport *viewport) |
| Queue a viewport for rendering. Null surface means backbuffer. | |
| Geometry * | GetLightGeometry (Light *light) |
| Return volume geometry for a light. | |
| Geometry * | GetQuadGeometry () |
| Return quad geometry used in postprocessing. | |
| Texture2D * | GetShadowMap (Light *light, Camera *camera, unsigned viewWidth, unsigned viewHeight) |
| Allocate a shadow map. If shadow map reuse is disabled, a different map is returned each time. More... | |
| Texture * | GetScreenBuffer (int width, int height, unsigned format, bool cubemap, bool filtered, bool srgb, unsigned persistentKey=0) |
| Allocate a rendertarget or depth-stencil texture for deferred rendering or postprocessing. Should only be called during actual rendering, not before. | |
| RenderSurface * | GetDepthStencil (int width, int height) |
| Allocate a depth-stencil surface that does not need to be readable. Should only be called during actual rendering, not before. | |
| OcclusionBuffer * | GetOcclusionBuffer (Camera *camera) |
| Allocate an occlusion buffer. | |
| Camera * | GetShadowCamera () |
| Allocate a temporary shadow camera and a scene node for it. Is thread-safe. | |
| void | StorePreparedView (View *view, Camera *cullCamera) |
| Mark a view as prepared by the specified culling camera. | |
| View * | GetPreparedView (Camera *cullCamera) |
| Return a prepared view if exists for the specified camera. Used to avoid duplicate view preparation CPU work. | |
| void | SetBatchShaders (Batch &batch, Technique *tech, bool allowShadows=true) |
| Choose shaders for a forward rendering batch. | |
| void | SetLightVolumeBatchShaders (Batch &batch, Camera *camera, const String &vsName, const String &psName, const String &vsDefines, const String &psDefines) |
| Choose shaders for a deferred light volume batch. | |
| void | SetCullMode (CullMode mode, Camera *camera) |
| Set cull mode while taking possible projection flipping into account. | |
| bool | ResizeInstancingBuffer (unsigned numInstances) |
| Ensure sufficient size of the instancing vertex buffer. Return true if successful. | |
| void | SaveScreenBufferAllocations () |
| Save the screen buffer allocation status. Called by View. | |
| void | RestoreScreenBufferAllocations () |
| Restore the screen buffer allocation status. Called by View. | |
| void | OptimizeLightByScissor (Light *light, Camera *camera) |
| Optimize a light by scissor rectangle. | |
| void | OptimizeLightByStencil (Light *light, Camera *camera) |
| Optimize a light by marking it to the stencil buffer and setting a stencil test. | |
| const Rect & | GetLightScissor (Light *light, Camera *camera) |
| Return a scissor rectangle for a light. | |
Public Member Functions inherited from Urho3D::Object | |
| Object (Context *context) | |
| Construct. | |
| virtual | ~Object () |
| Destruct. Clean up self from event sender & receiver structures. | |
| virtual StringHash | GetType () const =0 |
| Return type hash. | |
| virtual const String & | GetTypeName () const =0 |
| Return type name. | |
| virtual const TypeInfo * | GetTypeInfo () const =0 |
| Return type info. | |
| virtual void | OnEvent (Object *sender, StringHash eventType, VariantMap &eventData) |
| Handle event. | |
| bool | IsInstanceOf (StringHash type) const |
| Check current instance is type of specified type. | |
| bool | IsInstanceOf (const TypeInfo *typeInfo) const |
| Check current instance is type of specified type. | |
| template<typename T > | |
| bool | IsInstanceOf () const |
| Check current instance is type of specified class. | |
| void | SubscribeToEvent (StringHash eventType, EventHandler *handler) |
| Subscribe to an event that can be sent by any sender. | |
| void | SubscribeToEvent (Object *sender, StringHash eventType, EventHandler *handler) |
| Subscribe to a specific sender's event. | |
| void | UnsubscribeFromEvent (StringHash eventType) |
| Unsubscribe from an event. | |
| void | UnsubscribeFromEvent (Object *sender, StringHash eventType) |
| Unsubscribe from a specific sender's event. | |
| void | UnsubscribeFromEvents (Object *sender) |
| Unsubscribe from a specific sender's events. | |
| void | UnsubscribeFromAllEvents () |
| Unsubscribe from all events. | |
| void | UnsubscribeFromAllEventsExcept (const PODVector< StringHash > &exceptions, bool onlyUserData) |
| Unsubscribe from all events except those listed, and optionally only those with userdata (script registered events.) | |
| void | SendEvent (StringHash eventType) |
| Send event to all subscribers. | |
| void | SendEvent (StringHash eventType, VariantMap &eventData) |
| Send event with parameters to all subscribers. More... | |
| VariantMap & | GetEventDataMap () const |
| Return a preallocated map for event data. Used for optimization to avoid constant re-allocation of event data maps. | |
| Context * | GetContext () const |
| Return execution context. | |
| Object * | GetSubsystem (StringHash type) const |
| Return subsystem by type. | |
| Object * | GetEventSender () const |
| Return active event sender. Null outside event handling. | |
| EventHandler * | GetEventHandler () const |
| Return active event handler. Null outside event handling. | |
| bool | HasSubscribedToEvent (StringHash eventType) const |
| Return whether has subscribed to an event without specific sender. | |
| bool | HasSubscribedToEvent (Object *sender, StringHash eventType) const |
| Return whether has subscribed to a specific sender's event. | |
| bool | HasEventHandlers () const |
| Return whether has subscribed to any event. | |
| template<class T > | |
| T * | GetSubsystem () const |
| Template version of returning a subsystem. | |
| const String & | GetCategory () const |
| Return object category. Categories are (optionally) registered along with the object factory. Return an empty string if the object category is not registered. | |
Public Member Functions inherited from Urho3D::RefCounted | |
| RefCounted () | |
| Construct. Allocate the reference count structure and set an initial self weak reference. | |
| virtual | ~RefCounted () |
| Destruct. Mark as expired and also delete the reference count structure if no outside weak references exist. | |
| void | AddRef () |
| Increment reference count. Can also be called outside of a SharedPtr for traditional reference counting. | |
| void | ReleaseRef () |
| Decrement reference count and delete self if no more references. Can also be called outside of a SharedPtr for traditional reference counting. | |
| int | Refs () const |
| Return reference count. | |
| int | WeakRefs () const |
| Return weak reference count. | |
| RefCount * | RefCountPtr () |
| Return pointer to the reference count structure. | |
Static Public Member Functions | |
| static View * | GetActualView (View *view) |
| Return a view or its source view if it uses one. Used internally for render statistics. | |
Static Public Member Functions inherited from Urho3D::Object | |
| static const TypeInfo * | GetTypeInfoStatic () |
| Return type info static. | |
| static bool | IsTypeOf (StringHash type) |
| Check current type is type of specified type. | |
| static bool | IsTypeOf (const TypeInfo *typeInfo) |
| Check current type is type of specified type. | |
| template<typename T > | |
| static bool | IsTypeOf () |
| Check current type is type of specified class. | |
Private Member Functions | |
| URHO3D_OBJECT (Renderer, Object) | |
| void | Initialize () |
| Initialize when screen mode initially set. | |
| void | LoadShaders () |
| Reload shaders. | |
| void | LoadPassShaders (Pass *pass) |
| Reload shaders for a material pass. | |
| void | ReleaseMaterialShaders () |
| Release shaders used in materials. | |
| void | ReloadTextures () |
| Reload textures. | |
| void | CreateGeometries () |
| Create light volume geometries. | |
| void | CreateInstancingBuffer () |
| Create instancing vertex buffer. | |
| void | SetIndirectionTextureData () |
| Create point light shadow indirection texture data. | |
| void | PrepareViewRender () |
| Prepare for rendering of a new view. | |
| void | RemoveUnusedBuffers () |
| Remove unused occlusion and screen buffers. | |
| void | ResetShadowMapAllocations () |
| Reset shadow map allocation counts. | |
| void | ResetScreenBufferAllocations () |
| Reset screem buffer allocation counts. | |
| void | ResetShadowMaps () |
| Remove all shadow maps. Called when global shadow map resolution or format is changed. | |
| void | ResetBuffers () |
| Remove all occlusion and screen buffers. | |
| void | HandleScreenMode (StringHash eventType, VariantMap &eventData) |
| Handle screen mode event. | |
| void | HandleRenderUpdate (StringHash eventType, VariantMap &eventData) |
| Handle render update event. | |
Private Attributes | |
| WeakPtr< Graphics > | graphics_ |
| Graphics subsystem. | |
| SharedPtr< RenderPath > | defaultRenderPath_ |
| Default renderpath. | |
| SharedPtr< Zone > | defaultZone_ |
| Default zone. | |
| SharedPtr< Geometry > | dirLightGeometry_ |
| Directional light quad geometry. | |
| SharedPtr< Geometry > | spotLightGeometry_ |
| Spot light volume geometry. | |
| SharedPtr< Geometry > | pointLightGeometry_ |
| Point light volume geometry. | |
| SharedPtr< VertexBuffer > | instancingBuffer_ |
| Instance stream vertex buffer. | |
| SharedPtr< Material > | defaultMaterial_ |
| Default material. | |
| SharedPtr< Texture2D > | defaultLightRamp_ |
| Default range attenuation texture. | |
| SharedPtr< Texture2D > | defaultLightSpot_ |
| Default spotlight attenuation texture. | |
| SharedPtr< TextureCube > | faceSelectCubeMap_ |
| Face selection cube map for shadowed pointlights. | |
| SharedPtr< TextureCube > | indirectionCubeMap_ |
| Indirection cube map for shadowed pointlights. | |
| Vector< SharedPtr< Node > > | shadowCameraNodes_ |
| Reusable scene nodes with shadow camera components. | |
|
Vector< SharedPtr < OcclusionBuffer > > | occlusionBuffers_ |
| Reusable occlusion buffers. | |
|
HashMap< int, Vector < SharedPtr< Texture2D > > > | shadowMaps_ |
| Shadow maps by resolution. | |
|
HashMap< int, SharedPtr < Texture2D > > | colorShadowMaps_ |
| Shadow map dummy color buffers by resolution. | |
| HashMap< int, PODVector< Light * > > | shadowMapAllocations_ |
| Shadow map allocations by resolution. | |
|
HashMap< long long, Vector < SharedPtr< Texture > > > | screenBuffers_ |
| Screen buffers by resolution and format. | |
| HashMap< long long, unsigned > | screenBufferAllocations_ |
| Current screen buffer allocations by resolution and format. | |
| HashMap< long long, unsigned > | savedScreenBufferAllocations_ |
| Saved status of screen buffer allocations for restoring. | |
|
HashMap< Pair< Light *, Camera * > , Rect > | lightScissorCache_ |
| Cache for light scissor queries. | |
| Vector< SharedPtr< Viewport > > | viewports_ |
| Backbuffer viewports. | |
|
Vector< Pair< WeakPtr < RenderSurface >, WeakPtr < Viewport > > > | queuedViewports_ |
| Render surface viewports queued for update. | |
| Vector< WeakPtr< View > > | views_ |
| Views that have been processed this frame. | |
|
HashMap< Camera *, WeakPtr < View > > | preparedViews_ |
| Prepared views by culling camera. | |
| HashSet< Octree * > | updatedOctrees_ |
| Octrees that have been updated during the frame. | |
| HashSet< Technique * > | shaderErrorDisplayed_ |
| Techniques for which missing shader error has been displayed. | |
| Mutex | rendererMutex_ |
| Mutex for shadow camera allocation. | |
| Vector< String > | deferredLightPSVariations_ |
| Current variation names for deferred light volume shaders. | |
| FrameInfo | frame_ |
| Frame info for rendering. | |
| int | textureAnisotropy_ |
| Texture anisotropy level. | |
| TextureFilterMode | textureFilterMode_ |
| Texture filtering mode. | |
| int | textureQuality_ |
| Texture quality level. | |
| int | materialQuality_ |
| Material quality level. | |
| int | shadowMapSize_ |
| Shadow map resolution. | |
| int | shadowQuality_ |
| Shadow quality. | |
| int | maxShadowMaps_ |
| Maximum number of shadow maps per resolution. | |
| int | minInstances_ |
| Minimum number of instances required in a batch group to render as instanced. | |
| int | maxSortedInstances_ |
| Maximum sorted instances per batch group. | |
| int | maxOccluderTriangles_ |
| Maximum occluder triangles. | |
| int | occlusionBufferSize_ |
| Occlusion buffer width. | |
| float | occluderSizeThreshold_ |
| Occluder screen size threshold. | |
| float | mobileShadowBiasMul_ |
| Mobile platform shadow depth bias multiplier. | |
| float | mobileShadowBiasAdd_ |
| Mobile platform shadow depth bias addition. | |
| unsigned | numOcclusionBuffers_ |
| Number of occlusion buffers in use. | |
| unsigned | numShadowCameras_ |
| Number of temporary shadow cameras in use. | |
| unsigned | numPrimitives_ |
| Number of primitives (3D geometry only.) | |
| unsigned | numBatches_ |
| Number of batches (3D geometry only.) | |
| unsigned | shadersChangedFrameNumber_ |
| Frame number on which shaders last changed. | |
| unsigned char | lightStencilValue_ |
| Current stencil value for light optimization. | |
| bool | hdrRendering_ |
| HDR rendering flag. | |
| bool | specularLighting_ |
| Specular lighting flag. | |
| bool | drawShadows_ |
| Draw shadows flag. | |
| bool | reuseShadowMaps_ |
| Shadow map reuse flag. | |
| bool | dynamicInstancing_ |
| Dynamic instancing flag. | |
| bool | threadedOcclusion_ |
| Threaded occlusion rendering flag. | |
| bool | shadersDirty_ |
| Shaders need reloading flag. | |
| bool | initialized_ |
| Initialized flag. | |
| bool | resetViews_ |
| Flag for views needing reset. | |
Additional Inherited Members | |
Protected Attributes inherited from Urho3D::Object | |
| Context * | context_ |
| Execution context. | |
Detailed Description
High-level rendering subsystem. Manages drawing of 3D views.
Member Function Documentation
| void Urho3D::Renderer::DrawDebugGeometry | ( | bool | depthTest | ) |
Add debug geometry to the debug renderer.
- Todo:
- Because debug geometry is per-scene, if two cameras show views of the same area, occlusion is not shown correctly
Here is the call graph for this function:
| Texture2D * Urho3D::Renderer::GetShadowMap | ( | Light * | light, |
| Camera * | camera, | ||
| unsigned | viewWidth, | ||
| unsigned | viewHeight | ||
| ) |
Allocate a shadow map. If shadow map reuse is disabled, a different map is returned each time.
- Todo:
- Allow to specify maximum shadow maps per resolution, as smaller shadow maps take less memory
Here is the call graph for this function:
| void Urho3D::Renderer::Update | ( | float | timeStep | ) |
Update for rendering. Called by HandleRenderUpdate().
- Todo:
- May result in incorrect debug geometry culling if the same scene is drawn from multiple viewports
Here is the call graph for this function:
Here is the caller graph for this function:
The documentation for this class was generated from the following files:
- /home/travis/build/urho3d/Urho3D/Source/Urho3D/Graphics/Renderer.h
- /home/travis/build/urho3d/Urho3D/Source/Urho3D/Graphics/Renderer.cpp

Public Member Functions inherited from