ホーム > デベロッパ > BREW FAQ

BREW FAQ : クリッピングを行うには?

クリッピングを行うには?

IGraphics インターフェイスの IGRAPHICS_SetClip 関数や、IDisplay インターフェイスの IDISPLAY_SetClipRect 関数を使用してクリッピングの範囲を設定できます。

SophiaFramework では、 SFXGraphics::SetClip 関数やSFBGraphics::SetClip 関数や SFBDisplay::SetClipRect 関数を使用します。

[ BREW API のみを使用したコード ]

//
//  クリッピングを使用して、円形の表示領域内に四角形を描画します。
//

IGraphics*      graphics = app->g;
AEEClip         clip;
AEERect         rect;

// 画面を緑色でクリアします。
IGRAPHICS_SetBackground(graphics, 0xCC, 0xFF, 0xCC);
IGRAPHICS_ClearViewport(graphics);

// クリッピング領域を円に設定します。
clip.type = CLIPPING_CIRCLE;
clip.shape.circle.cx = 60;
clip.shape.circle.cy = 60;
clip.shape.circle.r  = 40;
IGRAPHICS_SetClip(graphics, &clip,0);

// 塗り潰しモードを設定します。
IGRAPHICS_SetFillMode(graphics, TRUE);

// 描画色を赤色に設定します。
IGRAPHICS_SetColor(graphics, 0xFF, 0x88, 0x88, 0x00);
IGRAPHICS_SetFillColor(graphics, 0xFF, 0xCC, 0xCC, 0x00);

// 四角形を描画します。
rect.x  = 10;
rect.y  = 10;
rect.dx = 60;
rect.dy = 50;
IGRAPHICS_DrawRect(graphics, &rect);

// クリッピング領域をリセットします。
IGRAPHICS_SetClip(graphics, NULL, 0);

// 画面を更新します。
IGRAPHICS_Update(graphics);

[ SophiaFramework を使用したコード ]

//
//  クリッピングを使用して、円形の表示領域内に四角形を描画します。
//

SFXClip       clip;
SFXRectangle  rect;

// SFBGraphics インスタンスを作成します。
SFBGraphicsSmp  graphics = SFBGraphics::NewInstance();

// 画面を緑色でクリアします。
graphics->SetBackground(SFXRGBColor(0xCC, 0xFF, 0xCC, 0x00));
graphics->ClearViewport();

// クリッピング領域を円に設定します。
clip.Set(SFXCircle(60, 60, 40));
graphics->SetClip(&clip, 0);

// 塗り潰しモードを設定します。
graphics->SetFillMode(true);

// 描画色を赤色に設定します。
graphics->SetColor(SFXRGBColor(0xFF, 0x88, 0x88, 0x00));
graphics->SetFillColor(SFXRGBColor(0xFF, 0xCC, 0xCC, 0x00));

// 四角形を描画します。
rect.Set(10, 10, 60, 50);
graphics->DrawRect(&rect);

// クリッピング領域をリセットします。
graphics->ClearClip();

// 画面を更新します。
graphics->Update();