From 32ee3d9f57b37723ee97c3b798be6968f98df1b1 Mon Sep 17 00:00:00 2001 From: hachem Date: Tue, 22 Sep 2026 06:45:33 +0200 Subject: fix: windows support --- src/platform/opengl/shader.cpp | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'src/platform/opengl/shader.cpp') diff --git a/src/platform/opengl/shader.cpp b/src/platform/opengl/shader.cpp index b815021..21335dd 100644 --- a/src/platform/opengl/shader.cpp +++ b/src/platform/opengl/shader.cpp @@ -6,6 +6,8 @@ #include #include #include +#include +#include "core/log.h" namespace Donut { @@ -89,6 +91,13 @@ namespace Donut in.read(&result[0], size); } } + else + { + std::error_code ec; + const auto cwd = std::filesystem::current_path(ec).u8string(); + DONUT_ERROR("shader file not found: {} (cwd {}; generated shaders live in assets/shaders/generated)", + filepath, std::string(cwd.begin(), cwd.end())); + } return result; } @@ -136,7 +145,7 @@ namespace Donut int max_length = 0; glGetShaderiv(shader, GL_INFO_LOG_LENGTH, &max_length); std::vector info_log(max_length); - glGetShaderInfoLog(shader, max_length, &max_length, &info_log[0]); + if (max_length > 0) glGetShaderInfoLog(shader, max_length, &max_length, info_log.data()); glDeleteShader(shader); for (auto id : glShaderIDs) glDeleteShader(id); @@ -160,7 +169,7 @@ namespace Donut int max_length = 0; glGetProgramiv(m_renderer_id, GL_INFO_LOG_LENGTH, &max_length); std::vector info_log(max_length); - glGetProgramInfoLog(m_renderer_id, max_length, &max_length, &info_log[0]); + if (max_length > 0) glGetProgramInfoLog(m_renderer_id, max_length, &max_length, info_log.data()); glDeleteProgram(m_renderer_id); for (auto id : glShaderIDs) glDeleteShader(id); -- cgit v1.3