From 0323e7512fd7e3402ca6c5da7b30ce7bb007a060 Mon Sep 17 00:00:00 2001 From: "Steinar H. Gunderson" Date: Sun, 10 Dec 2017 15:37:37 +0100 Subject: [PATCH] When a shader fails compilation, add some line numbers. --- util.cpp | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/util.cpp b/util.cpp index 2f6e694..9b01882 100644 --- a/util.cpp +++ b/util.cpp @@ -157,7 +157,19 @@ GLuint compile_shader(const string &shader_src, GLenum type) GLint status; glGetShaderiv(obj, GL_COMPILE_STATUS, &status); if (status == GL_FALSE) { - fprintf(stderr, "Failed to compile shader: %s\n", shader_src.c_str()); + // Add some line numbers to easier identify compile errors. + string src_with_lines = "/* 1 */ "; + size_t lineno = 1; + for (char ch : shader_src) { + src_with_lines.push_back(ch); + if (ch == '\n') { + char buf[32]; + snprintf(buf, sizeof(buf), "/* %3zu */ ", ++lineno); + src_with_lines += buf; + } + } + + fprintf(stderr, "Failed to compile shader:\n%s\n", src_with_lines.c_str()); exit(1); } -- 2.39.2