Browse Source

Merge pull request #23345 from zorbathut/brogwilhelm/logfunctions/cs

Add new log functions for C#.
Rémi Verschelde 6 years ago
parent
commit
4fb35520fb
2 changed files with 26 additions and 0 deletions
  1. 16 0
      modules/mono/glue/Managed/Files/GD.cs
  2. 10 0
      modules/mono/glue/gd_glue.cpp

+ 16 - 0
modules/mono/glue/Managed/Files/GD.cs

@@ -70,6 +70,16 @@ namespace Godot
             return ResourceLoader.Load<T>(path);
         }
 
+        public static void LogError(string message)
+        {
+            godot_icall_GD_logerror(message);
+        }
+
+        public static void LogWarning(string message)
+        {
+            godot_icall_GD_logwarning(message);
+        }
+
         public static void Print(params object[] what)
         {
             godot_icall_GD_print(what);
@@ -238,5 +248,11 @@ namespace Godot
 
         [MethodImpl(MethodImplOptions.InternalCall)]
         internal extern static string godot_icall_GD_var2str(object var);
+
+        [MethodImpl(MethodImplOptions.InternalCall)]
+        internal extern static void godot_icall_GD_logerror(string type);
+
+        [MethodImpl(MethodImplOptions.InternalCall)]
+        internal extern static void godot_icall_GD_logwarning(string type);
     }
 }

+ 10 - 0
modules/mono/glue/gd_glue.cpp

@@ -157,6 +157,14 @@ bool godot_icall_GD_type_exists(MonoString *p_type) {
 	return ClassDB::class_exists(GDMonoMarshal::mono_string_to_godot(p_type));
 }
 
+void godot_icall_GD_logerror(MonoString *p_str) {
+	ERR_PRINTS(GDMonoMarshal::mono_string_to_godot(p_str));
+}
+
+void godot_icall_GD_logwarning(MonoString *p_str) {
+	WARN_PRINTS(GDMonoMarshal::mono_string_to_godot(p_str));
+}
+
 MonoArray *godot_icall_GD_var2bytes(MonoObject *p_var) {
 	Variant var = GDMonoMarshal::mono_object_to_variant(p_var);
 
@@ -186,6 +194,8 @@ void godot_register_gd_icalls() {
 	mono_add_internal_call("Godot.GD::godot_icall_GD_convert", (void *)godot_icall_GD_convert);
 	mono_add_internal_call("Godot.GD::godot_icall_GD_hash", (void *)godot_icall_GD_hash);
 	mono_add_internal_call("Godot.GD::godot_icall_GD_instance_from_id", (void *)godot_icall_GD_instance_from_id);
+	mono_add_internal_call("Godot.GD::godot_icall_GD_logerror", (void *)godot_icall_GD_logerror);
+	mono_add_internal_call("Godot.GD::godot_icall_GD_logwarning", (void *)godot_icall_GD_logwarning);
 	mono_add_internal_call("Godot.GD::godot_icall_GD_print", (void *)godot_icall_GD_print);
 	mono_add_internal_call("Godot.GD::godot_icall_GD_printerr", (void *)godot_icall_GD_printerr);
 	mono_add_internal_call("Godot.GD::godot_icall_GD_printraw", (void *)godot_icall_GD_printraw);