Nirtcpp 2.1.0
Nirtcpp is a high-performance c++ graphics engine.
Loading...
Searching...
No Matches
nirt::scene::ILightManager Class Reference

ILightManager provides an interface for user applications to manipulate the list of lights in the scene. More...

#include <nirtcpp/core/engine/ILightManager.hpp>

Inheritance diagram for nirt::scene::ILightManager:
Inheritance graph
Collaboration diagram for nirt::scene::ILightManager:
Collaboration graph

Public Member Functions

virtual void OnPreRender (core::array< ISceneNode * > &lightList)
 Called after the scene's light list has been built, but before rendering has begun.
 
virtual void OnPostRender (void)
 Called after the last scene node is rendered.
 
virtual void OnRenderPassPreRender (E_SCENE_NODE_RENDER_PASS renderPass)
 Called before a render pass begins.
 
virtual void OnRenderPassPostRender (E_SCENE_NODE_RENDER_PASS renderPass)
 Called after the render pass specified in OnRenderPassPreRender() ends.
 
virtual void OnNodePreRender (ISceneNode *node)
 Called before the given scene node is rendered.
 
virtual void OnNodePostRender (ISceneNode *node)
 Called after the the node specified in OnNodePreRender() has been rendered.
 
- Public Member Functions inherited from nirt::IReferenceCounted
 IReferenceCounted ()
 Constructor.
 
virtual ~IReferenceCounted ()
 Destructor.
 
void grab () const
 Grabs the object. Increments the reference counter by one.
 
bool drop () const
 Drops the object. Decrements the reference counter by one.
 
s32 getReferenceCount () const
 Get the reference count.
 
const c8getDebugName () const
 Returns the debug name of the object.
 

Additional Inherited Members

- Protected Member Functions inherited from nirt::IReferenceCounted
void setDebugName (const c8 *newName)
 Sets the debug name of the object.
 

Detailed Description

ILightManager provides an interface for user applications to manipulate the list of lights in the scene.

The light list can be trimmed or re-ordered before device/ hardware lights are created, and/or individual lights can be switched on and off before or after each scene node is rendered. It is assumed that the ILightManager implementation will store any data that it wishes to retain, i.e. the ISceneManager to which it is assigned, the lightList, the current render pass, and the current scene node.

It can also be useful for shaders as it allows finding out the currently rendered SceneNode.

Member Function Documentation

◆ OnNodePostRender()

virtual void nirt::scene::ILightManager::OnNodePostRender ( ISceneNode node)
inlinevirtual

Called after the the node specified in OnNodePreRender() has been rendered.

Parameters
[in]nodethe scene node that has just been rendered

◆ OnNodePreRender()

virtual void nirt::scene::ILightManager::OnNodePreRender ( ISceneNode node)
inlinevirtual

Called before the given scene node is rendered.

Parameters
[in]nodethe scene node that's about to be rendered

◆ OnPostRender()

virtual void nirt::scene::ILightManager::OnPostRender ( void  )
inlinevirtual

Called after the last scene node is rendered.

After this call returns, the lightList passed to OnPreRender() becomes invalid.

◆ OnPreRender()

virtual void nirt::scene::ILightManager::OnPreRender ( core::array< ISceneNode * > &  lightList)
inlinevirtual

Called after the scene's light list has been built, but before rendering has begun.

As actual device/hardware lights are not created until the ESNRP_LIGHT render pass, this provides an opportunity for the light manager to trim or re-order the light list, before any device/hardware lights have actually been created.

Parameters
lightListthe Scene Manager's light list, which the light manager may modify. This reference will remain valid until OnPostRender().

◆ OnRenderPassPostRender()

virtual void nirt::scene::ILightManager::OnRenderPassPostRender ( E_SCENE_NODE_RENDER_PASS  renderPass)
inlinevirtual

Called after the render pass specified in OnRenderPassPreRender() ends.

Parameters
[in]renderPassthe render pass that has finished

◆ OnRenderPassPreRender()

virtual void nirt::scene::ILightManager::OnRenderPassPreRender ( E_SCENE_NODE_RENDER_PASS  renderPass)
inlinevirtual

Called before a render pass begins.

Parameters
renderPassthe render pass that's about to begin

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

Nirtcpp    @cppfx.xyz

Esvcpp    esv::print