Slightly reformat validation messages and add color codes (windows only)

This commit is contained in:
Sascha Willems 2023-11-01 11:38:28 +01:00
parent 5962189427
commit 2bd998556f
2 changed files with 21 additions and 3 deletions

View file

@ -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

View file

@ -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()));
}