static VkBool32 HandlePFN_vkDebugUtilsMessengerCallbackEXT(VkDebugUtilsMessageSeverityFlagsEXT messageSeverity, VkDebugUtilsMessageTypeFlagsEXT messageTypes, IntPtr pCallbackData, IntPtr pUserData) { VkDebugUtilsMessengerCallbackDataEXT data = Marshal.PtrToStructure <VkDebugUtilsMessengerCallbackDataEXT> (pCallbackData); ConsoleColor curColor = Console.ForegroundColor; switch (messageSeverity) { case VkDebugUtilsMessageSeverityFlagsEXT.VerboseEXT: Console.ForegroundColor = ConsoleColor.White; break; case VkDebugUtilsMessageSeverityFlagsEXT.InfoEXT: Console.ForegroundColor = ConsoleColor.DarkCyan; break; case VkDebugUtilsMessageSeverityFlagsEXT.WarningEXT: Console.ForegroundColor = ConsoleColor.DarkYellow; break; case VkDebugUtilsMessageSeverityFlagsEXT.ErrorEXT: Console.ForegroundColor = ConsoleColor.Red; break; } switch (messageTypes) { case VkDebugUtilsMessageTypeFlagsEXT.GeneralEXT: Console.Write("GEN:"); break; case VkDebugUtilsMessageTypeFlagsEXT.PerformanceEXT: Console.Write("PERF:"); break; } byte [] tmp = new byte [1024]; if (data.pMessage != IntPtr.Zero) { byte b = Marshal.ReadByte(data.pMessage); int i = 1; while (b != 0) { tmp [i] = b; b = Marshal.ReadByte(data.pMessage, i); i++; } Console.WriteLine(Encoding.UTF8.GetString(tmp)); Console.ForegroundColor = curColor; } return(false); }
public static VkBool32 DebugCallback(VkDebugUtilsMessageSeverityFlagsEXT messageSeverity, VkDebugUtilsMessageTypeFlagsEXT messageType, VkDebugUtilsMessengerCallbackDataEXT pCallbackData, void *pUserData) { Debug.WriteLine($"<<Vulkan Validation Layer>> {Helpers.GetString(pCallbackData.pMessage)}"); return(false); }