From 2bd998556ff40c13d16ba5e0a89f4ff879e6187c Mon Sep 17 00:00:00 2001 From: Sascha Willems Date: Wed, 1 Nov 2023 11:38:28 +0100 Subject: [PATCH] Slightly reformat validation messages and add color codes (windows only) --- base/VulkanDebug.cpp | 18 +++++++++++++++--- base/vulkanexamplebase.cpp | 6 ++++++ 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/base/VulkanDebug.cpp b/base/VulkanDebug.cpp index 7e77441b..e7b9c5ba 100644 --- a/base/VulkanDebug.cpp +++ b/base/VulkanDebug.cpp @@ -24,19 +24,31 @@ namespace vks void* pUserData) { // Select prefix depending on flags passed to the callback - std::string prefix(""); + std::string prefix; if (messageSeverity & VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT) { +#if defined(_WIN32) + prefix = "\033[32m" + prefix + "\033[0m"; +#endif prefix = "VERBOSE: "; } else if (messageSeverity & VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT) { prefix = "INFO: "; +#if defined(_WIN32) + prefix = "\033[36m" + prefix + "\033[0m"; +#endif } else if (messageSeverity & VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT) { prefix = "WARNING: "; +#if defined(_WIN32) + prefix = "\033[33m" + prefix + "\033[0m"; +#endif } else if (messageSeverity & VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT) { prefix = "ERROR: "; +#if defined(_WIN32) + prefix = "\033[31m" + prefix + "\033[0m"; +#endif } @@ -52,9 +64,9 @@ namespace vks } #else if (messageSeverity >= VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT) { - std::cerr << debugMessage.str() << "\n"; + std::cerr << debugMessage.str() << "\n\n"; } else { - std::cout << debugMessage.str() << "\n"; + std::cout << debugMessage.str() << "\n\n"; } fflush(stdout); #endif diff --git a/base/vulkanexamplebase.cpp b/base/vulkanexamplebase.cpp index 23fe39d8..a9c10a21 100644 --- a/base/vulkanexamplebase.cpp +++ b/base/vulkanexamplebase.cpp @@ -1115,6 +1115,12 @@ void VulkanExampleBase::setupConsole(std::string title) freopen_s(&stream, "CONIN$", "r", stdin); freopen_s(&stream, "CONOUT$", "w+", stdout); freopen_s(&stream, "CONOUT$", "w+", stderr); + // Enable flags so we can color the output + HANDLE consoleHandle = GetStdHandle(STD_OUTPUT_HANDLE); + DWORD dwMode = 0; + GetConsoleMode(consoleHandle, &dwMode); + dwMode |= ENABLE_VIRTUAL_TERMINAL_PROCESSING; + SetConsoleMode(consoleHandle, dwMode); SetConsoleTitle(TEXT(title.c_str())); }