diff options
author | Max Horn | 2010-10-13 15:41:34 +0000 |
---|---|---|
committer | Max Horn | 2010-10-13 15:41:34 +0000 |
commit | 9b4d41d2d2a165a95b3b9223f53196fe51c0b14f (patch) | |
tree | 155156c08186657d76bdd9235b60fdafc3633960 /engines/sword25/gfx | |
parent | 8f4f0d16fc4e5cd4803203f2aaeb0ddc99e57204 (diff) | |
download | scummvm-rg350-9b4d41d2d2a165a95b3b9223f53196fe51c0b14f.tar.gz scummvm-rg350-9b4d41d2d2a165a95b3b9223f53196fe51c0b14f.tar.bz2 scummvm-rg350-9b4d41d2d2a165a95b3b9223f53196fe51c0b14f.zip |
SWORD25: Convert object registries to singletons
svn-id: r53431
Diffstat (limited to 'engines/sword25/gfx')
-rw-r--r-- | engines/sword25/gfx/animationtemplateregistry.cpp | 7 | ||||
-rw-r--r-- | engines/sword25/gfx/animationtemplateregistry.h | 14 | ||||
-rw-r--r-- | engines/sword25/gfx/graphicengine.h | 1 | ||||
-rw-r--r-- | engines/sword25/gfx/renderobjectregistry.cpp | 7 | ||||
-rw-r--r-- | engines/sword25/gfx/renderobjectregistry.h | 17 |
5 files changed, 19 insertions, 27 deletions
diff --git a/engines/sword25/gfx/animationtemplateregistry.cpp b/engines/sword25/gfx/animationtemplateregistry.cpp index 6f4af690c6..84ea026ce1 100644 --- a/engines/sword25/gfx/animationtemplateregistry.cpp +++ b/engines/sword25/gfx/animationtemplateregistry.cpp @@ -39,9 +39,12 @@ #include "sword25/gfx/animationtemplateregistry.h" #include "sword25/gfx/animationtemplate.h" -namespace Sword25 { +// TODO: Destroy the singletons when closing the engine; +// even better, turn them into non-singleton members of +// e.g. Sword25Engine. +DECLARE_SINGLETON(Sword25::AnimationTemplateRegistry) -Common::ScopedPtr<AnimationTemplateRegistry> AnimationTemplateRegistry::_instancePtr; +namespace Sword25 { void AnimationTemplateRegistry::logErrorLn(const char *message) const { BS_LOG_ERRORLN(message); diff --git a/engines/sword25/gfx/animationtemplateregistry.h b/engines/sword25/gfx/animationtemplateregistry.h index 9c7140e585..c5308bb124 100644 --- a/engines/sword25/gfx/animationtemplateregistry.h +++ b/engines/sword25/gfx/animationtemplateregistry.h @@ -39,19 +39,17 @@ #include "sword25/kernel/persistable.h" #include "sword25/kernel/objectregistry.h" -#include "common/ptr.h" +#include "common/singleton.h" namespace Sword25 { class AnimationTemplate; -class AnimationTemplateRegistry : public ObjectRegistry<AnimationTemplate>, public Persistable { +class AnimationTemplateRegistry : + public ObjectRegistry<AnimationTemplate>, + public Persistable, + public Common::Singleton<AnimationTemplateRegistry> { public: - static AnimationTemplateRegistry &instance() { - if (!_instancePtr.get()) - _instancePtr.reset(new AnimationTemplateRegistry); - return *_instancePtr.get(); - } virtual bool persist(OutputPersistenceBlock &writer); virtual bool unpersist(InputPersistenceBlock &reader); @@ -59,8 +57,6 @@ public: private: virtual void logErrorLn(const char *message) const; virtual void logWarningLn(const char *message) const; - - static Common::ScopedPtr<AnimationTemplateRegistry> _instancePtr; }; } // End of namespace Sword25 diff --git a/engines/sword25/gfx/graphicengine.h b/engines/sword25/gfx/graphicengine.h index d3443f42f2..857183db32 100644 --- a/engines/sword25/gfx/graphicengine.h +++ b/engines/sword25/gfx/graphicengine.h @@ -46,6 +46,7 @@ // Includes #include "common/array.h" #include "common/rect.h" +#include "common/ptr.h" #include "common/str.h" #include "graphics/surface.h" #include "sword25/kernel/common.h" diff --git a/engines/sword25/gfx/renderobjectregistry.cpp b/engines/sword25/gfx/renderobjectregistry.cpp index edfdbd23a8..347d5fb7cd 100644 --- a/engines/sword25/gfx/renderobjectregistry.cpp +++ b/engines/sword25/gfx/renderobjectregistry.cpp @@ -34,14 +34,15 @@ #include "sword25/gfx/renderobjectregistry.h" -#include "common/ptr.h" +// TODO: Destroy the singletons when closing the engine; +// even better, turn them into non-singleton members of +// e.g. Sword25Engine. +DECLARE_SINGLETON(Sword25::RenderObjectRegistry) namespace Sword25 { #define BS_LOG_PREFIX "RENDEROBJECTREGISTRY" -Common::ScopedPtr<RenderObjectRegistry> RenderObjectRegistry::_instancePtr; - void RenderObjectRegistry::logErrorLn(const char *message) const { BS_LOG_ERRORLN(message); } diff --git a/engines/sword25/gfx/renderobjectregistry.h b/engines/sword25/gfx/renderobjectregistry.h index 416da27f08..ff5d8997ec 100644 --- a/engines/sword25/gfx/renderobjectregistry.h +++ b/engines/sword25/gfx/renderobjectregistry.h @@ -42,7 +42,7 @@ #include "sword25/kernel/common.h" #include "sword25/kernel/objectregistry.h" -#include "common/ptr.h" +#include "common/singleton.h" namespace Sword25 { @@ -56,21 +56,12 @@ class RenderObject; // Klassendeklaration // ----------------------------------------------------------------------------- -class RenderObjectRegistry : public ObjectRegistry<RenderObject> { -public: - static RenderObjectRegistry &instance() { - if (!_instancePtr.get()) - _instancePtr.reset(new RenderObjectRegistry); - return *_instancePtr.get(); - } - - virtual ~RenderObjectRegistry() {} - +class RenderObjectRegistry : + public ObjectRegistry<RenderObject>, + public Common::Singleton<RenderObjectRegistry> { private: virtual void logErrorLn(const char *message) const; virtual void logWarningLn(const char *message) const; - - static Common::ScopedPtr<RenderObjectRegistry> _instancePtr; }; } // End of namespace Sword25 |