Advertisement
ddto

Untitled

Jun 12th, 2024
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.72 KB | None | 0 0
  1. // EntryPoint.h -----------------------------------------------
  2. #pragma once
  3. #ifdef GROTTO_PLATFORM_WINDOWS
  4. extern Grotto::Application* Grotto::CreateApplication();
  5. int main(int argc, char** argv)
  6. {
  7.     Grotto::Log::Init();
  8.     auto application = Grotto::CreateApplication();
  9.     application->Run();
  10.     delete application;
  11. }
  12. #endif // GROTTO_PLATFORM_WINDOWS
  13.  
  14.  
  15. // Grotto.h -----------------------------------------------
  16. #pragma once
  17. #include "Grotto/Application.h"
  18. #include "Grotto/EntryPoint.h"
  19. #include "Grotto/Log.h"
  20.  
  21. // Log.h -----------------------------------------------
  22. #pragma once
  23.  
  24. #include "Core.h"
  25. #include "spdlog/spdlog.h"
  26. #include "spdlog/sinks/stdout_color_sinks.h"
  27.  
  28. #include <memory>
  29.  
  30. namespace Grotto
  31. {
  32.     class GROTTO_API Log
  33.     {
  34.     public:
  35.         static void Init();
  36.        
  37.         inline static std::shared_ptr<spdlog::logger>& GetCoreLogger() { return s_CoreLogger; }
  38.         inline static std::shared_ptr<spdlog::logger>& GetClientLogger() { return s_ClientLogger; }
  39.  
  40.     private:
  41.         static std::shared_ptr<spdlog::logger> s_CoreLogger;
  42.         static std::shared_ptr<spdlog::logger> s_ClientLogger;
  43.     };
  44. }
  45.  
  46. #define GR_CORE_CRIT(...)  ::Grotto::Log::GetCoreLogger()->critical(__VA_ARGS__)
  47. #define GR_CORE_ERROR(...) ::Grotto::Log::GetCoreLogger()->error(__VA_ARGS__)
  48. #define GR_CORE_WARN(...)  ::Grotto::Log::GetCoreLogger()->warn(__VA_ARGS__)
  49. #define GR_CORE_INFO(...)  ::Grotto::Log::GetCoreLogger()->info(__VA_ARGS__)
  50. #define GR_CORE_TRACE(...) ::Grotto::Log::GetCoreLogger()->trace(__VA_ARGS__)
  51.  
  52. #define GR_CRIT(...)       ::Grotto::Log::GetClientLogger()->critical(__VA_ARGS__)
  53. #define GR_ERROR(...)      ::Grotto::Log::GetClientLogger()->error(__VA_ARGS__)
  54. #define GR_WARN(...)       ::Grotto::Log::GetClientLogger()->warn(__VA_ARGS__)
  55. #define GR_INFO(...)       ::Grotto::Log::GetClientLogger()->info(__VA_ARGS__)
  56. #define GR_TRACE(...)      ::Grotto::Log::GetClientLogger()->trace(__VA_ARGS__)
  57.  
  58. // Log.cpp -----------------------------------------------
  59. #include "Log.h"
  60.  
  61. std::shared_ptr<spdlog::logger> Grotto::Log::s_ClientLogger;
  62. std::shared_ptr<spdlog::logger> Grotto::Log::s_CoreLogger;
  63.  
  64. void Grotto::Log::Init()
  65. {
  66.     spdlog::set_pattern("%^[%T] %n: %v%$");
  67.  
  68.     s_CoreLogger = spdlog::stdout_color_mt("GROTTO");
  69.     s_CoreLogger->set_level(spdlog::level::trace);
  70.  
  71.     s_ClientLogger = spdlog::stdout_color_mt("APP");
  72.     s_ClientLogger->set_level(spdlog::level::trace);
  73. }
  74.  
  75. // Core.h -----------------------------------------------
  76. #pragma once
  77.  
  78. #ifdef GROTTO_PLATFORM_WINDOWS
  79.     #ifdef GROTTO_BUILD_DLL
  80.         #define GROTTO_API __declspec(dllexport)
  81.     #else
  82.         #define GROTTO_API __declspec(dllimport)
  83.     #endif // GROTTO_BUILD_DLL
  84. #else
  85.     #error Grotto currently only supports Windows platform.
  86. #endif // GROTTO_PLATFORM_WINDOWS
  87.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement