28 #include "tiny_dnn/config.h"
47 inline WORD getColorAttr(Color c) {
49 case Color::RED:
return FOREGROUND_RED;
50 case Color::GREEN:
return FOREGROUND_GREEN;
51 case Color::BLUE:
return FOREGROUND_BLUE;
52 case Color::YELLOW:
return FOREGROUND_GREEN|FOREGROUND_RED;
53 default: assert(0);
return 0;
57 inline const char* getColorEscape(Color c) {
59 case Color::RED:
return "\033[31m";
60 case Color::GREEN:
return "\033[32m";
61 case Color::BLUE:
return "\033[34m";
62 case Color::YELLOW:
return "\033[33m";
63 default: assert(0);
return "";
68 inline void coloredPrint(Color c,
const char* fmt, ...) {
73 const HANDLE std_handle = ::GetStdHandle(STD_OUTPUT_HANDLE);
75 CONSOLE_SCREEN_BUFFER_INFO buffer_info;
76 ::GetConsoleScreenBufferInfo(std_handle, &buffer_info);
77 const WORD old_color = buffer_info.wAttributes;
78 const WORD new_color = getColorAttr(c) | FOREGROUND_INTENSITY;
81 ::SetConsoleTextAttribute(std_handle, new_color);
86 ::SetConsoleTextAttribute(std_handle, old_color);
88 printf(
"%s", getColorEscape(c));
95 inline void coloredPrint(Color c,
const std::string& msg) {
96 coloredPrint(c, msg.c_str());