~baltix/+junk/irrlicht-test

« back to all changes in this revision

Viewing changes to include/ILightManager.h

  • Committer: Mantas Kriaučiūnas
  • Date: 2011-07-18 13:06:25 UTC
  • Revision ID: mantas@akl.lt-20110718130625-c5pvifp61e7kj1ol
Included whole irrlicht SVN libraries to work around launchpad recipe issue with quilt, see https://answers.launchpad.net/launchpad/+question/165193

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
// Written by Colin MacDonald - all rights assigned to Nikolaus Gebhardt
 
2
// Copyright (C) 2008-2011 Nikolaus Gebhardt
 
3
// This file is part of the "Irrlicht Engine".
 
4
// For conditions of distribution and use, see copyright notice in irrlicht.h
 
5
 
 
6
#ifndef __I_LIGHT_MANAGER_H_INCLUDED__
 
7
#define __I_LIGHT_MANAGER_H_INCLUDED__
 
8
 
 
9
#include "IReferenceCounted.h"
 
10
#include "irrArray.h"
 
11
 
 
12
namespace irr
 
13
{
 
14
namespace scene
 
15
{
 
16
        class ILightSceneNode;
 
17
 
 
18
        //! ILightManager provides an interface for user applications to manipulate the list of lights in the scene.
 
19
        /** The light list can be trimmed or re-ordered before device/ hardware
 
20
        lights are created, and/or individual lights can be switched on and off
 
21
        before or after each scene node is rendered. It is assumed that the
 
22
        ILightManager implementation will store any data that it wishes to
 
23
        retain, i.e. the ISceneManager to which it is assigned, the lightList,
 
24
        the current render pass, and the current scene node. */
 
25
        class ILightManager : public IReferenceCounted
 
26
        {
 
27
        public:
 
28
                //! Called after the scene's light list has been built, but before rendering has begun.
 
29
                /** As actual device/hardware lights are not created until the
 
30
                ESNRP_LIGHT render pass, this provides an opportunity for the
 
31
                light manager to trim or re-order the light list, before any
 
32
                device/hardware lights have actually been created.
 
33
                \param lightList: the Scene Manager's light list, which
 
34
                the light manager may modify. This reference will remain valid
 
35
                until OnPostRender().
 
36
                */
 
37
                virtual void OnPreRender(core::array<ISceneNode*> & lightList) = 0;
 
38
 
 
39
                //! Called after the last scene node is rendered.
 
40
                /** After this call returns, the lightList passed to OnPreRender() becomes invalid. */
 
41
                virtual void OnPostRender(void) = 0;
 
42
 
 
43
                //! Called before a render pass begins
 
44
                /** \param renderPass: the render pass that's about to begin */
 
45
                virtual void OnRenderPassPreRender(E_SCENE_NODE_RENDER_PASS renderPass) = 0;
 
46
 
 
47
                //! Called after the render pass specified in OnRenderPassPreRender() ends
 
48
                /** \param[in] renderPass: the render pass that has finished */
 
49
                virtual void OnRenderPassPostRender(E_SCENE_NODE_RENDER_PASS renderPass) = 0;
 
50
 
 
51
                //! Called before the given scene node is rendered
 
52
                /** \param[in] node: the scene node that's about to be rendered */
 
53
                virtual void OnNodePreRender(ISceneNode* node) = 0;
 
54
 
 
55
                //! Called after the the node specified in OnNodePreRender() has been rendered
 
56
                /** \param[in] node: the scene node that has just been rendered */
 
57
                virtual void OnNodePostRender(ISceneNode* node) = 0;
 
58
        };
 
59
} // end namespace scene
 
60
} // end namespace irr
 
61
 
 
62
#endif