ホーム > デベロッパ > SophiaFramework > BREW C++ 逆引きコード集

BREW C++ プログラミング : SophiaFramework 逆引き FAQ・コード集

描画できない

描画できない場合は以下の項目を確認してください。

・GUI フレームワークを使用したアプリ (アプリクラスが SFYApplication を継承) の場合

1. 描画ハンドラの中で描画していますか?

2. 描画ハンドラマクロの引数の graphics を使って描画していますか?

// 描画ハンドラの定義(ウィンドウ内に描画)
XANDLER_IMPLEMENT_VOIDRENDER(MyWindow, OnRenderRequest, invoker, reason, graphics)
{
    unused(invoker);
    unused(reason);

    // 四角形を描画する
    graphics->DrawRectangle(SFXRectangle(10, 10, 25, 25));
    
    // graphics->Update(); は必要なし
}

3. コンストラクタ内で描画ハンドラを登録していますか?

// コンストラクタ
MyWindow::MyWindow(Void) : ...
{
    // ハンドラを登録する(エラー処理は省略)
   RegisterHandler(
            SFXEventRange(SFEVT_RESPONDER_RENDER, SFEVT_RESPONDER_RENDER,
                                        SFP16_RENDER_REQUEST, SFP16_RENDER_REQUEST),
            XANDLER_INTERNAL(OnRenderRequest));

    return;
}

・GUI フレームワークを使用しないアプリ (アプリクラスが SFCApplication を継承) の場合

1. グラフィックス・インターフェースを取得していますか?

SFXGraphicsPtr graphics;

// グラフィックス・インターフェースを取得する
graphics = SFXGraphics::GetInstance();

// 四角形を描画する
graphics->DrawRectangle(SFXRectangle(10, 10, 25, 25));

2. SFXGraphics::Update 関数を呼び出していますか?

graphics->Update();

graphics インスタンスについては グラフィックインターフェースの取得 を参照

参照: リファレンス 3.1. SFY アプレット | リファレンス 5.5. カスタマイズ