27 #ifndef _CEGUIRenderEffectManager_h_
28 #define _CEGUIRenderEffectManager_h_
30 #include "CEGUI/Singleton.h"
31 #include "CEGUI/IteratorBase.h"
32 #include "CEGUI/Logger.h"
33 #include "CEGUI/Exceptions.h"
34 #include "CEGUI/RenderEffectFactory.h"
38 # pragma warning(push)
39 # pragma warning(disable : 4251)
50 class CEGUIEXPORT RenderEffectManager :
51 public Singleton<RenderEffectManager>,
52 public AllocatedObject<RenderEffectManager>
56 typedef std::map<String, RenderEffectFactory*, StringFastLessCompare
57 CEGUI_MAP_ALLOC(String, RenderEffectFactory*)> RenderEffectRegistry;
60 typedef std::map<RenderEffect*, RenderEffectFactory*, std::less<RenderEffect*>
61 CEGUI_MAP_ALLOC(RenderEffect*, RenderEffectFactory*)> EffectCreatorMap;
64 RenderEffectRegistry d_effectRegistry;
66 EffectCreatorMap d_effects;
70 typedef ConstMapIterator<RenderEffectRegistry> RenderEffectIterator;
73 RenderEffectManager();
99 void addEffect(
const String& name);
117 void removeEffect(
const String& name);
131 bool isEffectAvailable(
const String& name)
const;
176 template <
typename T>
181 "A RenderEffect is already registered under the name '" +
187 Logger::getSingleton().logEvent(
188 "Registered RenderEffect named '" + name +
"'");
196 #if defined(_MSC_VER)
197 # pragma warning(pop)
200 #endif // end of guard _CEGUIRenderEffectManager_h_