![]() ![]() ![]()
|
BREW C++ ライブラリ & GUI フレームワーク : SophiaFramework 3.0 |
SFXRGBColor クラスは色を RGB 値で管理するためのクラスです。R (赤)、G (緑)、B (青)、alpha (アルファ値) の値を 0 〜 255 の範囲で指定できます。
定義
// 「色」を表すクラスの定義(左から R、G、B、alpha) // この色は赤色 SFXRGBColor color(0xFF, 0x00, 0x00, 0x00);
SFXRGBColor クラスの使用
// 長方形 SFXRectangle rectangle(30, 30, 40, 40); // 長方形を塗りつぶす (第2引数は SFXRGBColor 型) graphics->FillRectangle(rectangle, color); // 直接青色を指定して長方形を塗りつぶす graphics->FillRectangle(SFXRectangle(90, 30, 40, 40), SFXRGBColor(0x00, 0x00, 0xFF, 0x00));

値の取得
UInt08 r = color.GetRed(); // r は 0xFF UInt08 g = color.GetGreen(); // g は 0x00 UInt08 b = color.GetBlue(); // b は 0x00 UInt08 a = color.GetAlpha(); // a は 0x00
値の設定
// R、G、B、アルファを設定 color.Set(0x00, 0xFF, 0x99, 0x00); // R、G、B を同じ色 (0x33) に設定。アルファは 0x00 color.Set(0x33, 0x00); // 個別に設定 color.SetRed(0x00); color.SetGreen(0xFF); color.SetBlue(0x99); color.SetAlpha(0x00);
値の演算
color.Set(0x30, 0xE0, 0x40, 0x00); // 値の加算 color.AddRed(0x60); // color の R 値は 0x90 になる color.AddGreen(0x60); // color の G 値は 0xFF になる // (オーバー フローは適切に処理される) color.Add(0x33, 0x10); // R, G, B に 0x33 を、アルファに 0x10 を加算する // 値の減算 color.SubBlue(0x60); // color の B 値は 0x00 になる // (アンダー フローは適切に処理される) color.Sub(0x33, 0x10); // R, G, B に 0x33 を、アルファに 0x10 を減算する
SFXFrameColor クラスは「影つきの枠」の色を管理するクラスです。
枠 (frame) の色と影 (shadow) の色をまとめて管理します。
値の設定
SFXFrameColor frameColor; frameColor.SetFrame(SFXRGBColor(0xFF, 0x00, 0x00, 0x00)); // 枠の色を設定 frameColor.SetShadow(SFXRGBColor(0x99, 0x99, 0xFF, 0x00)); // 影の色を設定
影つきの枠の描画
// 第1引数に描画する長方形を指定して描画
graphics->DrawFrame(SFXRectangle(20, 20, 40, 50), frameColor);

値の演算
frameColor.AddFrameRed(0x66); // 枠色の R 値に 0x66 を加算 frameColor.AddFrameRGB(0x66); // 枠色の各色に 0x66 を加算 frameColor.AddShadowBlue(0x66); // 影色の B 値に 0x66 を加算 frameColor.AddRed(0x66); // 枠色、影色の各 R 値に 0x66 を加算 frameColor.AddRGB(0x66); // 枠色、影色の各 RGB 値に 0x66 を加算
SFXBevelColor クラスはべベルの色を管理するクラスです。立体的な長方形を描画するのに使います。
ライト、ベース、ダークの各部分の色をまとめて管理します。
値の設定
SFXBevelColor bevelColor; bevelColor.SetBase(SFXRGBColor(0xFF, 0x00, 0x00, 0x00)); // ベース色を設定 bevelColor.SetLight(SFXRGBColor(0x00, 0xFF, 0x00, 0x00)); // ライト色を設定 bevelColor.SetDark(SFXRGBColor(0x00, 0x00, 0xFF, 0x00)); // ダーク色を設定
立体的な長方形の描画
// 第1引数に描画する長方形を指定
graphics->FillBevelRectangle(SFXRectangle(20, 20, 40, 50), bevelColor);

値の演算
bevelColor.AddBaseRed(0x66); // ベース色の R 値に 0x66 を加算 bevelColor.AddBaseRGB(0x66); // ベース色の各色に 0x66 を加算 bevelColor.AddLightBlue(0x66); // ライト色の B 値に 0x66 を加算 bevelColor.AddRed(0x66); // ライト、ベース、ダークの各 R 値に 0x66 を加算 bevelColor.AddRGB(0x66); // ライト、ベース、ダークの各 RGB 値に 0x66 を加算
図形や文字列を描画する際、色を指定する方法は 2 種類あります。
描画関数の引数で指定する方法
SFXGraphicsPtr graphics = SFXGraphics::GetInstance();
SFXRGBColor color(0x00, 0xFF, 0x00, 0x00);
// 文字列を color 色で描画
graphics->DrawText("text", SFXGrid(10, 20), color);
専用の関数で指定する方法
SFXGraphicsPtr graphics = SFXGraphics::GetInstance(); SFXRGBColor color(0x00, 0xFF, 0x00, 0x00); // 前景色を color に設定 graphics->SetForeColor(color); // 文字列を color 色で描画 graphics->DrawText("text", SFXGrid(10, 20));
引数で色を指定した場合、DrawText の内部で SetForeColor を呼び出します。複数回 DrawText を呼び出す場合は後者の方法を使います。
|
Copyright (C) 2002 - 2009 Sophia Cradle, Inc. All Rights Reserved. |
![]() ![]() ![]()
|