AuroraRuntime/Source/Console/ColorConvert.hpp

119 lines
4.1 KiB
C++

/***
Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: ColorConvert.hpp
Date: 2022-5-2
Author: Reece
***/
#pragma once
namespace Aurora::Console
{
static const AuArray<const char*, static_cast<AuUInt>(EAnsiColor::eEnumCount)> kAnsiColorForegroundToVirtualEscape =
{
"\033[0;31m",
"\033[1;31m",
"\033[0;32m",
"\033[1;32m",
"\033[0;33m",
"\033[1;33m",
"\033[0;34m",
"\033[1;34m",
"\033[0;35m",
"\033[1;35m",
"\033[0;36m",
"\033[1;36m",
"\033[0;37m",
"\033[0;30m",
"\033[0;39m"
};
static const AuArray<AuString, static_cast<AuUInt>(EAnsiColor::eEnumCount)> kAnsiColorBackgroundToVirtualEscape
{
"\033[0;41m",
"\033[1;41m",
"\033[0;42m",
"\033[1;42m",
"\033[0;43m",
"\033[1;43m",
"\033[0;44m",
"\033[1;44m",
"\033[0;45m",
"\033[1;45m",
"\033[0;46m",
"\033[1;46m",
"\033[0;47m",
"\033[0;40m",
"\033[0;49m"
};
#if defined(AURORA_IS_MODERNNT_DERIVED)
#define FOREGROUND_WHITE (FOREGROUND_RED | FOREGROUND_BLUE | FOREGROUND_GREEN)
#define FOREGROUND_YELLOW (FOREGROUND_RED | FOREGROUND_GREEN)
#define FOREGROUND_CYAN (FOREGROUND_BLUE | FOREGROUND_GREEN)
#define FOREGROUND_MAGENTA (FOREGROUND_RED | FOREGROUND_BLUE)
#define FOREGROUND_BLACK 0
#define FOREGROUND_INTENSE_RED (FOREGROUND_RED | FOREGROUND_INTENSITY)
#define FOREGROUND_INTENSE_GREEN (FOREGROUND_GREEN | FOREGROUND_INTENSITY)
#define FOREGROUND_INTENSE_BLUE (FOREGROUND_BLUE | FOREGROUND_INTENSITY)
#define FOREGROUND_INTENSE_WHITE (FOREGROUND_WHITE | FOREGROUND_INTENSITY)
#define FOREGROUND_INTENSE_YELLOW (FOREGROUND_YELLOW | FOREGROUND_INTENSITY)
#define FOREGROUND_INTENSE_CYAN (FOREGROUND_CYAN | FOREGROUND_INTENSITY)
#define FOREGROUND_INTENSE_MAGENTA (FOREGROUND_MAGENTA | FOREGROUND_INTENSITY)
#define BACKGROUND_WHITE (BACKGROUND_RED | BACKGROUND_BLUE | BACKGROUND_GREEN)
#define BACKGROUND_YELLOW (BACKGROUND_RED | BACKGROUND_GREEN)
#define BACKGROUND_CYAN (BACKGROUND_BLUE | BACKGROUND_GREEN)
#define BACKGROUND_MAGENTA (BACKGROUND_RED | BACKGROUND_BLUE)
#define BACKGROUND_BLACK 0
#define BACKGROUND_INTENSE_RED (BACKGROUND_RED | BACKGROUND_INTENSITY)
#define BACKGROUND_INTENSE_GREEN (BACKGROUND_GREEN | BACKGROUND_INTENSITY)
#define BACKGROUND_INTENSE_BLUE (BACKGROUND_BLUE | BACKGROUND_INTENSITY)
#define BACKGROUND_INTENSE_WHITE (BACKGROUND_WHITE | BACKGROUND_INTENSITY)
#define BACKGROUND_INTENSE_YELLOW (BACKGROUND_YELLOW | BACKGROUND_INTENSITY)
#define BACKGROUND_INTENSE_CYAN (BACKGROUND_CYAN | BACKGROUND_INTENSITY)
#define BACKGROUND_INTENSE_MAGENTA (BACKGROUND_MAGENTA | BACKGROUND_INTENSITY)
static const AuArray<DWORD, static_cast<AuUInt>(EAnsiColor::eEnumCount)> kAnsiColorForegroundToNT
{
FOREGROUND_RED,
FOREGROUND_INTENSE_RED,
FOREGROUND_GREEN,
FOREGROUND_INTENSE_GREEN,
FOREGROUND_YELLOW,
FOREGROUND_INTENSE_YELLOW,
FOREGROUND_BLUE,
FOREGROUND_INTENSE_BLUE,
FOREGROUND_MAGENTA,
FOREGROUND_INTENSE_MAGENTA,
FOREGROUND_CYAN,
FOREGROUND_INTENSE_CYAN,
FOREGROUND_WHITE,
FOREGROUND_BLACK,
FOREGROUND_WHITE
};
static const AuArray<DWORD, static_cast<AuUInt>(EAnsiColor::eEnumCount)> kAnsiColorBackgroundToNT
{
BACKGROUND_RED,
BACKGROUND_INTENSE_RED,
BACKGROUND_GREEN,
BACKGROUND_INTENSE_GREEN,
BACKGROUND_YELLOW,
BACKGROUND_INTENSE_YELLOW,
BACKGROUND_BLUE,
BACKGROUND_INTENSE_BLUE,
BACKGROUND_MAGENTA,
BACKGROUND_INTENSE_MAGENTA,
BACKGROUND_CYAN,
BACKGROUND_INTENSE_CYAN,
BACKGROUND_WHITE,
BACKGROUND_BLACK,
BACKGROUND_BLACK
};
#endif
}