Quellcode durchsuchen

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.
Hugo Locurcio vor 4 Jahren
Ursprung
Commit
9fc2849a57
1 geänderte Dateien mit 7 neuen und 1 gelöschten Zeilen
  1. 7 1
      servers/rendering/renderer_rd/shader_compiler_rd.cpp

+ 7 - 1
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);