Component rename to Module

This commit is contained in:
Nomango 2020-02-14 17:56:50 +08:00
parent 93e97c60c2
commit 72f8fd5e12
27 changed files with 222 additions and 203 deletions

View File

@ -2,7 +2,7 @@
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup> <ItemGroup>
<ClInclude Include="..\..\src\kiwano-audio\libraries.h" /> <ClInclude Include="..\..\src\kiwano-audio\libraries.h" />
<ClInclude Include="..\..\src\kiwano-audio\AudioEngine.h" /> <ClInclude Include="..\..\src\kiwano-audio\AudioModule.h" />
<ClInclude Include="..\..\src\kiwano-audio\kiwano-audio.h" /> <ClInclude Include="..\..\src\kiwano-audio\kiwano-audio.h" />
<ClInclude Include="..\..\src\kiwano-audio\Sound.h" /> <ClInclude Include="..\..\src\kiwano-audio\Sound.h" />
<ClInclude Include="..\..\src\kiwano-audio\SoundPlayer.h" /> <ClInclude Include="..\..\src\kiwano-audio\SoundPlayer.h" />
@ -20,7 +20,7 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ClCompile Include="..\..\src\kiwano-audio\libraries.cpp" /> <ClCompile Include="..\..\src\kiwano-audio\libraries.cpp" />
<ClCompile Include="..\..\src\kiwano-audio\AudioEngine.cpp" /> <ClCompile Include="..\..\src\kiwano-audio\AudioModule.cpp" />
<ClCompile Include="..\..\src\kiwano-audio\Sound.cpp" /> <ClCompile Include="..\..\src\kiwano-audio\Sound.cpp" />
<ClCompile Include="..\..\src\kiwano-audio\SoundPlayer.cpp" /> <ClCompile Include="..\..\src\kiwano-audio\SoundPlayer.cpp" />
<ClCompile Include="..\..\src\kiwano-audio\Transcoder.cpp" /> <ClCompile Include="..\..\src\kiwano-audio\Transcoder.cpp" />
@ -110,4 +110,4 @@
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets"> <ImportGroup Label="ExtensionTargets">
</ImportGroup> </ImportGroup>
</Project> </Project>

View File

@ -2,17 +2,17 @@
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup> <ItemGroup>
<ClInclude Include="..\..\src\kiwano-audio\kiwano-audio.h" /> <ClInclude Include="..\..\src\kiwano-audio\kiwano-audio.h" />
<ClInclude Include="..\..\src\kiwano-audio\AudioEngine.h" />
<ClInclude Include="..\..\src\kiwano-audio\Sound.h" /> <ClInclude Include="..\..\src\kiwano-audio\Sound.h" />
<ClInclude Include="..\..\src\kiwano-audio\SoundPlayer.h" /> <ClInclude Include="..\..\src\kiwano-audio\SoundPlayer.h" />
<ClInclude Include="..\..\src\kiwano-audio\Transcoder.h" /> <ClInclude Include="..\..\src\kiwano-audio\Transcoder.h" />
<ClInclude Include="..\..\src\kiwano-audio\libraries.h" /> <ClInclude Include="..\..\src\kiwano-audio\libraries.h" />
<ClInclude Include="..\..\src\kiwano-audio\AudioModule.h" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ClCompile Include="..\..\src\kiwano-audio\AudioEngine.cpp" />
<ClCompile Include="..\..\src\kiwano-audio\Sound.cpp" /> <ClCompile Include="..\..\src\kiwano-audio\Sound.cpp" />
<ClCompile Include="..\..\src\kiwano-audio\SoundPlayer.cpp" /> <ClCompile Include="..\..\src\kiwano-audio\SoundPlayer.cpp" />
<ClCompile Include="..\..\src\kiwano-audio\Transcoder.cpp" /> <ClCompile Include="..\..\src\kiwano-audio\Transcoder.cpp" />
<ClCompile Include="..\..\src\kiwano-audio\libraries.cpp" /> <ClCompile Include="..\..\src\kiwano-audio\libraries.cpp" />
<ClCompile Include="..\..\src\kiwano-audio\AudioModule.cpp" />
</ItemGroup> </ItemGroup>
</Project> </Project>

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup> <ItemGroup>
<ClInclude Include="..\..\src\kiwano-network\HttpClient.h" /> <ClInclude Include="..\..\src\kiwano-network\HttpModule.h" />
<ClInclude Include="..\..\src\kiwano-network\HttpRequest.h" /> <ClInclude Include="..\..\src\kiwano-network\HttpRequest.h" />
<ClInclude Include="..\..\src\kiwano-network\HttpResponse.hpp" /> <ClInclude Include="..\..\src\kiwano-network\HttpResponse.hpp" />
<ClInclude Include="..\..\src\kiwano-network\kiwano-network.h" /> <ClInclude Include="..\..\src\kiwano-network\kiwano-network.h" />
@ -17,7 +17,7 @@
</ProjectConfiguration> </ProjectConfiguration>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ClCompile Include="..\..\src\kiwano-network\HttpClient.cpp" /> <ClCompile Include="..\..\src\kiwano-network\HttpModule.cpp" />
<ClCompile Include="..\..\src\kiwano-network\HttpRequest.cpp" /> <ClCompile Include="..\..\src\kiwano-network\HttpRequest.cpp" />
</ItemGroup> </ItemGroup>
<PropertyGroup Label="Globals"> <PropertyGroup Label="Globals">

View File

@ -2,12 +2,12 @@
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup> <ItemGroup>
<ClInclude Include="..\..\src\kiwano-network\kiwano-network.h" /> <ClInclude Include="..\..\src\kiwano-network\kiwano-network.h" />
<ClInclude Include="..\..\src\kiwano-network\HttpClient.h" />
<ClInclude Include="..\..\src\kiwano-network\HttpRequest.h" /> <ClInclude Include="..\..\src\kiwano-network\HttpRequest.h" />
<ClInclude Include="..\..\src\kiwano-network\HttpResponse.hpp" /> <ClInclude Include="..\..\src\kiwano-network\HttpResponse.hpp" />
<ClInclude Include="..\..\src\kiwano-network\HttpModule.h" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ClCompile Include="..\..\src\kiwano-network\HttpClient.cpp" />
<ClCompile Include="..\..\src\kiwano-network\HttpRequest.cpp" /> <ClCompile Include="..\..\src\kiwano-network\HttpRequest.cpp" />
<ClCompile Include="..\..\src\kiwano-network\HttpModule.cpp" />
</ItemGroup> </ItemGroup>
</Project> </Project>

View File

@ -39,7 +39,7 @@
<ClInclude Include="..\..\src\kiwano\2d\TextActor.h" /> <ClInclude Include="..\..\src\kiwano\2d\TextActor.h" />
<ClInclude Include="..\..\src\kiwano\2d\Transition.h" /> <ClInclude Include="..\..\src\kiwano\2d\Transition.h" />
<ClInclude Include="..\..\src\kiwano\core\AsyncTask.h" /> <ClInclude Include="..\..\src\kiwano\core\AsyncTask.h" />
<ClInclude Include="..\..\src\kiwano\core\Component.h" /> <ClInclude Include="..\..\src\kiwano\core\Module.h" />
<ClInclude Include="..\..\src\kiwano\core\EventDispatcher.h" /> <ClInclude Include="..\..\src\kiwano\core\EventDispatcher.h" />
<ClInclude Include="..\..\src\kiwano\core\EventListener.h" /> <ClInclude Include="..\..\src\kiwano\core\EventListener.h" />
<ClInclude Include="..\..\src\kiwano\core\Logger.h" /> <ClInclude Include="..\..\src\kiwano\core\Logger.h" />
@ -116,7 +116,7 @@
<ClCompile Include="..\..\src\kiwano\2d\TextActor.cpp" /> <ClCompile Include="..\..\src\kiwano\2d\TextActor.cpp" />
<ClCompile Include="..\..\src\kiwano\2d\Transition.cpp" /> <ClCompile Include="..\..\src\kiwano\2d\Transition.cpp" />
<ClCompile Include="..\..\src\kiwano\core\AsyncTask.cpp" /> <ClCompile Include="..\..\src\kiwano\core\AsyncTask.cpp" />
<ClCompile Include="..\..\src\kiwano\core\Component.cpp" /> <ClCompile Include="..\..\src\kiwano\core\Module.cpp" />
<ClCompile Include="..\..\src\kiwano\core\Director.cpp" /> <ClCompile Include="..\..\src\kiwano\core\Director.cpp" />
<ClCompile Include="..\..\src\kiwano\core\EventDispatcher.cpp" /> <ClCompile Include="..\..\src\kiwano\core\EventDispatcher.cpp" />
<ClCompile Include="..\..\src\kiwano\core\EventListener.cpp" /> <ClCompile Include="..\..\src\kiwano\core\EventListener.cpp" />

View File

@ -42,9 +42,6 @@
<ClInclude Include="..\..\src\kiwano\2d\Transition.h"> <ClInclude Include="..\..\src\kiwano\2d\Transition.h">
<Filter>2d</Filter> <Filter>2d</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="..\..\src\kiwano\core\Component.h">
<Filter>core</Filter>
</ClInclude>
<ClInclude Include="..\..\src\kiwano\core\EventDispatcher.h"> <ClInclude Include="..\..\src\kiwano\core\EventDispatcher.h">
<Filter>core</Filter> <Filter>core</Filter>
</ClInclude> </ClInclude>
@ -303,6 +300,9 @@
<ClInclude Include="..\..\src\kiwano\core\Runner.h"> <ClInclude Include="..\..\src\kiwano\core\Runner.h">
<Filter>core</Filter> <Filter>core</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="..\..\src\kiwano\core\Module.h">
<Filter>core</Filter>
</ClInclude>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ClCompile Include="..\..\src\kiwano\2d\Canvas.cpp"> <ClCompile Include="..\..\src\kiwano\2d\Canvas.cpp">
@ -386,9 +386,6 @@
<ClCompile Include="..\..\src\kiwano\core\ObjectBase.cpp"> <ClCompile Include="..\..\src\kiwano\core\ObjectBase.cpp">
<Filter>core</Filter> <Filter>core</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="..\..\src\kiwano\core\Component.cpp">
<Filter>core</Filter>
</ClCompile>
<ClCompile Include="..\..\src\kiwano\utils\LocalStorage.cpp"> <ClCompile Include="..\..\src\kiwano\utils\LocalStorage.cpp">
<Filter>utils</Filter> <Filter>utils</Filter>
</ClCompile> </ClCompile>
@ -512,5 +509,8 @@
<ClCompile Include="..\..\src\kiwano\render\Layer.cpp"> <ClCompile Include="..\..\src\kiwano\render\Layer.cpp">
<Filter>render</Filter> <Filter>render</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="..\..\src\kiwano\core\Module.cpp">
<Filter>core</Filter>
</ClCompile>
</ItemGroup> </ItemGroup>
</Project> </Project>

View File

@ -2312,7 +2312,7 @@ typedef enum {
/***************************************************************************** /*****************************************************************************
* SetupComponent defines, protos etc for the sharing stuff. * Setup defines, protos etc for the sharing stuff.
*/ */
/* Different data locks for a single share */ /* Different data locks for a single share */

View File

@ -18,7 +18,7 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE. // THE SOFTWARE.
#include <kiwano-audio/AudioEngine.h> #include <kiwano-audio/AudioModule.h>
#include <kiwano-audio/libraries.h> #include <kiwano-audio/libraries.h>
#include <kiwano/core/Logger.h> #include <kiwano/core/Logger.h>
#include <kiwano/core/Exception.h> #include <kiwano/core/Exception.h>
@ -27,15 +27,15 @@ namespace kiwano
{ {
namespace audio namespace audio
{ {
AudioEngine::AudioEngine() AudioModule::AudioModule()
: x_audio2_(nullptr) : x_audio2_(nullptr)
, mastering_voice_(nullptr) , mastering_voice_(nullptr)
{ {
} }
AudioEngine::~AudioEngine() {} AudioModule::~AudioModule() {}
void AudioEngine::SetupComponent() void AudioModule::SetupModule()
{ {
KGE_SYS_LOG("Creating audio resources"); KGE_SYS_LOG("Creating audio resources");
@ -54,7 +54,7 @@ void AudioEngine::SetupComponent()
ThrowIfFailed(hr, "Create audio resources failed"); ThrowIfFailed(hr, "Create audio resources failed");
} }
void AudioEngine::DestroyComponent() void AudioModule::DestroyModule()
{ {
KGE_SYS_LOG("Destroying audio resources"); KGE_SYS_LOG("Destroying audio resources");
@ -73,9 +73,9 @@ void AudioEngine::DestroyComponent()
dlls::MediaFoundation::Get().MFShutdown(); dlls::MediaFoundation::Get().MFShutdown();
} }
bool AudioEngine::CreateSound(Sound& sound, const Transcoder::Buffer& buffer) bool AudioModule::CreateSound(Sound& sound, const Transcoder::Buffer& buffer)
{ {
KGE_ASSERT(x_audio2_ && "AudioEngine hasn't been initialized!"); KGE_ASSERT(x_audio2_ && "AudioModule hasn't been initialized!");
HRESULT hr = S_OK; HRESULT hr = S_OK;
@ -109,17 +109,17 @@ bool AudioEngine::CreateSound(Sound& sound, const Transcoder::Buffer& buffer)
return true; return true;
} }
void AudioEngine::Open() void AudioModule::Open()
{ {
KGE_ASSERT(x_audio2_ && "AudioEngine hasn't been initialized!"); KGE_ASSERT(x_audio2_ && "AudioModule hasn't been initialized!");
if (x_audio2_) if (x_audio2_)
x_audio2_->StartEngine(); x_audio2_->StartEngine();
} }
void AudioEngine::Close() void AudioModule::Close()
{ {
KGE_ASSERT(x_audio2_ && "AudioEngine hasn't been initialized!"); KGE_ASSERT(x_audio2_ && "AudioModule hasn't been initialized!");
if (x_audio2_) if (x_audio2_)
x_audio2_->StopEngine(); x_audio2_->StopEngine();

View File

@ -22,7 +22,7 @@
#include <kiwano-audio/Sound.h> #include <kiwano-audio/Sound.h>
#include <kiwano-audio/Transcoder.h> #include <kiwano-audio/Transcoder.h>
#include <kiwano/core/Common.h> #include <kiwano/core/Common.h>
#include <kiwano/core/Component.h> #include <kiwano/core/Module.h>
#include <xaudio2.h> #include <xaudio2.h>
namespace kiwano namespace kiwano
@ -32,7 +32,7 @@ namespace audio
/** /**
* \~chinese * \~chinese
* \defgroup Audio * \defgroup Audio
*/ */
/** /**
@ -42,13 +42,13 @@ namespace audio
/** /**
* \~chinese * \~chinese
* @brief * @brief
*/ */
class KGE_API AudioEngine class KGE_API AudioModule
: public Singleton<AudioEngine> : public Singleton<AudioModule>
, public ComponentBase , public Module
{ {
friend Singleton<AudioEngine>; friend Singleton<AudioModule>;
public: public:
/// \~chinese /// \~chinese
@ -64,14 +64,14 @@ public:
bool CreateSound(Sound& sound, const Transcoder::Buffer& buffer); bool CreateSound(Sound& sound, const Transcoder::Buffer& buffer);
public: public:
void SetupComponent() override; void SetupModule() override;
void DestroyComponent() override; void DestroyModule() override;
private: private:
AudioEngine(); AudioModule();
~AudioEngine(); ~AudioModule();
private: private:
IXAudio2* x_audio2_; IXAudio2* x_audio2_;

View File

@ -18,7 +18,7 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE. // THE SOFTWARE.
#include <kiwano-audio/AudioEngine.h> #include <kiwano-audio/AudioModule.h>
#include <kiwano-audio/Sound.h> #include <kiwano-audio/Sound.h>
#include <kiwano/core/Logger.h> #include <kiwano/core/Logger.h>
#include <kiwano/platform/FileSystem.h> #include <kiwano/platform/FileSystem.h>
@ -83,7 +83,7 @@ bool Sound::Load(String const& file_path)
return false; return false;
} }
if (!AudioEngine::GetInstance().CreateSound(*this, transcoder_.GetBuffer())) if (!AudioModule::GetInstance().CreateSound(*this, transcoder_.GetBuffer()))
{ {
Close(); Close();
return false; return false;
@ -107,7 +107,7 @@ bool Sound::Load(Resource const& res)
return false; return false;
} }
if (!AudioEngine::GetInstance().CreateSound(*this, transcoder_.GetBuffer())) if (!AudioModule::GetInstance().CreateSound(*this, transcoder_.GetBuffer()))
{ {
Close(); Close();
return false; return false;

View File

@ -29,7 +29,7 @@ namespace kiwano
{ {
namespace audio namespace audio
{ {
class AudioEngine; class AudioModule;
KGE_DECLARE_SMART_PTR(Sound); KGE_DECLARE_SMART_PTR(Sound);
@ -44,7 +44,7 @@ KGE_DECLARE_SMART_PTR(Sound);
*/ */
class KGE_API Sound : public virtual ObjectBase class KGE_API Sound : public virtual ObjectBase
{ {
friend class AudioEngine; friend class AudioModule;
public: public:
/// \~chinese /// \~chinese

View File

@ -20,6 +20,6 @@
#pragma once #pragma once
#include <kiwano-audio/AudioEngine.h> #include <kiwano-audio/AudioModule.h>
#include <kiwano-audio/Sound.h> #include <kiwano-audio/Sound.h>
#include <kiwano-audio/SoundPlayer.h> #include <kiwano-audio/SoundPlayer.h>

View File

@ -18,7 +18,7 @@ ImGuiModule::ImGuiModule()
{ {
} }
void ImGuiModule::SetupComponent() void ImGuiModule::SetupModule()
{ {
// Setup Dear ImGui context // Setup Dear ImGui context
IMGUI_CHECKVERSION(); IMGUI_CHECKVERSION();
@ -58,7 +58,7 @@ void ImGuiModule::SetupComponent()
ImGui_Impl_Init(); ImGui_Impl_Init();
} }
void ImGuiModule::DestroyComponent() void ImGuiModule::DestroyModule()
{ {
ImGui_Impl_Shutdown(); ImGui_Impl_Shutdown();
ImGui::DestroyContext(); ImGui::DestroyContext();

View File

@ -20,7 +20,7 @@
#pragma once #pragma once
#include <kiwano/core/Common.h> #include <kiwano/core/Common.h>
#include <kiwano/core/Component.h> #include <kiwano/core/Module.h>
namespace kiwano namespace kiwano
{ {
@ -33,18 +33,18 @@ namespace imgui
*/ */
class ImGuiModule class ImGuiModule
: public Singleton<ImGuiModule> : public Singleton<ImGuiModule>
, public RenderComponent , public RenderModule
, public UpdateComponent , public UpdateModule
, public EventComponent , public EventModule
{ {
friend Singleton<ImGuiModule>; friend Singleton<ImGuiModule>;
public: public:
ImGuiModule(); ImGuiModule();
void SetupComponent() override; void SetupModule() override;
void DestroyComponent() override; void DestroyModule() override;
void BeforeRender() override; void BeforeRender() override;

View File

@ -23,7 +23,7 @@
#include <kiwano/platform/Application.h> #include <kiwano/platform/Application.h>
#include <kiwano-network/HttpRequest.h> #include <kiwano-network/HttpRequest.h>
#include <kiwano-network/HttpResponse.hpp> #include <kiwano-network/HttpResponse.hpp>
#include <kiwano-network/HttpClient.h> #include <kiwano-network/HttpModule.h>
#include <3rd-party/curl/curl.h> // CURL #include <3rd-party/curl/curl.h> // CURL
namespace namespace
@ -67,7 +67,7 @@ public:
} }
} }
bool Init(HttpClient* client, Vector<String> const& headers, String const& url, String* response_data, bool Init(HttpModule* client, Vector<String> const& headers, String const& url, String* response_data,
String* response_header, char* error_buffer) String* response_header, char* error_buffer)
{ {
if (!SetOption(CURLOPT_ERRORBUFFER, error_buffer)) if (!SetOption(CURLOPT_ERRORBUFFER, error_buffer))
@ -132,7 +132,7 @@ public:
} }
public: public:
static inline bool GetRequest(HttpClient* client, Vector<String> const& headers, String const& url, static inline bool GetRequest(HttpModule* client, Vector<String> const& headers, String const& url,
long* response_code, String* response_data, String* response_header, long* response_code, String* response_data, String* response_header,
char* error_buffer) char* error_buffer)
{ {
@ -141,7 +141,7 @@ public:
&& curl.SetOption(CURLOPT_FOLLOWLOCATION, true) && curl.Perform(response_code); && curl.SetOption(CURLOPT_FOLLOWLOCATION, true) && curl.Perform(response_code);
} }
static inline bool PostRequest(HttpClient* client, Vector<String> const& headers, String const& url, static inline bool PostRequest(HttpModule* client, Vector<String> const& headers, String const& url,
String const& request_data, long* response_code, String* response_data, String const& request_data, long* response_code, String* response_data,
String* response_header, char* error_buffer) String* response_header, char* error_buffer)
{ {
@ -151,7 +151,7 @@ public:
&& curl.SetOption(CURLOPT_POSTFIELDSIZE, request_data.size()) && curl.Perform(response_code); && curl.SetOption(CURLOPT_POSTFIELDSIZE, request_data.size()) && curl.Perform(response_code);
} }
static inline bool PutRequest(HttpClient* client, Vector<String> const& headers, String const& url, static inline bool PutRequest(HttpModule* client, Vector<String> const& headers, String const& url,
String const& request_data, long* response_code, String* response_data, String const& request_data, long* response_code, String* response_data,
String* response_header, char* error_buffer) String* response_header, char* error_buffer)
{ {
@ -162,7 +162,7 @@ public:
&& curl.SetOption(CURLOPT_POSTFIELDSIZE, request_data.size()) && curl.Perform(response_code); && curl.SetOption(CURLOPT_POSTFIELDSIZE, request_data.size()) && curl.Perform(response_code);
} }
static inline bool DeleteRequest(HttpClient* client, Vector<String> const& headers, String const& url, static inline bool DeleteRequest(HttpModule* client, Vector<String> const& headers, String const& url,
long* response_code, String* response_data, String* response_header, long* response_code, String* response_data, String* response_header,
char* error_buffer) char* error_buffer)
{ {
@ -182,26 +182,26 @@ namespace kiwano
{ {
namespace network namespace network
{ {
HttpClient::HttpClient() HttpModule::HttpModule()
: timeout_for_connect_(30000 /* 30 seconds */) : timeout_for_connect_(30000 /* 30 seconds */)
, timeout_for_read_(60000 /* 60 seconds */) , timeout_for_read_(60000 /* 60 seconds */)
{ {
} }
void HttpClient::SetupComponent() void HttpModule::SetupModule()
{ {
::curl_global_init(CURL_GLOBAL_ALL); ::curl_global_init(CURL_GLOBAL_ALL);
std::thread thread(Closure(this, &HttpClient::NetworkThread)); std::thread thread(Closure(this, &HttpModule::NetworkThread));
thread.detach(); thread.detach();
} }
void HttpClient::DestroyComponent() void HttpModule::DestroyModule()
{ {
::curl_global_cleanup(); ::curl_global_cleanup();
} }
void HttpClient::Send(HttpRequestPtr request) void HttpModule::Send(HttpRequestPtr request)
{ {
if (!request) if (!request)
return; return;
@ -213,7 +213,7 @@ void HttpClient::Send(HttpRequestPtr request)
sleep_condition_.notify_one(); sleep_condition_.notify_one();
} }
void HttpClient::NetworkThread() void HttpModule::NetworkThread()
{ {
while (true) while (true)
{ {
@ -235,11 +235,11 @@ void HttpClient::NetworkThread()
response_queue_.push(response); response_queue_.push(response);
response_mutex_.unlock(); response_mutex_.unlock();
Application::GetInstance().PreformInMainThread(Closure(this, &HttpClient::DispatchResponseCallback)); Application::GetInstance().PreformInMainThread(Closure(this, &HttpModule::DispatchResponseCallback));
} }
} }
void HttpClient::Perform(HttpRequestPtr request, HttpResponsePtr response) void HttpModule::Perform(HttpRequestPtr request, HttpResponsePtr response)
{ {
bool ok = false; bool ok = false;
long response_code = 0; long response_code = 0;
@ -273,7 +273,7 @@ void HttpClient::Perform(HttpRequestPtr request, HttpResponsePtr response)
ok = Curl::DeleteRequest(this, headers, url, &response_code, &response_data, &response_header, error_message); ok = Curl::DeleteRequest(this, headers, url, &response_code, &response_data, &response_header, error_message);
break; break;
default: default:
KGE_ERROR("HttpClient: unknown request type, only GET, POST, PUT or DELETE is supported"); KGE_ERROR("HttpModule: unknown request type, only GET, POST, PUT or DELETE is supported");
return; return;
} }
@ -291,7 +291,7 @@ void HttpClient::Perform(HttpRequestPtr request, HttpResponsePtr response)
} }
} }
void HttpClient::DispatchResponseCallback() void HttpModule::DispatchResponseCallback()
{ {
HttpResponsePtr response; HttpResponsePtr response;

View File

@ -21,7 +21,7 @@
#pragma once #pragma once
#include <condition_variable> #include <condition_variable>
#include <kiwano/core/Common.h> #include <kiwano/core/Common.h>
#include <kiwano/core/Component.h> #include <kiwano/core/Module.h>
#include <mutex> #include <mutex>
namespace kiwano namespace kiwano
@ -40,13 +40,13 @@ namespace network
/** /**
* \~chinese * \~chinese
* @brief HTTP客户端 * @brief HTTP模块
*/ */
class KGE_API HttpClient class KGE_API HttpModule
: public Singleton<HttpClient> : public Singleton<HttpModule>
, public ComponentBase , public Module
{ {
friend Singleton<HttpClient>; friend Singleton<HttpModule>;
public: public:
/// \~chinese /// \~chinese
@ -80,12 +80,12 @@ public:
String const& GetSSLVerification() const; String const& GetSSLVerification() const;
public: public:
virtual void SetupComponent() override; virtual void SetupModule() override;
virtual void DestroyComponent() override; virtual void DestroyModule() override;
private: private:
HttpClient(); HttpModule();
void NetworkThread(); void NetworkThread();
@ -110,32 +110,32 @@ private:
/** @} */ /** @} */
inline void HttpClient::SetTimeoutForConnect(Duration timeout) inline void HttpModule::SetTimeoutForConnect(Duration timeout)
{ {
timeout_for_connect_ = timeout; timeout_for_connect_ = timeout;
} }
inline Duration HttpClient::GetTimeoutForConnect() const inline Duration HttpModule::GetTimeoutForConnect() const
{ {
return timeout_for_connect_; return timeout_for_connect_;
} }
inline void HttpClient::SetTimeoutForRead(Duration timeout) inline void HttpModule::SetTimeoutForRead(Duration timeout)
{ {
timeout_for_read_ = timeout; timeout_for_read_ = timeout;
} }
inline Duration HttpClient::GetTimeoutForRead() const inline Duration HttpModule::GetTimeoutForRead() const
{ {
return timeout_for_read_; return timeout_for_read_;
} }
inline void HttpClient::SetSSLVerification(String const& root_certificate_path) inline void HttpModule::SetSSLVerification(String const& root_certificate_path)
{ {
ssl_verification_ = root_certificate_path; ssl_verification_ = root_certificate_path;
} }
inline String const& HttpClient::GetSSLVerification() const inline String const& HttpModule::GetSSLVerification() const
{ {
return ssl_verification_; return ssl_verification_;
} }

View File

@ -22,4 +22,4 @@
#include <kiwano-network/HttpRequest.h> #include <kiwano-network/HttpRequest.h>
#include <kiwano-network/HttpResponse.hpp> #include <kiwano-network/HttpResponse.hpp>
#include <kiwano-network/HttpClient.h> #include <kiwano-network/HttpModule.h>

View File

@ -22,7 +22,7 @@
#include <kiwano/2d/Actor.h> #include <kiwano/2d/Actor.h>
#include <kiwano/2d/Stage.h> #include <kiwano/2d/Stage.h>
#include <kiwano/2d/Transition.h> #include <kiwano/2d/Transition.h>
#include <kiwano/core/Component.h> #include <kiwano/core/Module.h>
namespace kiwano namespace kiwano
{ {
@ -34,9 +34,9 @@ namespace kiwano
*/ */
class KGE_API Director class KGE_API Director
: public Singleton<Director> : public Singleton<Director>
, public UpdateComponent , public UpdateModule
, public RenderComponent , public RenderModule
, public EventComponent , public EventModule
{ {
friend Singleton<Director>; friend Singleton<Director>;
@ -92,9 +92,9 @@ public:
void ClearStages(); void ClearStages();
public: public:
void SetupComponent() override {} void SetupModule() override {}
void DestroyComponent() override {} void DestroyModule() override {}
void OnUpdate(Duration dt) override; void OnUpdate(Duration dt) override;

View File

@ -18,39 +18,29 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE. // THE SOFTWARE.
#include <kiwano/core/Component.h> #include <kiwano/core/Module.h>
#define KGE_DEFINE_COMPONENT_FLAG(OFFSET) (0x01 << (OFFSET % 32))
namespace kiwano namespace kiwano
{ {
const int RenderComponent::flag = KGE_DEFINE_COMPONENT_FLAG(0);
const int UpdateComponent::flag = KGE_DEFINE_COMPONENT_FLAG(1);
const int EventComponent::flag = KGE_DEFINE_COMPONENT_FLAG(2);
ComponentBase::ComponentBase() Module::Module()
: flag_(0) : flag_(0)
{ {
} }
bool ComponentBase::Check(const int flag) RenderModule::RenderModule()
{ {
return !!(flag_ & flag); flag_ |= ModuleFlag<RenderModule>::value;
} }
RenderComponent::RenderComponent() UpdateModule::UpdateModule()
{ {
flag_ |= flag; flag_ |= ModuleFlag<UpdateModule>::value;
} }
UpdateComponent::UpdateComponent() EventModule::EventModule()
{ {
flag_ |= flag; flag_ |= ModuleFlag<EventModule>::value;
}
EventComponent::EventComponent()
{
flag_ |= flag;
} }
} // namespace kiwano } // namespace kiwano

View File

@ -20,32 +20,40 @@
#pragma once #pragma once
#include <kiwano/core/Time.h> #include <kiwano/core/Time.h>
#include <kiwano/macros.h>
namespace kiwano namespace kiwano
{ {
class RenderContext; class RenderContext;
class Event; class Event;
template <typename _CompTy>
struct ModuleFlag;
/** /**
* \~chinese * \~chinese
* @brief * @brief
*/ */
class KGE_API ComponentBase class KGE_API Module
{ {
public: public:
/// \~chinese /// \~chinese
/// @brief 启动组件 /// @brief 启动模块
virtual void SetupComponent() = 0; virtual void SetupModule() {}
/// \~chinese /// \~chinese
/// @brief 销毁组件 /// @brief 销毁模块
virtual void DestroyComponent() = 0; virtual void DestroyModule() {}
bool Check(const int flag); template <typename _CompTy>
_CompTy* Cast()
{
if (flag_ & ModuleFlag<_CompTy>::value)
return dynamic_cast<_CompTy*>(this);
return nullptr;
}
protected: protected:
ComponentBase(); Module();
protected: protected:
int flag_; int flag_;
@ -53,9 +61,9 @@ protected:
/** /**
* \~chinese * \~chinese
* @brief * @brief
*/ */
class KGE_API RenderComponent : public virtual ComponentBase class KGE_API RenderModule : public virtual Module
{ {
public: public:
/// \~chinese /// \~chinese
@ -72,16 +80,14 @@ public:
virtual void AfterRender() {} virtual void AfterRender() {}
public: public:
static const int flag; RenderModule();
RenderComponent();
}; };
/** /**
* \~chinese * \~chinese
* @brief * @brief
*/ */
class KGE_API UpdateComponent : public virtual ComponentBase class KGE_API UpdateModule : public virtual Module
{ {
public: public:
/// \~chinese /// \~chinese
@ -98,16 +104,14 @@ public:
virtual void AfterUpdate() {} virtual void AfterUpdate() {}
public: public:
static const int flag; UpdateModule();
UpdateComponent();
}; };
/** /**
* \~chinese * \~chinese
* @brief * @brief
*/ */
class KGE_API EventComponent : public virtual ComponentBase class KGE_API EventModule : public virtual Module
{ {
public: public:
/// \~chinese /// \~chinese
@ -116,8 +120,29 @@ public:
virtual void HandleEvent(Event* evt) {} virtual void HandleEvent(Event* evt) {}
public: public:
static const int flag; EventModule();
EventComponent();
}; };
#define KGE_DEFINE_COMPONENT_FLAG(OFFSET) (0x01 << (OFFSET % 32))
template <>
struct ModuleFlag<RenderModule>
{
static constexpr int value = KGE_DEFINE_COMPONENT_FLAG(0);
};
template <>
struct ModuleFlag<UpdateModule>
{
static constexpr int value = KGE_DEFINE_COMPONENT_FLAG(1);
};
template <>
struct ModuleFlag<EventModule>
{
static constexpr int value = KGE_DEFINE_COMPONENT_FLAG(2);
};
#undef KGE_DEFINE_COMPONENT_FLAG
} // namespace kiwano } // namespace kiwano

View File

@ -20,7 +20,6 @@
#pragma once #pragma once
#include <kiwano/core/Common.h> #include <kiwano/core/Common.h>
#include <kiwano/macros.h>
namespace kiwano namespace kiwano
{ {

View File

@ -32,19 +32,19 @@ Application::Application()
: quiting_(false) : quiting_(false)
, time_scale_(1.f) , time_scale_(1.f)
{ {
Use(&Renderer::GetInstance()); Use(Renderer::GetInstance());
Use(&Input::GetInstance()); Use(Input::GetInstance());
Use(&Director::GetInstance()); Use(Director::GetInstance());
} }
Application::~Application() {} Application::~Application() {}
void Application::Run(Runner& runner, bool debug) void Application::Run(Runner& runner, bool debug)
{ {
// Setup all components // Setup all modules
for (auto c : comps_) for (auto c : modules_)
{ {
c->SetupComponent(); c->SetupModule();
} }
if (debug) if (debug)
@ -100,35 +100,22 @@ void Application::Destroy()
ResourceCache::GetInstance().Clear(); ResourceCache::GetInstance().Clear();
TextureCache::GetInstance().Clear(); TextureCache::GetInstance().Clear();
for (auto iter = comps_.rbegin(); iter != comps_.rend(); ++iter) for (auto iter = modules_.rbegin(); iter != modules_.rend(); ++iter)
{ {
(*iter)->DestroyComponent(); (*iter)->DestroyModule();
} }
} }
void Application::Use(ComponentBase* component) void Application::Use(Module& module)
{ {
if (component)
{
#if defined(KGE_DEBUG) #if defined(KGE_DEBUG)
if (std::find(comps_.begin(), comps_.end(), component) != comps_.end()) if (std::find(modules_.begin(), modules_.end(), &module) != modules_.end())
{ {
KGE_ASSERT(false && "Component already exists!"); KGE_ASSERT(false && "Module already exists!");
} }
#endif #endif
comps_.push_back(component); modules_.push_back(&module);
if (component->Check(RenderComponent::flag))
render_comps_.push_back(dynamic_cast<RenderComponent*>(component));
if (component->Check(UpdateComponent::flag))
update_comps_.push_back(dynamic_cast<UpdateComponent*>(component));
if (component->Check(EventComponent::flag))
event_comps_.push_back(dynamic_cast<EventComponent*>(component));
}
} }
void Application::SetTimeScale(float scale_factor) void Application::SetTimeScale(float scale_factor)
@ -139,9 +126,12 @@ void Application::SetTimeScale(float scale_factor)
void Application::Update() void Application::Update()
{ {
// Before update // Before update
for (auto c : update_comps_) for (auto comp : modules_)
{ {
c->BeforeUpdate(); if (auto update_comp = comp->Cast<UpdateModule>())
{
update_comp->BeforeUpdate();
}
} }
// perform functions // perform functions
@ -171,16 +161,22 @@ void Application::Update()
last_update_time_ = now; last_update_time_ = now;
for (auto c : update_comps_) for (auto comp : modules_)
{ {
c->OnUpdate(dt); if (auto update_comp = comp->Cast<UpdateModule>())
{
update_comp->OnUpdate(dt);
}
} }
} }
// After update // After update
for (auto rit = update_comps_.rbegin(); rit != update_comps_.rend(); ++rit) for (auto rit = modules_.rbegin(); rit != modules_.rend(); ++rit)
{ {
(*rit)->AfterUpdate(); if (auto update_comp = (*rit)->Cast<UpdateModule>())
{
update_comp->AfterUpdate();
}
} }
} }
@ -190,23 +186,32 @@ void Application::Render()
renderer.Clear(); renderer.Clear();
// Before render // Before render
for (auto c : render_comps_) for (auto comp : modules_)
{ {
c->BeforeRender(); if (auto render_comp = comp->Cast<RenderModule>())
{
render_comp->BeforeRender();
}
} }
// Rendering // Rendering
renderer.BeginDraw(); renderer.BeginDraw();
for (auto c : render_comps_) for (auto comp : modules_)
{ {
c->OnRender(renderer.GetContext()); if (auto render_comp = comp->Cast<RenderModule>())
{
render_comp->OnRender(renderer.GetContext());
}
} }
renderer.EndDraw(); renderer.EndDraw();
// After render // After render
for (auto rit = render_comps_.rbegin(); rit != render_comps_.rend(); ++rit) for (auto rit = modules_.rbegin(); rit != modules_.rend(); ++rit)
{ {
(*rit)->AfterRender(); if (auto render_comp = (*rit)->Cast<RenderModule>())
{
render_comp->AfterRender();
}
} }
renderer.Present(); renderer.Present();
@ -214,9 +219,12 @@ void Application::Render()
void Application::DispatchEvent(Event* evt) void Application::DispatchEvent(Event* evt)
{ {
for (auto c : event_comps_) for (auto comp : modules_)
{ {
c->HandleEvent(evt); if (auto event_comp = comp->Cast<EventModule>())
{
event_comp->HandleEvent(evt);
}
} }
} }

View File

@ -21,7 +21,7 @@
#pragma once #pragma once
#include <mutex> #include <mutex>
#include <kiwano/core/Common.h> #include <kiwano/core/Common.h>
#include <kiwano/core/Component.h> #include <kiwano/core/Module.h>
#include <kiwano/core/Time.h> #include <kiwano/core/Time.h>
#include <kiwano/core/Runner.h> #include <kiwano/core/Runner.h>
#include <kiwano/core/Singleton.h> #include <kiwano/core/Singleton.h>
@ -67,10 +67,10 @@ public:
/** /**
* \~chinese * \~chinese
* @brief * @brief
* @param[in] component * @param[in] module
*/ */
void Use(ComponentBase* component); void Use(Module& module);
/** /**
* \~chinese * \~chinese
@ -84,7 +84,7 @@ public:
/** /**
* \~chinese * \~chinese
* @brief * @brief
* @details * @details
* @param evt * @param evt
*/ */
void DispatchEvent(Event* evt); void DispatchEvent(Event* evt);
@ -100,26 +100,23 @@ public:
private: private:
/** /**
* \~chinese * \~chinese
* @brief * @brief
*/ */
void Update(); void Update();
/** /**
* \~chinese * \~chinese
* @brief * @brief
*/ */
void Render(); void Render();
private: private:
bool quiting_; bool quiting_;
float time_scale_; float time_scale_;
Time last_update_time_; Time last_update_time_;
Vector<ComponentBase*> comps_; List<Module*> modules_;
Vector<RenderComponent*> render_comps_; std::mutex perform_mutex_;
Vector<UpdateComponent*> update_comps_; Queue<Function<void()>> functions_to_perform_;
Vector<EventComponent*> event_comps_;
std::mutex perform_mutex_;
Queue<Function<void()>> functions_to_perform_;
}; };
} // namespace kiwano } // namespace kiwano

View File

@ -20,7 +20,7 @@
#pragma once #pragma once
#include <kiwano/core/Common.h> #include <kiwano/core/Common.h>
#include <kiwano/core/Component.h> #include <kiwano/core/Module.h>
#include <kiwano/core/Keys.h> #include <kiwano/core/Keys.h>
#include <kiwano/core/event/Event.h> #include <kiwano/core/event/Event.h>
#include <kiwano/macros.h> #include <kiwano/macros.h>
@ -34,8 +34,8 @@ namespace kiwano
*/ */
class KGE_API Input class KGE_API Input
: public Singleton<Input> : public Singleton<Input>
, public UpdateComponent , public UpdateModule
, public EventComponent , public EventModule
{ {
friend Singleton<Input>; friend Singleton<Input>;
@ -103,9 +103,9 @@ public:
Point GetMousePos() const; Point GetMousePos() const;
public: public:
void SetupComponent() override {} void SetupModule() override {}
void DestroyComponent() override {} void DestroyModule() override {}
void AfterUpdate() override; void AfterUpdate() override;

View File

@ -46,7 +46,7 @@ RendererImpl::RendererImpl()
render_ctx_ = new RenderContextImpl; render_ctx_ = new RenderContextImpl;
} }
void RendererImpl::SetupComponent() void RendererImpl::SetupModule()
{ {
KGE_SYS_LOG("Creating device resources"); KGE_SYS_LOG("Creating device resources");
@ -115,7 +115,7 @@ void RendererImpl::SetupComponent()
ThrowIfFailed(hr, "Create render resources failed"); ThrowIfFailed(hr, "Create render resources failed");
} }
void RendererImpl::DestroyComponent() void RendererImpl::DestroyModule()
{ {
KGE_SYS_LOG("Destroying device resources"); KGE_SYS_LOG("Destroying device resources");

View File

@ -103,9 +103,9 @@ public:
ID3DDeviceResources* GetD3DDeviceResources(); ID3DDeviceResources* GetD3DDeviceResources();
public: public:
void SetupComponent() override; void SetupModule() override;
void DestroyComponent() override; void DestroyModule() override;
void HandleEvent(Event* evt) override; void HandleEvent(Event* evt) override;

View File

@ -19,7 +19,7 @@
// THE SOFTWARE. // THE SOFTWARE.
#pragma once #pragma once
#include <kiwano/core/Component.h> #include <kiwano/core/Module.h>
#include <kiwano/render/Font.h> #include <kiwano/render/Font.h>
#include <kiwano/render/GifImage.h> #include <kiwano/render/GifImage.h>
#include <kiwano/render/TextStyle.hpp> #include <kiwano/render/TextStyle.hpp>
@ -43,7 +43,7 @@ namespace kiwano
* \~chinese * \~chinese
* @brief * @brief
*/ */
class KGE_API Renderer : public EventComponent class KGE_API Renderer : public EventModule
{ {
public: public:
/// \~chinese /// \~chinese