SO3Engine
include
SO3Renderer
SO3CompositorLogic.h
Go to the documentation of this file.
1
/*
2
-----------------------------------------------------------------------------
3
This source file is part of OpenSpace3D
4
For the latest info, see http://www.openspace3d.com
5
6
Copyright (c) 2012 I-maginer
7
8
This program is free software; you can redistribute it and/or modify it under
9
the terms of the GNU Lesser General Public License as published by the Free Software
10
Foundation; either version 2 of the License, or (at your option) any later
11
version.
12
13
This program is distributed in the hope that it will be useful, but WITHOUT
14
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
15
FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
16
17
You should have received a copy of the GNU Lesser General Public License along with
18
this program; if not, write to the Free Software Foundation, Inc., 59 Temple
19
Place - Suite 330, Boston, MA 02111-1307, USA, or go to
20
http://www.gnu.org/copyleft/lesser.txt
21
22
-----------------------------------------------------------------------------
23
*/
24
28
#ifndef __SO3_COMPOSITOR_LOGIC_H__
29
#define __SO3_COMPOSITOR_LOGIC_H__
30
31
#include "
SCOLBasic/SO3Prerequisites.h
"
32
#include "OgreCompositorLogic.h"
33
34
namespace
SO3
35
{
36
40
class
SCompositorListenerFactoryLogic
:
public
Ogre::CompositorLogic
41
{
42
public
:
44
virtual
void
compositorInstanceCreated
(Ogre::CompositorInstance* newInstance)
45
{
46
Ogre::CompositorInstance::Listener* listener =
createListener
(newInstance);
47
newInstance->addListener(listener);
48
mListeners[newInstance] = listener;
49
}
50
52
virtual
void
compositorInstanceDestroyed
(Ogre::CompositorInstance* destroyedInstance)
53
{
54
destroyedInstance->removeListener(mListeners[destroyedInstance]);
55
delete
mListeners[destroyedInstance];
56
mListeners.erase(destroyedInstance);
57
}
58
protected
:
59
//This is the method that implementations will need to override
60
virtual
Ogre::CompositorInstance::Listener*
createListener
(Ogre::CompositorInstance* instance) = 0;
61
private
:
62
typedef
std::map<Ogre::CompositorInstance*, Ogre::CompositorInstance::Listener*> ListenerMap;
63
ListenerMap mListeners;
64
65
};
66
67
}
68
69
#endif
SO3Prerequisites.h
librairies include
SO3::SCompositorListenerFactoryLogic
Definition
SO3CompositorLogic.h:41
SO3::SCompositorListenerFactoryLogic::createListener
virtual Ogre::CompositorInstance::Listener * createListener(Ogre::CompositorInstance *instance)=0
SO3::SCompositorListenerFactoryLogic::compositorInstanceDestroyed
virtual void compositorInstanceDestroyed(Ogre::CompositorInstance *destroyedInstance)
Definition
SO3CompositorLogic.h:52
SO3::SCompositorListenerFactoryLogic::compositorInstanceCreated
virtual void compositorInstanceCreated(Ogre::CompositorInstance *newInstance)
Definition
SO3CompositorLogic.h:44
SO3
Definition
SO3DataScol.h:38
Generated by
1.9.8