diff options
Diffstat (limited to 'src/main.cpp')
-rw-r--r-- | src/main.cpp | 62 |
1 files changed, 36 insertions, 26 deletions
diff --git a/src/main.cpp b/src/main.cpp index 7bc0fb6..7ff88e0 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,36 +1,46 @@ -#include "Core.hpp" #include "Event.hpp" #include "Utility.hpp" +#include "ThreadGame.hpp" +#include "ThreadRender.hpp" +#include "ThreadNetwork.hpp" const char *getTimeSinceProgramStart(void) { - static auto initialTime = std::chrono::steady_clock().now(); - auto now = std::chrono::steady_clock().now(); - std::chrono::duration<double> seconds = now-initialTime; - static char buffer[30]; - sprintf(buffer, "%.2f", seconds.count()); - return buffer; + static auto initialTime = std::chrono::steady_clock().now(); + auto now = std::chrono::steady_clock().now(); + std::chrono::duration<double> seconds = now - initialTime; + static char buffer[30]; + sprintf(buffer, "%.2f", seconds.count()); + return buffer; } INITIALIZE_EASYLOGGINGPP int main() { - el::Configurations loggerConfiguration; - el::Helpers::installCustomFormatSpecifier( - el::CustomFormatSpecifier("%startTime", std::bind(getTimeSinceProgramStart))); - std::string format = "[%startTime][%level][%thread][%fbase]: %msg"; - loggerConfiguration.set(el::Level::Info, el::ConfigurationType::Format, format); - loggerConfiguration.set(el::Level::Error, el::ConfigurationType::Format, format); - loggerConfiguration.set(el::Level::Fatal, el::ConfigurationType::Format, format); - loggerConfiguration.set(el::Level::Warning, el::ConfigurationType::Format, format); - el::Helpers::setThreadName("Render"); - el::Loggers::reconfigureAllLoggers(loggerConfiguration); - el::Loggers::addFlag(el::LoggingFlag::ColoredTerminalOutput); - LOG(INFO) << "Logger is configured"; - - LOG(WARNING)<<"Sizeof EventData is "<<sizeof(EventData); - - Core core; - core.ExecuteRenderLoop(); - - return 0; + el::Configurations loggerConfiguration; + el::Helpers::installCustomFormatSpecifier( + el::CustomFormatSpecifier("%startTime", std::bind(getTimeSinceProgramStart))); + std::string format = "[%startTime][%level][%thread][%fbase]: %msg"; + loggerConfiguration.set(el::Level::Info, el::ConfigurationType::Format, format); + loggerConfiguration.set(el::Level::Error, el::ConfigurationType::Format, format); + loggerConfiguration.set(el::Level::Fatal, el::ConfigurationType::Format, format); + loggerConfiguration.set(el::Level::Warning, el::ConfigurationType::Format, format); + el::Helpers::setThreadName("Render"); + el::Loggers::reconfigureAllLoggers(loggerConfiguration); + el::Loggers::addFlag(el::LoggingFlag::ColoredTerminalOutput); + LOG(INFO) << "Logger is configured"; + + LOG(WARNING) << "Sizeof EventData is " << sizeof(EventData); + + ThreadGame game; + ThreadNetwork network; + ThreadRender render; + + std::thread threadGame(&ThreadGame::Execute, game); + std::thread threadNetwork(&ThreadNetwork::Execute, network); + + render.Execute(); + + threadGame.join(); + threadNetwork.join(); + return 0; }
\ No newline at end of file |