From a9b516a8e9f8ed9de61d2ad814a4c13c270cd8ca Mon Sep 17 00:00:00 2001 From: cinnaboot Date: Thu, 8 Oct 2020 16:19:25 -0400 Subject: [PATCH] remove AixLog dependancy from renderer --- src/render/Makefile | 3 --- src/render/dumbLog.cpp | 38 +++++++++++++++++++++++++++++++++++++ src/render/dumbLog.h | 28 +++++++++++++++++++++++++++ src/render/entity.cpp | 9 +++++---- src/render/mesh.cpp | 16 ++++++++-------- src/render/render_group.cpp | 10 +++++----- src/render/renderer.cpp | 26 ++++++++++++------------- 7 files changed, 97 insertions(+), 33 deletions(-) create mode 100644 src/render/dumbLog.cpp create mode 100644 src/render/dumbLog.h diff --git a/src/render/Makefile b/src/render/Makefile index 6af2784..3597b30 100644 --- a/src/render/Makefile +++ b/src/render/Makefile @@ -3,9 +3,6 @@ CXX = g++ CXXFLAGS = -std=c++11 -g -ggdb3 -Wall -I/usr/include/SDL2 OBJDIR = build -# TODO: remove aixlog -CXXFLAGS += -I../../ext/aixlog/include - # TODO: switch from gl3w to glew IMGUI_DIR = ../../ext/imgui CC = gcc diff --git a/src/render/dumbLog.cpp b/src/render/dumbLog.cpp new file mode 100644 index 0000000..13b7f14 --- /dev/null +++ b/src/render/dumbLog.cpp @@ -0,0 +1,38 @@ + +#include +#include + +#include "dumbLog.h" + +void dumbLog::setOutputStream(std::ostream* out) +{ + this->OUT = out; +} + +const char* +dumbLog::logLevelToString(log_level level) +{ + switch (level) { + case log_level::Error: return "Error"; + case log_level::Warning: return "Warning"; + case log_level::Info: return "Info"; + default: return "Potato"; + } +}; + +std::tm* +dumbLog::getCurrentTime() +{ + auto now = std::chrono::system_clock::now(); + auto t_c = std::chrono::system_clock::to_time_t(now); + return std::localtime(&t_c); +} + +int +dumbLog::getCurrentMS() +{ + auto now = std::chrono::system_clock::now(); + long long total_ms = std::chrono::duration_cast(now.time_since_epoch()).count(); + return int(total_ms % 1000); +} + diff --git a/src/render/dumbLog.h b/src/render/dumbLog.h new file mode 100644 index 0000000..44a43a8 --- /dev/null +++ b/src/render/dumbLog.h @@ -0,0 +1,28 @@ + +#include +#include + + +enum log_level { + Error, + Warning, + Info, + Debug +}; + +struct dumbLog +{ + std::ostream* OUT = &std::cout; + void setOutputStream(std::ostream* out); + const char* logLevelToString(log_level level); + std::tm* getCurrentTime(); + int getCurrentMS(); +}; + +static dumbLog logger; + +#define LOG(level) *logger.OUT \ + << std::put_time(logger.getCurrentTime(), "%F %T.") << logger.getCurrentMS() << " " \ + << "[" << logger.logLevelToString(level) << "] " \ + << "(" << __FUNCTION__ << ") " + diff --git a/src/render/entity.cpp b/src/render/entity.cpp index 6e6f26c..d914bb2 100644 --- a/src/render/entity.cpp +++ b/src/render/entity.cpp @@ -1,5 +1,6 @@ -#include "aixlog.hpp" +//#include "aixlog.hpp" +#include "dumbLog.h" #include "entity.h" @@ -21,7 +22,7 @@ entInit(Entity& e, const char* data_dir, rg_shader_program& shader, hexgrid& hg) if (e.use_grid) { if (!entPositionToGrid(e, hg, e.grid_pos.q, e.grid_pos.r, e.grid_pos.s)) { - LOG(ERROR) << "tried to place entity at invalid grid coord\n"; + LOG(Error) << "tried to place entity at invalid grid coord\n"; goto cleanup; } } else { @@ -34,7 +35,7 @@ entInit(Entity& e, const char* data_dir, rg_shader_program& shader, hexgrid& hg) goto cleanup; } } else { - LOG(ERROR) << data_dir << " + " << e.model_filename << " is too long\n"; + LOG(Error) << data_dir << " + " << e.model_filename << " is too long\n"; goto cleanup; } @@ -121,7 +122,7 @@ initEntityROs(Entity& e) if (mesh->use_texture) { ro->use_texture = true; if (!rgInitGLTexture(ro->tex_id, mesh->diffuse_texture)) { - LOG(ERROR) << "Error initializing GL texture\n"; + LOG(Error) << "Error initializing GL texture\n"; return false; } } diff --git a/src/render/mesh.cpp b/src/render/mesh.cpp index 00763d7..40f02a4 100644 --- a/src/render/mesh.cpp +++ b/src/render/mesh.cpp @@ -8,7 +8,7 @@ #include #include -#include "aixlog.hpp" +#include "dumbLog.h" #include "mesh.h" @@ -25,7 +25,7 @@ meMeshInfo* copyMeshInfo(const char* data_dir, const aiScene* scene, aiMesh* mes bool meInitAssimp() { - LOG(INFO) << "Initializing Assimp\n"; + LOG(Info) << "Initializing Assimp\n"; aiLogStream ls; ls.callback = assimpLogCB; aiAttachLogStream(&ls); @@ -36,16 +36,16 @@ meInitAssimp() bool meLoadFromFile(meMeshGroup& mesh_group, const char* data_dir, const char* filename) { - LOG(INFO) << "Loading file: " << filename << "\n"; + LOG(Info) << "Loading file: " << filename << "\n"; const aiScene* scene = aiImportFile(filename, aiProcessPreset_TargetRealtime_MaxQuality); if (!scene) { - LOG(ERROR) << "Error loading file: " << filename << "\n"; + LOG(Error) << "Error loading file: " << filename << "\n"; return false; } if (scene->mNumMeshes < 1) { - LOG(ERROR) << "Scene contains no meshes\n"; + LOG(Error) << "Scene contains no meshes\n"; return false; } @@ -85,7 +85,7 @@ assimpLogCB(const char* message, char* user) { // NOTE: filter 'info' messages from assimp if (!utilMatchPrefix(message, "Info,", 5)) - LOG(INFO) << message << "\n"; + LOG(Info) << message << "\n"; } meMeshInfo* @@ -163,9 +163,9 @@ copyMeshInfo(const char* data_dir, const aiScene* scene, aiMesh* mesh) if (has_tex && mat->GetTextureCount(aiTextureType_DIFFUSE) > 0) { aiString file_name; if (AI_SUCCESS != mat->GetTexture(aiTextureType_DIFFUSE, 0, &file_name, NULL, NULL, NULL, NULL, NULL)) { - LOG(ERROR) << "No diffuse texture from assimp\n"; + LOG(Error) << "No diffuse texture from assimp\n"; } else { - LOG(INFO) << "Loading texture file: " << file_name.C_Str() << "\n"; + LOG(Info) << "Loading texture file: " << file_name.C_Str() << "\n"; mi->diffuse_texture = utilLoadImage(data_dir, file_name.C_Str()); mi->use_texture = true; } diff --git a/src/render/render_group.cpp b/src/render/render_group.cpp index 5c22f8a..7deed2c 100644 --- a/src/render/render_group.cpp +++ b/src/render/render_group.cpp @@ -6,7 +6,7 @@ #include #include -#include "aixlog.hpp" +#include "dumbLog.h" #include "render_group.h" #include "../util.h" @@ -69,7 +69,7 @@ rgInitSingle(rg_shader_program& sp, uint vertex_buffer_len, rg->num_objects = 1; if (rg->render_objects[0] == nullptr) { - LOG(ERROR) << "Allocation Error\n"; + LOG(Error) << "Allocation Error\n"; rgFree(rg); } @@ -119,7 +119,7 @@ rgInitShaderProgram(rg_shader_program& sp, const char * vertex_code, const char GLchar infoLog[maxLength] = { 0 }; #endif glGetProgramInfoLog(sp.program_id, maxLength, &maxLength, &infoLog[0]); - LOG(ERROR) << infoLog << "\n"; + LOG(Error) << infoLog << "\n"; glDeleteProgram(sp.program_id); return false; @@ -246,7 +246,7 @@ void rgFree(render_group* rg) { if (rg == nullptr) { - LOG(ERROR) << "tried to free nullptr\n"; + LOG(Error) << "tried to free nullptr\n"; return; } @@ -264,7 +264,7 @@ void freeRenderObject(render_object* ro) { if (ro == nullptr) { - LOG(ERROR) << "Tried to free nullptr\n"; + LOG(Error) << "Tried to free nullptr\n"; return; } diff --git a/src/render/renderer.cpp b/src/render/renderer.cpp index 6e73c21..1a67537 100644 --- a/src/render/renderer.cpp +++ b/src/render/renderer.cpp @@ -11,7 +11,7 @@ #include #include -#include "aixlog.hpp" +#include "dumbLog.h" //#include "hexlib.h" #include "renderer.h" @@ -65,30 +65,30 @@ renInit(render_state* rs) ); if (!rs->handles.window) { - LOG(ERROR) << "Error creating window: " << SDL_GetError() << "\n"; + LOG(Error) << "Error creating window: " << SDL_GetError() << "\n"; return false; } rs->handles.glContext = SDL_GL_CreateContext(rs->handles.window); if (!rs->handles.glContext) { - LOG(ERROR) << "Error creating glContext: " << SDL_GetError() << "\n"; + LOG(Error) << "Error creating glContext: " << SDL_GetError() << "\n"; return false; } if (SDL_GL_SetSwapInterval(1) != 0) { // vsync - LOG(ERROR) << "SDL Errors: " << SDL_GetError() << "\n"; + LOG(Error) << "SDL Errors: " << SDL_GetError() << "\n"; return false; } if (gl3wInit()) { - LOG(ERROR) << "failed to initialize OpenGL\n"; + LOG(Error) << "failed to initialize OpenGL\n"; return false; } - LOG(INFO) << "opengl vendor: " << glGetString(GL_VENDOR) << "\n"; - LOG(INFO)<< "opengl renderer: " << glGetString(GL_RENDERER) << "\n"; - LOG(INFO) << "opengl version: " << glGetString(GL_VERSION) << "\n"; + LOG(Info) << "opengl vendor: " << glGetString(GL_VENDOR) << "\n"; + LOG(Info)<< "opengl renderer: " << glGetString(GL_RENDERER) << "\n"; + LOG(Info) << "opengl version: " << glGetString(GL_VERSION) << "\n"; glEnable(GL_DEPTH_TEST); glEnable(GL_LINE_SMOOTH); @@ -116,7 +116,7 @@ renInit(render_state* rs) utilSafeFree(fs_code); if (shader_error) { - LOG(ERROR) << "Error initializing shader program\n"; + LOG(Error) << "Error initializing shader program\n"; return false; } @@ -125,12 +125,12 @@ renInit(render_state* rs) rs->palette_image = utilLoadImage(DEFAULT_PALETTE_DIR, DEFAULT_PALETTE_FILE); if (!rgInitGLTexture(rs->palette_id, rs->palette_image)) { - LOG(ERROR) << "Error creating texture\n"; + LOG(Error) << "Error creating texture\n"; return false; } if (!initDebugRenderGroup(rs)) { - LOG(ERROR) << "Error initializing debug render group\n"; + LOG(Error) << "Error initializing debug render group\n"; return false; } @@ -201,8 +201,8 @@ void openglDebugCallback(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar* message, const void* userParam) { - LOG((type == GL_DEBUG_TYPE_ERROR) ? ERROR : DEBUG) - << (type == GL_DEBUG_TYPE_ERROR ? "** GL ERROR **" : "") + LOG((type == GL_DEBUG_TYPE_ERROR) ? Error : Debug) + << (type == GL_DEBUG_TYPE_ERROR ? "** GL Error **" : "") << ", type: " << type << ", severity: " << severity << ", message: " << message << "\n";