diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/libjin/audio/SDL/je_sdl_audio.cpp | 2 | ||||
-rw-r--r-- | src/libjin/audio/SDL/je_sdl_audio.h | 24 | ||||
-rw-r--r-- | src/libjin/audio/je_audio_manager.h | 28 | ||||
-rw-r--r-- | src/libjin/common/je_singleton.hpp | 16 | ||||
-rw-r--r-- | src/libjin/common/je_subsystem.hpp | 12 | ||||
-rw-r--r-- | src/libjin/game/je_application.cpp | 2 | ||||
-rw-r--r-- | src/libjin/game/je_application.h | 12 | ||||
-rw-r--r-- | src/libjin/graphics/je_window.cpp | 2 | ||||
-rw-r--r-- | src/libjin/graphics/je_window.h | 25 | ||||
-rw-r--r-- | src/libjin/graphics/shaders/je_jsl_compiler.h | 1 | ||||
-rw-r--r-- | src/libjin/input/je_mouse.h | 11 | ||||
-rw-r--r-- | src/libjin/net/je_net_manager.cpp | 2 | ||||
-rw-r--r-- | src/libjin/net/je_net_manager.h | 8 |
13 files changed, 63 insertions, 82 deletions
diff --git a/src/libjin/audio/SDL/je_sdl_audio.cpp b/src/libjin/audio/SDL/je_sdl_audio.cpp index c21d077..b89e8d3 100644 --- a/src/libjin/audio/SDL/je_sdl_audio.cpp +++ b/src/libjin/audio/SDL/je_sdl_audio.cpp @@ -31,7 +31,7 @@ namespace JinEngine audio->unlock(); } - /*call only once*/ bool SDLAudio::initSystem(const SettingBase* s) + /*call only once*/ bool SDLAudio::startSystem(const SettingBase* s) { jin_log_info("Initialize audio system."); diff --git a/src/libjin/audio/SDL/je_sdl_audio.h b/src/libjin/audio/SDL/je_sdl_audio.h index 77162d4..4263767 100644 --- a/src/libjin/audio/SDL/je_sdl_audio.h +++ b/src/libjin/audio/SDL/je_sdl_audio.h @@ -37,6 +37,16 @@ namespace JinEngine }; /// + /// SDL audio constructor. + /// + SDLAudio() {}; + + /// + /// SDL audio destructor. + /// + ~SDLAudio() {}; + + /// /// Play all sources whose state is playing. /// void play() override; @@ -100,24 +110,12 @@ namespace JinEngine void unlock(); private: - singleton(SDLAudio); - - /// - /// SDL audio constructor. - /// - SDLAudio() {}; - - /// - /// SDL audio destructor. - /// - ~SDLAudio() {}; - /// /// Initialize audio system. /// /// @param setting Audio setting. /// - bool initSystem(const SettingBase* setting) override; + bool startSystem(const SettingBase* setting) override; /// /// Quit audio system. diff --git a/src/libjin/audio/je_audio_manager.h b/src/libjin/audio/je_audio_manager.h index 120d38e..e0c7a4b 100644 --- a/src/libjin/audio/je_audio_manager.h +++ b/src/libjin/audio/je_audio_manager.h @@ -34,6 +34,19 @@ namespace JinEngine }; /// + /// AudioManager constructor. + /// + AudioManager() + : volume(1) + , state(State::PLAY) + {}; + + /// + /// AudioManager destructor. + /// + virtual ~AudioManager() {}; + + /// /// Play all sources whose state is playing. /// virtual void play() = 0; @@ -59,21 +72,6 @@ namespace JinEngine virtual void setVolume(float volume) = 0; protected: - singleton(AudioManager); - - /// - /// AudioManager constructor. - /// - AudioManager() - : volume(1) - , state(State::PLAY) - {}; - - /// - /// AudioManager destructor. - /// - virtual ~AudioManager() {}; - float volume; State state; diff --git a/src/libjin/common/je_singleton.hpp b/src/libjin/common/je_singleton.hpp index ba13b80..51dc9c5 100644 --- a/src/libjin/common/je_singleton.hpp +++ b/src/libjin/common/je_singleton.hpp @@ -2,6 +2,7 @@ #define __JE_SINGLETON_H__ #include "je_object.h" +#include "je_exception.h" namespace JinEngine { @@ -38,7 +39,12 @@ namespace JinEngine /// /// Singleton constructor. /// - Singleton() {}; + Singleton() + { + // Check singleton. + if (_instance) + throw Exception("This is a singleton."); + }; /// /// Singleton destructor. @@ -70,12 +76,8 @@ namespace JinEngine /// /// Singleton instance. /// - template<class T> T* Singleton<T>::_instance = nullptr; - - /// - /// Singleton notation. - /// - #define singleton(T) friend Singleton<T> + template<class T> + T* Singleton<T>::_instance = nullptr; } // namespace JinEngine diff --git a/src/libjin/common/je_subsystem.hpp b/src/libjin/common/je_subsystem.hpp index c015bef..0119b74 100644 --- a/src/libjin/common/je_subsystem.hpp +++ b/src/libjin/common/je_subsystem.hpp @@ -32,7 +32,7 @@ namespace JinEngine /// bool init(const SettingBase* setting = nullptr) { - static bool success = initSystem(setting); + static bool success = startSystem(setting); return success; } @@ -46,9 +46,6 @@ namespace JinEngine Singleton<System>::destroy(); } - protected: - singleton(System); - /// /// Subsystem constructor. /// @@ -57,14 +54,13 @@ namespace JinEngine /// /// Subsystem destructor. /// - virtual ~Subsystem() - { - }; + virtual ~Subsystem() {} + protected: /// /// Initializer callback. /// - virtual bool initSystem(const Setting* setting) = 0; + virtual bool startSystem(const Setting* setting) = 0; /// /// Quit subsystem callback. diff --git a/src/libjin/game/je_application.cpp b/src/libjin/game/je_application.cpp index 9460738..1a3c5ed 100644 --- a/src/libjin/game/je_application.cpp +++ b/src/libjin/game/je_application.cpp @@ -59,7 +59,7 @@ namespace JinEngine quitloop:; } - bool Application::initSystem(const SettingBase* setting) + bool Application::startSystem(const SettingBase* setting) { if (setting == nullptr) return false; diff --git a/src/libjin/game/je_application.h b/src/libjin/game/je_application.h index 094de6a..9de6e1c 100644 --- a/src/libjin/game/je_application.h +++ b/src/libjin/game/je_application.h @@ -21,12 +21,14 @@ namespace JinEngine class Application : public Subsystem<Application> { public: - typedef void(*onLoad)(); typedef void(*onEvent)(JinEngine::Input::Event* e); typedef void(*onUpdate)(int dt); typedef void(*onDraw)(); + Application(); + ~Application() {}; + /// /// Game setting. /// @@ -62,12 +64,6 @@ namespace JinEngine }; private: - - Application(); - ~Application() {}; - - singleton(Application); - onEvent _onEvent; onUpdate _onUpdate; onDraw _onDraw; @@ -75,7 +71,7 @@ namespace JinEngine bool _running; - bool initSystem(const SettingBase* setting); + bool startSystem(const SettingBase* setting); void quitSystem(); }; diff --git a/src/libjin/graphics/je_window.cpp b/src/libjin/graphics/je_window.cpp index 492fd22..148f1b9 100644 --- a/src/libjin/graphics/je_window.cpp +++ b/src/libjin/graphics/je_window.cpp @@ -20,7 +20,7 @@ namespace JinEngine namespace Graphics { - bool Window::initSystem(const SettingBase* s) + bool Window::startSystem(const SettingBase* s) { jin_log_info("Initialize window system."); diff --git a/src/libjin/graphics/je_window.h b/src/libjin/graphics/je_window.h index 831f3e6..6e23445 100644 --- a/src/libjin/graphics/je_window.h +++ b/src/libjin/graphics/je_window.h @@ -35,6 +35,16 @@ namespace JinEngine bool resizable; ///< resizable }; + /// + /// + /// + Window() {}; + + /// + /// + /// + virtual ~Window() {}; + /// /// /// @@ -72,23 +82,10 @@ namespace JinEngine private: - // declare a singleton - singleton(Window); - - /// - /// - /// - Window() {}; - - /// - /// - /// - virtual ~Window() {}; - /// /// /// - bool initSystem(const SettingBase* setting) override; + bool startSystem(const SettingBase* setting) override; /// /// diff --git a/src/libjin/graphics/shaders/je_jsl_compiler.h b/src/libjin/graphics/shaders/je_jsl_compiler.h index fb2f8bb..337d389 100644 --- a/src/libjin/graphics/shaders/je_jsl_compiler.h +++ b/src/libjin/graphics/shaders/je_jsl_compiler.h @@ -32,7 +32,6 @@ namespace JinEngine bool compile(const std::string& jsl, std::string* glsl_vertex, std::string* glsl_fragment); private: - singleton(JSLCompiler); }; diff --git a/src/libjin/input/je_mouse.h b/src/libjin/input/je_mouse.h index a4e71fc..d129a07 100644 --- a/src/libjin/input/je_mouse.h +++ b/src/libjin/input/je_mouse.h @@ -19,25 +19,22 @@ namespace JinEngine /// /// /// - void getState(int* x, int* y); + Mouse() {}; /// /// /// - void setVisible(bool visible); - - private: - singleton(Mouse); + ~Mouse() {}; /// /// /// - Mouse() {}; + void getState(int* x, int* y); /// /// /// - ~Mouse() {}; + void setVisible(bool visible); }; diff --git a/src/libjin/net/je_net_manager.cpp b/src/libjin/net/je_net_manager.cpp index c4f822e..7990d99 100644 --- a/src/libjin/net/je_net_manager.cpp +++ b/src/libjin/net/je_net_manager.cpp @@ -5,7 +5,7 @@ namespace JinEngine namespace Net { - bool NetManager::initSystem(const SettingBase* setting) + bool NetManager::startSystem(const SettingBase* setting) { #ifdef _WIN32 #if jin_net == jin_net_tekcos diff --git a/src/libjin/net/je_net_manager.h b/src/libjin/net/je_net_manager.h index 62aa947..4efcd28 100644 --- a/src/libjin/net/je_net_manager.h +++ b/src/libjin/net/je_net_manager.h @@ -17,9 +17,7 @@ namespace JinEngine /// class NetManager : public Subsystem<NetManager> { - protected: - singleton(NetManager); - + public: /// /// /// @@ -33,7 +31,7 @@ namespace JinEngine /// /// /// - bool initSystem(const SettingBase* setting) override; + bool startSystem(const SettingBase* setting) override; /// /// @@ -47,4 +45,4 @@ namespace JinEngine #endif // defined(jin_net) -#endif // __JE_NET_H__ +#endif // __JE_NET_H__
\ No newline at end of file |