SophiaFramework UNIVERSE 5.3 |
クリッピングとは、矩形や円、三角形、多角形など、指定した図形からはみだした部分を描画しないようにする機能です。
SFXClip はクリッピングする領域の図形を表すクラスです。
SFXGraphics インスタンスでは矩形のクリッピングだけがサポートされています。
矩形でテキストをクリッピングするコードは以下の通りです。
例 12.34. 矩形でクリッピングする方法
// 黒色 SFXRGBColor black(0x00, 0x00, 0x00, 0x00); // 矩形 SFXRectangle rectangle(10, 10, 150, 55); // 矩形を描画する graphics->DrawRectangle(rectangle, black); // 矩形のクリッピング領域を設定する graphics->SetClip(rectangle); // 矩形の左上 SFXGrid grid = rectangle.GetLeftTop(); // フォントの高さを取得する SInt16 fontHeight = graphics->GetFontHeight(); // テキストを描画する graphics->DrawSingleText("test clipping", grid, black); // テキストの描画: grid.AddY(fontHeight) で描画位置を fontHeight だけ下にずらしている graphics->DrawSingleText("test clipping", grid.AddY(fontHeight), black); graphics->DrawSingleText("test clipping", grid.AddY(fontHeight), black);
SFXRectangle 以外の図形でクリッピングする場合は、 SFXGraphics インスタンスではなく、SFBGraphics インスタンスを使います。
例 12.35. 円でクリッピングする方法
// SFXGraphics インスタンスが内部で保持する SFBGraphics インスタンスを取得する SFBGraphicsSmp sfb_graphics = graphics->GetSFBGraphics(); // 円 SFXCircle circle(100, 50, 40); // クリッピング領域を円に設定する SFXClip clip(circle); // クリッピング領域を設定する sfb_graphics->SetClip(&clip, AEE_GRAPHICS_FRAME); // 塗り潰しモードを設定する sfb_graphics->SetFillMode(true); // 塗り潰す色[灰色]を設定する sfb_graphics->SetFillColor(SFXRGBColor(0x99, 0x99, 0x99, 0x00)); // 矩形を描画する sfb_graphics->DrawRect(&SFXRectangle(55, 5, 60, 80));
矩形が円でクリッピングされています。
Copyright(c) 2002 - 2024 Sophia Cradle Incorporated All Rights Reserved. |