updated Logger

This commit is contained in:
OusmBlueNinja 2025-05-01 10:10:43 -05:00
parent 7e37a88bdc
commit 6fb78ed4c8
10 changed files with 89 additions and 67 deletions

View File

@ -15,7 +15,7 @@ Collapsed=0
[Window][Inspector]
Pos=1553,19
Size=367,860
Size=367,659
Collapsed=0
DockId=0x00000018,0
@ -27,7 +27,7 @@ DockId=0x00000003,0
[Window][Viewport]
Pos=344,19
Size=1207,860
Size=1207,659
Collapsed=0
DockId=0x00000017,0
@ -42,8 +42,8 @@ Collapsed=0
DockId=0x0000000F,0
[Window][Console]
Pos=344,881
Size=1500,125
Pos=344,680
Size=1500,326
Collapsed=0
DockId=0x00000013,0
@ -113,8 +113,8 @@ Collapsed=0
DockId=0x0000000E,0
[Window][Audio Output]
Pos=1846,881
Size=74,296
Pos=1846,680
Size=74,497
Collapsed=0
DockId=0x00000012,0
@ -131,13 +131,13 @@ DockSpace ID=0x11111111 Window=0x1BBC0F80 Pos=0,19 Size=1920,1158 Sp
DockNode ID=0x00000003 Parent=0x00000001 SizeRef=342,575 HiddenTabBar=1 Selected=0x12EF0F59
DockNode ID=0x00000004 Parent=0x00000001 SizeRef=342,581 HiddenTabBar=1 Selected=0x36AF052B
DockNode ID=0x00000002 Parent=0x00000005 SizeRef=1484,701 Split=Y Selected=0xC450F867
DockNode ID=0x00000007 Parent=0x00000002 SizeRef=606,860 Split=X Selected=0xC450F867
DockNode ID=0x00000007 Parent=0x00000002 SizeRef=606,659 Split=X Selected=0xC450F867
DockNode ID=0x00000017 Parent=0x00000007 SizeRef=1207,860 CentralNode=1 HiddenTabBar=1 Selected=0xC450F867
DockNode ID=0x00000018 Parent=0x00000007 SizeRef=367,860 HiddenTabBar=1 Selected=0x36DC96AB
DockNode ID=0x00000008 Parent=0x00000002 SizeRef=606,296 Split=X Selected=0xEA83D666
DockNode ID=0x00000008 Parent=0x00000002 SizeRef=606,497 Split=X Selected=0xEA83D666
DockNode ID=0x00000015 Parent=0x00000008 SizeRef=1291,172 Split=X Selected=0xEA83D666
DockNode ID=0x00000011 Parent=0x00000015 SizeRef=1500,168 Split=Y Selected=0x9B5D3198
DockNode ID=0x00000013 Parent=0x00000011 SizeRef=1449,125 HiddenTabBar=1 Selected=0xEA83D666
DockNode ID=0x00000013 Parent=0x00000011 SizeRef=1449,326 HiddenTabBar=1 Selected=0xEA83D666
DockNode ID=0x00000014 Parent=0x00000011 SizeRef=1449,169 HiddenTabBar=1 Selected=0x9B5D3198
DockNode ID=0x00000012 Parent=0x00000015 SizeRef=74,168 HiddenTabBar=1 Selected=0x56009A08
DockNode ID=0x00000016 Parent=0x00000008 SizeRef=283,172 Split=X Selected=0x56009A08

View File

@ -1,4 +1,3 @@
[COMPILE] g++ -std=c++20 -Wall -g -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -Isrc/vendor/xxhash -Isrc/vendor/miniaudio -IC:/msys64/mingw64/include -Isrc\vendor\imgui -IC:\msys64\mingw64\lib\libyaml-cpp.a -MMD -MP -c src\src\Components\AudioPlayerComponent.cpp -o src\build\Components\AudioPlayerComponent.o
[COMPILE] g++ -std=c++20 -Wall -g -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -Isrc/vendor/xxhash -Isrc/vendor/miniaudio -IC:/msys64/mingw64/include -Isrc\vendor\imgui -IC:\msys64\mingw64\lib\libyaml-cpp.a -MMD -MP -c src\src\Renderer.cpp -o src\build\Renderer.o
[COMPILE] g++ -std=c++20 -Wall -g -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -Isrc/vendor/xxhash -Isrc/vendor/miniaudio -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\src\Engine.cpp -o src\build\Engine.o
[LINK] g++ src\build\Engine.o src\build\main.o src\build\Renderer.o src\build\Components\AnimationComponent.o src\build\Components\AudioPlayerComponent.o src\build\Components\CameraComponent.o src\build\Components\LightComponent.o src\build\Components\ParticleComponent.o src\build\Components\PhysicsComponent.o src\build\Components\ScriptComponent.o src\build\Components\SpriteComponent.o src\build\Components\TextComonent.o src\build\Components\TilemapComponent.o src\build\core\audio\AudioEngine.o src\build\core\utils\AssetManager.o src\build\core\utils\EngineConfig.o src\build\core\utils\ExceptionHandler.o src\build\core\utils\FileDialog.o src\build\core\utils\input.o src\build\core\utils\LoadingWindow.o src\build\core\utils\Logging.o src\build\core\utils\Profiler.o src\build\core\utils\Texture.o src\build\core\utils\utils.o src\build\editor\windows\AssetBrowser.o src\build\editor\windows\AudioInfo.o src\build\editor\windows\Inspector.o src\build\Entitys\Object.o src\build\utils\GameObjectsList.o src\build\utils\Shader.o src\build\utils\UID.o src\build\lapi.o src\build\lauxlib.o src\build\lbaselib.o src\build\lcode.o src\build\lcorolib.o src\build\lctype.o src\build\ldblib.o src\build\ldebug.o src\build\ldo.o src\build\ldump.o src\build\lfunc.o src\build\lgc.o src\build\linit.o src\build\liolib.o src\build\llex.o src\build\lmathlib.o src\build\lmem.o src\build\loadlib.o src\build\lobject.o src\build\lopcodes.o src\build\loslib.o src\build\lparser.o src\build\lstate.o src\build\lstring.o src\build\lstrlib.o src\build\ltable.o src\build\ltablib.o src\build\ltm.o src\build\lua.o src\build\luac.o src\build\lundump.o src\build\lutf8lib.o src\build\lvm.o src\build\lzio.o src\build\imgui.o src\build\imgui_demo.o src\build\imgui_draw.o src\build\imgui_impl_glfw.o src\build\imgui_impl_opengl3.o src\build\imgui_tables.o src\build\imgui_widgets.o src\build\aabb.o src\build\arena_allocator.o src\build\array.o src\build\bitset.o src\build\body.o src\build\broad_phase.o src\build\constraint_graph.o src\build\contact.o src\build\contact_solver.o src\build\core.o src\build\distance.o src\build\distance_joint.o src\build\dynamic_tree.o src\build\geometry.o src\build\hull.o src\build\id_pool.o src\build\island.o src\build\joint.o src\build\manifold.o src\build\math_functions.o src\build\motor_joint.o src\build\mouse_joint.o src\build\mover.o src\build\prismatic_joint.o src\build\revolute_joint.o src\build\sensor.o src\build\shape.o src\build\solver.o src\build\solver_set.o src\build\table.o src\build\timer.o src\build\types.o src\build\weld_joint.o src\build\wheel_joint.o src\build\world.o src\build\xxhash.o src\build\miniaudio.o -o src\build\app.exe -LC:\msys64\mingw64\lib -lglfw3 -lglew32 -lopengl32 -lgdi32 -lyaml-cpp -lcomdlg32 -lssl -lcrypto -ldbghelp
[RUN] Executed app.exe successfully.

View File

@ -14,7 +14,7 @@ void AudioPlayerComponent::SetAudio(uint64_t uaid) {
void AudioPlayerComponent::Play() {
if (m_UAID == 0) return;
AudioEngine::Play(m_UAID, loop);
AudioEngine::SetVolume(m_UAID, volume); // youll need to add this helper
AudioEngine::SetVolume(m_UAID, volume);
}
void AudioPlayerComponent::Pause() {

View File

@ -295,11 +295,11 @@ void ShowProfilerTimeline()
ImDrawList *draw = ImGui::GetWindowDrawList();
ImU32 gridCol = ImGui::GetColorU32(ImGuiCol_Border);
// Cache grid lines so we only recompute when dims change
struct Line
{
ImVec2 a, b;
};
static float lastW = -1.0f;
static int lastR = -1;
static std::vector<Line> gridLines;
@ -455,6 +455,7 @@ void Engine::Init()
glewInit();
g_engineConfig.LoadFromFile();
Logger::LogOk("Config Core");
IMGUI_CHECKVERSION();
ImGui::CreateContext();
@ -522,7 +523,7 @@ void Engine::Init()
AudioEngine::Init();
AssetManager::LoadAssetAsync("C:\\Users\\spenc\\Music\\creative-technology-showreel-241274.mp3", AssetType::Audio);
// AssetManager::LoadAssetAsync("C:\\Users\\spenc\\Music\\creative-technology-showreel-241274.mp3", AssetType::Audio);
Logger::LogVerbose("Resverving Objects");
@ -535,7 +536,7 @@ void Engine::Init()
m_particleUpdates.reserve(24); // ~1K particle systems active is fair in effects-heavy scenes
m_animationsUpdates.reserve(512); // ~500 animated objects (characters, FX, etc.)
Logger::LogInfo("Initialized Engine");
Logger::LogOk("Engine Core");
}
core::types::Vec2 ScreenToWorld(const core::types::Vec2 &screenPos, const core::types::Vec2 &viewportSize, const core::types::Vec2 &cameraPos, float zoom)
@ -545,8 +546,6 @@ core::types::Vec2 ScreenToWorld(const core::types::Vec2 &screenPos, const core::
return world;
}
void Engine::collectObjects(bool playing, const glm::vec2 &camPos, float camZoom)
{
@ -612,6 +611,8 @@ void Engine::collectObjects(bool playing, const glm::vec2 &camPos, float camZoom
void Engine::Run()
{
Logger::LogOk("Engine Start");
while (!glfwWindowShouldClose(window))
{
if (g_engineConfig.settings.profile_editor)
@ -727,7 +728,6 @@ void Engine::Run()
ImGui::Checkbox("Performance Info", &g_engineConfig.settings.show_performance_window);
ImGui::Checkbox("Audio Viewer", &g_engineConfig.settings.show_audio_window);
ImGui::EndMenu();
}
@ -755,7 +755,6 @@ void Engine::Run()
ShowAssetBrowser();
DrawAudioPlayingList();
{
PROFILE_ENGINE_SCOPE("Engine::DrawSceneTree");
@ -1370,6 +1369,8 @@ void Engine::SaveScene(const std::string &path)
std::ofstream file(path);
file << out.c_str();
Logger::LogOk("Scene Saved");
}
void Engine::LoadScene(const std::string &path)
@ -1470,7 +1471,7 @@ void Engine::LoadScene(const std::string &path)
currentDetail = "Finalizing load...";
loadingUI.Update(currentStep, currentDetail, 1.0f);
Logger::LogInfo("[LoadScene] Loaded scene: %s", root["scene_name"].as<std::string>().c_str());
Logger::LogOk("Scene Loaded: %s", root["scene_name"].as<std::string>().c_str());
loadingUI.Destroy();
}

View File

@ -191,7 +191,6 @@ void Renderer::InitQuadBatch()
void Renderer::Init()
{
glGenFramebuffers(1, &fbo);
glBindFramebuffer(GL_FRAMEBUFFER, fbo);
@ -217,17 +216,24 @@ void Renderer::Init()
// Load lit shader
// Core renderers
spriteShader.LoadFromFile("src/assets/shaders/sprite.vert", "src/assets/shaders/sprite.frag");
unlitShader.LoadFromFile("src/assets/shaders/unlit.vert", "src/assets/shaders/unlit.frag");
tilemapShader.LoadFromFile("src/assets/shaders/tilemap.vert", "src/assets/shaders/tilemap.frag");
{
spriteShader.LoadFromFile("src/assets/shaders/sprite.vert", "src/assets/shaders/sprite.frag");
unlitShader.LoadFromFile("src/assets/shaders/unlit.vert", "src/assets/shaders/unlit.frag");
tilemapShader.LoadFromFile("src/assets/shaders/tilemap.vert", "src/assets/shaders/tilemap.frag");
// Bloom pipeline
extractShader.LoadFromFile("src/assets/shaders/fullscreen.vert", "src/assets/shaders/extract.frag");
blurShader.LoadFromFile("src/assets/shaders/fullscreen.vert", "src/assets/shaders/blur.frag");
compositeShader.LoadFromFile("src/assets/shaders/fullscreen.vert", "src/assets/shaders/composite.frag");
// Bloom pipeline
extractShader.LoadFromFile("src/assets/shaders/fullscreen.vert", "src/assets/shaders/extract.frag");
blurShader.LoadFromFile("src/assets/shaders/fullscreen.vert", "src/assets/shaders/blur.frag");
compositeShader.LoadFromFile("src/assets/shaders/fullscreen.vert", "src/assets/shaders/composite.frag");
s_UnlitQuadShader.LoadFromFile("src/assets/shaders/unlit_quad.vert", "src/assets/shaders/unlit_quad.frag");
Logger::LogOk("Shader Core");
}
InitQuadBatch();
s_UnlitQuadShader.LoadFromFile("src/assets/shaders/unlit_quad.vert", "src/assets/shaders/unlit_quad.frag");
SetColorCorrection(std::make_unique<ColorCorrection>());
@ -287,6 +293,7 @@ void Renderer::Init()
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
s_DrawCalls = 0;
Logger::LogOk("Renderer Core");
}
void Renderer::UpdateClusterLights()

View File

@ -21,7 +21,8 @@ bool AudioEngine::Init() {
return false;
}
Logger::LogVerbose("AudioEngine initialized with master-output callback");
Logger::LogOk("AudioEngine Core");
return true;
}

View File

@ -171,6 +171,8 @@ const char *MiniaudioResultToString(ma_result result)
void AssetManager::Init()
{
Logger::LogOk("AssetManager Core");
}
uint64_t AssetManager::GenerateUAID()

View File

@ -43,6 +43,7 @@ private:
std::vector<Logger::LogMessage> Logger::s_Messages;
bool Logger::s_AutoScroll = true;
bool Logger::s_ShowOk = true;
bool Logger::s_ShowInfo = true;
bool Logger::s_ShowWarning = true;
bool Logger::s_ShowError = true;
@ -53,6 +54,8 @@ const char *Logger::ToString(Level level)
{
switch (level)
{
case Ok:
return "Ok";
case Info:
return "Info";
case Warning:
@ -72,6 +75,8 @@ const char *Logger::GetAnsiColor(Level level)
{
switch (level)
{
case Ok:
return "\033[1;32m"; // Bold green
case Info:
return "\033[0;37m"; // Gray
case Warning:
@ -82,7 +87,6 @@ const char *Logger::GetAnsiColor(Level level)
return "\033[1;36m"; // Cyan
case Verbose:
return "\033[0;90m"; // Dim gray
default:
return "\033[0m"; // Reset
}
@ -115,6 +119,14 @@ void Logger::LogVA(Level level, const char *fmt, va_list args)
out << formatted << "\n";
}
void Logger::LogOk(const char *fmt, ...)
{
va_list args;
va_start(args, fmt);
LogVA(Ok, fmt, args);
va_end(args);
}
void Logger::LogInfo(const char *fmt, ...)
{
va_list args;
@ -155,8 +167,7 @@ void Logger::LogVerbose(const char *fmt, ...)
va_end(args);
}
void Logger::LogDepricated(const char* fmt, ...)
void Logger::LogDepricated(const char *fmt, ...)
{
va_list args;
va_start(args, fmt);
@ -170,8 +181,7 @@ void Logger::LogDepricated(const char* fmt, ...)
va_end(args);
}
void Logger::LogDepricatedWithCaller(const char* msg, const std::source_location location)
void Logger::LogDepricatedWithCaller(const char *msg, const std::source_location location)
{
std::string formatted = std::string("[DEPRECATED] ") + msg +
" (called from " + location.file_name() +
@ -180,20 +190,16 @@ void Logger::LogDepricatedWithCaller(const char* msg, const std::source_location
Log(Warning, "%s", formatted.c_str());
}
void Logger::LogDepricatedWithStackTrace(const char* msg)
void Logger::LogDepricatedWithStackTrace(const char *msg)
{
static std::once_flag symInitFlag;
std::call_once(symInitFlag, []() {
std::call_once(symInitFlag, []()
{
SymSetOptions(SYMOPT_DEFERRED_LOADS | SYMOPT_LOAD_LINES | SYMOPT_UNDNAME);
SymInitialize(GetCurrentProcess(), nullptr, TRUE);
});
SymInitialize(GetCurrentProcess(), nullptr, TRUE); });
HANDLE process = GetCurrentProcess();
void* stack[32];
void *stack[32];
USHORT frames = CaptureStackBackTrace(0, 32, stack, nullptr);
std::string formatted = std::string("[DEPRECATED] ") + msg + "\n Call stack:";
@ -238,15 +244,11 @@ void Logger::LogDepricatedWithStackTrace(const char* msg)
Log(Warning, "%s", formatted.c_str());
}
void Logger::Clear()
{
s_Messages.clear();
}
void Logger::Draw(const char *title)
{
ImGui::Begin(title);
@ -257,6 +259,9 @@ void Logger::Draw(const char *title)
ImGui::Checkbox("Auto-scroll", &s_AutoScroll);
ImGui::Separator();
// New Ok checkbox
ImGui::Checkbox("Ok", &s_ShowOk);
ImGui::SameLine();
ImGui::Checkbox("Info", &s_ShowInfo);
ImGui::SameLine();
ImGui::Checkbox("Warning", &s_ShowWarning);
@ -270,17 +275,18 @@ void Logger::Draw(const char *title)
ImGui::BeginChild("LogMessages");
// Filter
std::vector<const LogMessage *> filtered;
filtered.reserve(s_Messages.size());
for (const auto &msg : s_Messages)
for (auto &m : s_Messages)
{
if ((msg.level == Info && !s_ShowInfo) ||
(msg.level == Warning && !s_ShowWarning) ||
(msg.level == Error && !s_ShowError) ||
(msg.level == Debug && !s_ShowDebug) ||
(msg.level == Verbose && !s_ShowVerbose))
if ((m.level == Ok && !s_ShowOk) ||
(m.level == Info && !s_ShowInfo) ||
(m.level == Warning && !s_ShowWarning) ||
(m.level == Error && !s_ShowError) ||
(m.level == Debug && !s_ShowDebug) ||
(m.level == Verbose && !s_ShowVerbose))
continue;
filtered.push_back(&msg);
filtered.push_back(&m);
}
ImGuiListClipper clipper;
@ -289,32 +295,34 @@ void Logger::Draw(const char *title)
{
for (int idx = clipper.DisplayStart; idx < clipper.DisplayEnd; idx++)
{
const LogMessage *msg = filtered[idx];
ImVec4 color;
auto msg = filtered[idx];
ImVec4 col;
switch (msg->level)
{
case Ok:
col = ImVec4(0.6f, 1.0f, 0.6f, 1.0f);
break;
case Info:
color = ImVec4(0.8f, 0.8f, 0.8f, 1.0f);
col = ImVec4(0.8f, 0.8f, 0.8f, 1.0f);
break;
case Warning:
color = ImVec4(1.0f, 0.85f, 0.3f, 1.0f);
col = ImVec4(1.0f, 0.85f, 0.3f, 1.0f);
break;
case Error:
color = ImVec4(1.0f, 0.3f, 0.3f, 1.0f);
col = ImVec4(1.0f, 0.3f, 0.3f, 1.0f);
break;
case Debug:
color = ImVec4(0.3f, 0.9f, 1.0f, 1.0f);
col = ImVec4(0.3f, 0.9f, 1.0f, 1.0f);
break;
case Verbose:
color = ImVec4(0.5f, 0.5f, 0.5f, 1.0f);
col = ImVec4(0.5f, 0.5f, 0.5f, 1.0f);
break;
default:
color = ImVec4(1, 1, 1, 1);
col = ImVec4(1, 1, 1, 1);
break;
}
ImGui::PushStyleColor(ImGuiCol_Text, color);
ImGui::PushStyleColor(ImGuiCol_Text, col);
ImGui::Text("[%s] %s", ToString(msg->level), msg->text.c_str());
ImGui::PopStyleColor();
}

View File

@ -16,6 +16,7 @@ class Logger
public:
enum Level
{
Ok,
Info,
Warning,
Error,
@ -25,6 +26,7 @@ public:
static void Log(Level level, const char *fmt, ...);
static void LogVA(Level level, const char *fmt, va_list args);
static void LogOk(const char *fmt, ...);
static void LogInfo(const char *fmt, ...);
static void LogWarning(const char *fmt, ...);
static void LogError(const char *fmt, ...);
@ -50,6 +52,7 @@ private:
static std::vector<LogMessage> s_Messages;
static bool s_AutoScroll;
static bool s_ShowOk;
static bool s_ShowInfo;
static bool s_ShowWarning;
static bool s_ShowError;

View File

@ -50,6 +50,7 @@ GLuint Shader::Compile(GLenum type, const std::string& source) {
type == GL_VERTEX_SHADER ? "Vertex" : "Fragment");
}
return shader;
}