MGL::XColor
Contents
MGL::XColor#
概要#
MGL::XColor
はxterm-256カラーに準拠して定義された色を表現するための型です。この型は256パターンの色を1バイトで表現するため、他の色表現よりも少ないサイズで色を扱えます。
MGL::XColor
はMGL::ColorまたはMGL::Color32のコンストラクタへと指定可能です。対応するカラーコードを直接取得したい場合はGetXColorCodeを使用してください。
宣言#
namespace MGL
{
enum class XColor : uint8_t;
{
// 下記参照
};
}
定義内容#
名前 |
値 |
対応するRGBAカラーコード |
---|---|---|
Black |
0 |
0x000000FF |
Maroon |
1 |
0x800000FF |
Green |
2 |
0x008000FF |
Olive |
3 |
0x808000FF |
Navy |
4 |
0x000080FF |
Purple |
5 |
0x800080FF |
Teal |
6 |
0x008080FF |
Silver |
7 |
0xC0C0C0FF |
Gray |
8 |
0x808080FF |
Red |
9 |
0xFF0000FF |
Lime |
10 |
0x00FF00FF |
Yellow |
11 |
0xFFFF00FF |
Blue |
12 |
0x0000FFFF |
Magenta |
13 |
0xFF00FFFF |
Cyan |
14 |
0x00FFFFFF |
White |
15 |
0xFFFFFFFF |
Crgb |
16から231 |
※下記のCrgbについてを参照 |
Gray0 |
232 |
0x080808FF |
Gray1 |
233 |
0x121212FF |
Gray2 |
234 |
0x1C1C1CFF |
Gray3 |
235 |
0x262626FF |
Gray4 |
236 |
0x303030FF |
Gray5 |
237 |
0x3A3A3AFF |
Gray6 |
238 |
0x444444FF |
Gray7 |
239 |
0x4E4E4EFF |
Gray8 |
240 |
0x585858FF |
Gray9 |
241 |
0x626262FF |
Gray10 |
242 |
0x6C6C6CFF |
Gray11 |
243 |
0x767676FF |
Gray12 |
244 |
0x808080FF |
Gray13 |
245 |
0x8A8A8AFF |
Gray14 |
246 |
0x949494FF |
Gray15 |
247 |
0x9E9E9EFF |
Gray16 |
248 |
0xA8A8A8FF |
Gray17 |
249 |
0xB2B2B2FF |
Gray18 |
250 |
0xBCBCBCFF |
Gray19 |
251 |
0xC6C6C6FF |
Gray20 |
252 |
0xD0D0D0FF |
Gray21 |
253 |
0xDADADAFF |
Gray22 |
254 |
0xE4E4E4FF |
Gray23 |
255 |
0xEEEEEEFF |
- ※Crgbについて
16から231までの定義は、rgbのそれぞれの要素を0から5で表現した
C000
からC555
までの名前で定義されています。0から5までの各要素の8ビットコードは順に0x00
,0x5F
,0x87
,0xAF
,0xD7
,0xFF
です。例:
XColor::C312
==Color32(0xAF5F87FF)
カラーテーブル#
関数・定数式#
種類 |
名前 |
内容 |
バージョン |
---|---|---|---|
定数式 |
XColorから32ビットRGBA値のカラーコードを取得 |
1.1.2+ |
|
関数 |
文字列のハッシュ値からXColorを取得 |
1.1.5+ |
バージョン情報#
- MGL 1.1.2
初回リリース
GetXColorCode#
XColorから32ビットRGBA値のカラーコードを取得
宣言#
namespace MGL
{
constexpr uint32_t GetXColorCode(XColor xcolor) noexcept;
}
引数#
- XColor xcolor
XColorの定数
戻り値#
引数に対応した32ビットRGBAカラーコード
説明#
XColor型の値から32ビットRGBAカラーコードを取得するための定数式です。
利用例#
// MGL::XColor::Limeのカラーコードを取得
auto colorCode = MGL::GetXColorCode(MGL::XColor::Lime);
MGL_TRACE("colorCode = 0x%08X", colorCode);
- 実行結果
colorCode = 0x00FF00FF
バージョン情報#
- MGL 1.1.2
初回リリース
GetXColor#
文字列のハッシュ値からXColorを取得
宣言#
namespace MGL
{
std::optional<XColor> GetXColor(uint32_t hash) noexcept;
}
引数#
- uint32_t hash
文字列のハッシュ値
戻り値#
- std::optional<XColor>
引数に対応したXColor
説明#
XColorの名前の文字列をハッシュ化した値から、対応するXColorを取得します。
引数のには定義名を小文字で表した文字列からMGL::Hash::FNV1aで生成したハッシュ値を指定します。戻り値はオプショナルであり、対応したXColorが見つからず取得に失敗した場合は無効なオブジェクトを返します。
利用例#
// 文字列"lime"のハッシュ値からXColorを取得
if (auto color = MGL::GetXColor(MGL::Hash::FNV1a("lime")); color)
{
MGL_TRACE("XColor number = %d", uint8_t(color.value()));
}
- 実行結果
XColor number = 10
バージョン情報#
- MGL 1.1.5
初回リリース