|  | 
|  | Renderer (Context *context) | 
|  | Construct. 
 | 
|  | 
|  | ~Renderer () override | 
|  | Destruct. 
 | 
|  | 
| void | SetNumViewports (unsigned num) | 
|  | 
| void | SetViewport (unsigned index, Viewport *viewport) | 
|  | 
| void | SetDefaultRenderPath (RenderPath *renderPath) | 
|  | 
| void | SetDefaultRenderPath (XMLFile *xmlFile) | 
|  | Set default renderpath from an XML file. 
 | 
|  | 
| void | SetDefaultTechnique (Technique *technique) | 
|  | 
| void | SetHDRRendering (bool enable) | 
|  | 
| void | SetSpecularLighting (bool enable) | 
|  | 
| void | SetTextureAnisotropy (int level) | 
|  | 
| void | SetTextureFilterMode (TextureFilterMode mode) | 
|  | 
| void | SetTextureQuality (MaterialQuality quality) | 
|  | 
| void | SetMaterialQuality (MaterialQuality quality) | 
|  | 
| void | SetDrawShadows (bool enable) | 
|  | 
| void | SetShadowMapSize (int size) | 
|  | 
| void | SetShadowQuality (ShadowQuality quality) | 
|  | 
| void | SetShadowSoftness (float shadowSoftness) | 
|  | 
| void | SetVSMShadowParameters (float minVariance, float lightBleedingReduction) | 
|  | Set shadow parameters when VSM is used, they help to reduce light bleeding. LightBleeding must be in [0, 1]. 
 | 
|  | 
| void | SetVSMMultiSample (int multiSample) | 
|  | 
| void | SetShadowMapFilter (Object *instance, ShadowMapFilter functionPtr) | 
|  | 
| void | SetReuseShadowMaps (bool enable) | 
|  | 
| void | SetMaxShadowMaps (int shadowMaps) | 
|  | 
| void | SetDynamicInstancing (bool enable) | 
|  | 
| void | SetNumExtraInstancingBufferElements (int elements) | 
|  | 
| void | SetMinInstances (int instances) | 
|  | 
| void | SetMaxSortedInstances (int instances) | 
|  | 
| void | SetMaxOccluderTriangles (int triangles) | 
|  | 
| void | SetOcclusionBufferSize (int size) | 
|  | 
| void | SetOccluderSizeThreshold (float screenSize) | 
|  | 
| void | SetThreadedOcclusion (bool enable) | 
|  | 
| void | SetMobileShadowBiasMul (float mul) | 
|  | 
| void | SetMobileShadowBiasAdd (float add) | 
|  | 
| void | SetMobileNormalOffsetMul (float mul) | 
|  | 
| void | ReloadShaders () | 
|  | Force reload of shaders. 
 | 
|  | 
| void | ApplyShadowMapFilter (View *view, Texture2D *shadowMap, float blurScale) | 
|  | Apply post processing filter to the shadow map. Called by View. 
 | 
|  | 
| unsigned | GetNumViewports () const | 
|  | 
| Viewport * | GetViewport (unsigned index) const | 
|  | 
| Viewport * | GetViewportForScene (Scene *scene, unsigned index) const | 
|  | Return nth backbuffer viewport associated to a scene. Index 0 returns the first. 
 | 
|  | 
| RenderPath * | GetDefaultRenderPath () const | 
|  | 
| Technique * | GetDefaultTechnique () const | 
|  | 
| bool | GetHDRRendering () const | 
|  | 
| bool | GetSpecularLighting () const | 
|  | 
| bool | GetDrawShadows () const | 
|  | 
| int | GetTextureAnisotropy () const | 
|  | 
| TextureFilterMode | GetTextureFilterMode () const | 
|  | 
| MaterialQuality | GetTextureQuality () const | 
|  | 
| MaterialQuality | GetMaterialQuality () const | 
|  | 
| int | GetShadowMapSize () const | 
|  | 
| ShadowQuality | GetShadowQuality () const | 
|  | 
| float | GetShadowSoftness () const | 
|  | 
| Vector2 | GetVSMShadowParameters () const | 
|  | 
| int | GetVSMMultiSample () const | 
|  | 
| bool | GetReuseShadowMaps () const | 
|  | 
| int | GetMaxShadowMaps () const | 
|  | 
| bool | GetDynamicInstancing () const | 
|  | 
| int | GetNumExtraInstancingBufferElements () const | 
|  | 
| int | GetMinInstances () const | 
|  | 
| int | GetMaxSortedInstances () const | 
|  | 
| int | GetMaxOccluderTriangles () const | 
|  | 
| int | GetOcclusionBufferSize () const | 
|  | 
| float | GetOccluderSizeThreshold () const | 
|  | 
| bool | GetThreadedOcclusion () const | 
|  | 
| float | GetMobileShadowBiasMul () const | 
|  | 
| float | GetMobileShadowBiasAdd () const | 
|  | 
| float | GetMobileNormalOffsetMul () const | 
|  | 
| unsigned | GetNumViews () const | 
|  | 
| unsigned | GetNumPrimitives () const | 
|  | 
| unsigned | GetNumBatches () const | 
|  | 
| unsigned | GetNumGeometries (bool allViews=false) const | 
|  | 
| unsigned | GetNumLights (bool allViews=false) const | 
|  | 
| unsigned | GetNumShadowMaps (bool allViews=false) const | 
|  | 
| unsigned | GetNumOccluders (bool allViews=false) const | 
|  | 
| Zone * | GetDefaultZone () const | 
|  | 
| Material * | GetDefaultMaterial () const | 
|  | 
| Texture2D * | GetDefaultLightRamp () const | 
|  | 
| Texture2D * | GetDefaultLightSpot () const | 
|  | 
| 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(). 
 | 
|  | 
| 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, int multiSample, bool autoResolve, 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.  More... 
 | 
|  | 
| RenderSurface * | GetDepthStencil (int width, int height, int multiSample, bool autoResolve) | 
|  | 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 *camera) | 
|  | Mark a view as prepared by the specified culling camera. 
 | 
|  | 
| View * | GetPreparedView (Camera *camera) | 
|  | 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, const BatchQueue &queue) | 
|  | Choose shaders for a forward rendering batch. The related batch queue is provided in case it has extra shader compilation defines. 
 | 
|  | 
| 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 | 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. 
 | 
|  | 
|  | Object (Context *context) | 
|  | Construct. 
 | 
|  | 
|  | ~Object () override | 
|  | Destruct. Clean up self from event sender & receiver structures. 
 | 
|  | 
| virtual StringHash | GetType () const =0 | 
|  | 
| virtual const String & | GetTypeName () const =0 | 
|  | 
| 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. 
 | 
|  | 
| template<typename T > | 
| T * | Cast () | 
|  | Cast the object to specified most derived class. 
 | 
|  | 
| template<typename T > | 
| const T * | Cast () const | 
|  | Cast the object to specified most derived 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 | SubscribeToEvent (StringHash eventType, const std::function< void(StringHash, VariantMap &)> &function, void *userData=nullptr) | 
|  | Subscribe to an event that can be sent by any sender. 
 | 
|  | 
| void | SubscribeToEvent (Object *sender, StringHash eventType, const std::function< void(StringHash, VariantMap &)> &function, void *userData=nullptr) | 
|  | 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. 
 | 
|  | 
| VariantMap & | GetEventDataMap () const | 
|  | Return a preallocated map for event data. Used for optimization to avoid constant re-allocation of event data maps. 
 | 
|  | 
| template<typename... Args> | 
| void | SendEvent (StringHash eventType, Args... args) | 
|  | Send event with variadic parameter pairs to all subscribers. The parameter pairs is a list of paramID and paramValue separated by comma, one pair after another. 
 | 
|  | 
| Context * | GetContext () const | 
|  | Return execution context. 
 | 
|  | 
| const Variant & | GetGlobalVar (StringHash key) const | 
|  | 
| const VariantMap & | GetGlobalVars () const | 
|  | 
| void | SetGlobalVar (StringHash key, const Variant &value) | 
|  | 
| 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 | 
|  | 
| void | SetBlockEvents (bool block) | 
|  | Block object from sending and receiving events. 
 | 
|  | 
| bool | GetBlockEvents () const | 
|  | Return sending and receiving events blocking status. 
 | 
|  | 
|  | 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. 
 | 
|  | 
|  | RefCounted (const RefCounted &rhs)=delete | 
|  | Prevent copy construction. 
 | 
|  | 
| RefCounted & | operator= (const RefCounted &rhs)=delete | 
|  | Prevent assignment. 
 | 
|  | 
| void | AddRef () | 
|  | 
| void | ReleaseRef () | 
|  | 
| int | Refs () const | 
|  | 
| int | WeakRefs () const | 
|  | 
| RefCount * | RefCountPtr () | 
|  | Return pointer to the reference count structure. 
 | 
|  | 
|  | 
| WeakPtr< Graphics > | graphics_ | 
|  | Graphics subsystem. 
 | 
|  | 
| SharedPtr< RenderPath > | defaultRenderPath_ | 
|  | Default renderpath. 
 | 
|  | 
| SharedPtr< Technique > | defaultTechnique_ | 
|  | Default non-textured material technique. 
 | 
|  | 
| 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. 
 | 
|  | 
| Object * | shadowMapFilterInstance_ {} | 
|  | Instance of shadow map filter. 
 | 
|  | 
| ShadowMapFilter | shadowMapFilter_ {} | 
|  | Function pointer of shadow map filter. 
 | 
|  | 
| HashMap< unsigned long long, Vector< SharedPtr< Texture > > > | screenBuffers_ | 
|  | Screen buffers by resolution and format. 
 | 
|  | 
| HashMap< unsigned long long, unsigned > | screenBufferAllocations_ | 
|  | Current screen buffer allocations by resolution and format. 
 | 
|  | 
| 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_ {4} | 
|  | Texture anisotropy level. 
 | 
|  | 
| TextureFilterMode | textureFilterMode_ {FILTER_TRILINEAR} | 
|  | Texture filtering mode. 
 | 
|  | 
| MaterialQuality | textureQuality_ {QUALITY_HIGH} | 
|  | Texture quality level. 
 | 
|  | 
| MaterialQuality | materialQuality_ {QUALITY_HIGH} | 
|  | Material quality level. 
 | 
|  | 
| int | shadowMapSize_ {1024} | 
|  | Shadow map resolution. 
 | 
|  | 
| ShadowQuality | shadowQuality_ {SHADOWQUALITY_PCF_16BIT} | 
|  | Shadow quality. 
 | 
|  | 
| float | shadowSoftness_ {1.0f} | 
|  | Shadow softness, only works when SHADOWQUALITY_BLUR_VSM is used. 
 | 
|  | 
| Vector2 | vsmShadowParams_ {0.0000001f, 0.9f} | 
|  | Shadow parameters when VSM is used, they help to reduce light bleeding. 
 | 
|  | 
| int | vsmMultiSample_ {1} | 
|  | Multisample level for VSM shadows. 
 | 
|  | 
| int | maxShadowMaps_ {1} | 
|  | Maximum number of shadow maps per resolution. 
 | 
|  | 
| int | minInstances_ {2} | 
|  | Minimum number of instances required in a batch group to render as instanced. 
 | 
|  | 
| int | maxSortedInstances_ {1000} | 
|  | Maximum sorted instances per batch group. 
 | 
|  | 
| int | maxOccluderTriangles_ {5000} | 
|  | Maximum occluder triangles. 
 | 
|  | 
| int | occlusionBufferSize_ {256} | 
|  | Occlusion buffer width. 
 | 
|  | 
| float | occluderSizeThreshold_ {0.025f} | 
|  | Occluder screen size threshold. 
 | 
|  | 
| float | mobileShadowBiasMul_ {1.0f} | 
|  | Mobile platform shadow depth bias multiplier. 
 | 
|  | 
| float | mobileShadowBiasAdd_ {} | 
|  | Mobile platform shadow depth bias addition. 
 | 
|  | 
| float | mobileNormalOffsetMul_ {1.0f} | 
|  | Mobile platform shadow normal offset multiplier. 
 | 
|  | 
| 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_ {M_MAX_UNSIGNED} | 
|  | Frame number on which shaders last changed. 
 | 
|  | 
| unsigned char | lightStencilValue_ {} | 
|  | Current stencil value for light optimization. 
 | 
|  | 
| bool | hdrRendering_ {} | 
|  | HDR rendering flag. 
 | 
|  | 
| bool | specularLighting_ {true} | 
|  | Specular lighting flag. 
 | 
|  | 
| bool | drawShadows_ {true} | 
|  | Draw shadows flag. 
 | 
|  | 
| bool | reuseShadowMaps_ {true} | 
|  | Shadow map reuse flag. 
 | 
|  | 
| bool | dynamicInstancing_ {true} | 
|  | Dynamic instancing flag. 
 | 
|  | 
| int | numExtraInstancingBufferElements_ {} | 
|  | Number of extra instancing data elements. 
 | 
|  | 
| bool | threadedOcclusion_ {} | 
|  | Threaded occlusion rendering flag. 
 | 
|  | 
| bool | shadersDirty_ {true} | 
|  | Shaders need reloading flag. 
 | 
|  | 
| bool | initialized_ {} | 
|  | Initialized flag. 
 | 
|  | 
| bool | resetViews_ {} | 
|  | Flag for views needing reset. 
 | 
|  |