summaryrefslogtreecommitdiff
path: root/servers
diff options
context:
space:
mode:
authorHugo Locurcio <hugo.locurcio@hugo.pro>2021-07-17 03:05:11 +0200
committerHugo Locurcio <hugo.locurcio@hugo.pro>2021-07-17 03:05:11 +0200
commit9fc2849a57823ee578dd54d97673b7baefbf7a18 (patch)
treeb50874de692f6d17886d1195fd4088ae2d877a84 /servers
parentde83ee57e5bb0e4fb494455a98d597d76289d321 (diff)
Add error marking to the shader error console output
This makes it possible to see where the shader error is without having to look at the trace printed below the source code.
Diffstat (limited to 'servers')
-rw-r--r--servers/rendering/renderer_rd/shader_compiler_rd.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/servers/rendering/renderer_rd/shader_compiler_rd.cpp b/servers/rendering/renderer_rd/shader_compiler_rd.cpp
index b347197289..1dde92d8ff 100644
--- a/servers/rendering/renderer_rd/shader_compiler_rd.cpp
+++ b/servers/rendering/renderer_rd/shader_compiler_rd.cpp
@@ -1351,7 +1351,13 @@ Error ShaderCompilerRD::compile(RS::ShaderMode p_mode, const String &p_code, Ide
if (err != OK) {
Vector<String> shader = p_code.split("\n");
for (int i = 0; i < shader.size(); i++) {
- print_line(itos(i + 1) + " " + shader[i]);
+ if (i + 1 == parser.get_error_line()) {
+ // Mark the error line to be visible without having to look at
+ // the trace at the end.
+ print_line(vformat("E%4d-> %s", i + 1, shader[i]));
+ } else {
+ print_line(vformat("%5d | %s", i + 1, shader[i]));
+ }
}
_err_print_error(nullptr, p_path.utf8().get_data(), parser.get_error_line(), parser.get_error_text().utf8().get_data(), ERR_HANDLER_SHADER);