前のページ次のページ上に戻るホーム SophiaFramework UNIVERSE 5.0
SFYRenderer
レスポンダツリーを描画するクラスです。
#include <SFYRenderer.h.hpp>
class SFYRenderer;
SFMTYPEDEFCLASS(SFYRenderer)

協調図

SFYRenderer クラスの協調図

解説

複数のレスポンダで構成されたレスポンダツリーを画面に描画するクラスです。このクラスの一部の関数は SFYResponder クラスを通して利用され開発者が直接操作することはありません。

通常、SFYApplication クラスがこのクラスのインスタンスを保持し必要なすべての設定や呼び出しを自動的に行いますが、開発者が直接このクラスを利用し別のレスポンダツリー空間を構築することも可能です。

新しいレスポンダツリー空間を画面に描画するには、このクラスのインスタンスにレスポンダツリーを関連付けておきます。

例 801. 新しいレスポンダツリー空間を構築する

SFYRenderer _renderer;
SFZRootSmp _root;
SFCError error;

// SFYRenderer クラスのインスタンスを初期化
if ((error = _renderer.Initialize(SFXGraphics::GetDeviceRectangle())) == SFERR_NO_ERROR) {

    // レスポンダツリーのルートレスポンダを生成
    if ((_root = SFZRoot::NewInstance(&error)) != null) {

        // ルートレスポンダに SFYRenderer クラスのインスタンスを設定
        _root->SetRenderer(&_renderer);

        // その他の初期化処理
        _root->SetRealBound(_root->GetSuitableBound());
        _root->SetStateVisible(true);
        ...
    }
}

例 802. 新しいレスポンダツリー空間を破棄する

SFYRenderer _renderer;
SFZRootSmp _root;

...

// 破棄する順序を明示的に記述
_root.Release();
_renderer.Terminate();

例 803. 新しいレスポンダツリー空間を描画する

SFZRootSmp _root;
SFCError error;

...

// レスポンダツリーを描画するにはルートレスポンダの Render 関数を呼び出す
error = _root->Render();

メンバ

コンストラクタ/デストラクタ
SFYRenderer( Void )
SFYRenderer クラスのコンストラクタです。
~SFYRenderer( Void )
SFYRenderer クラスのデストラクタです。
パブリック関数
SFXRectangleConstRef GetGlobalBound( Void )
設定されている描画空間を取得します。
SFCError Initialize( SFXRectangleConstRef global )
初期化処理を行います。
Void Terminate( Void )
終了処理を行います。

SFYRenderer::SFYRenderer
SFYRenderer クラスのコンストラクタです。
[ public, explicit ]
SFYRenderer(Void);

SFYRenderer::~SFYRenderer
SFYRenderer クラスのデストラクタです。
[ public ]
~SFYRenderer(Void);

SFYRenderer::GetGlobalBound
設定されている描画空間を取得します。
[ public, const ]
SFXRectangleConstRef GetGlobalBound(Void);

解説

SFYRenderer::Initialize 関数で設定された、描画空間を表す矩形を取得します。


SFYRenderer::Initialize
初期化処理を行います。
[ public ]
SFCError Initialize(
    SFXRectangleConstRef global   // 描画空間を表す矩形(レスポンダ空間)
);

引数

global

画面上での絶対座標で指定します。関連付けられたレスポンダツリーはこの空間の中に描画されます。

戻り値

  • 成功したとき : SFERR_NO_ERROR
  • メモリ不足のとき : SFERR_NO_MEMORY
  • その他の失敗のとき : SFERR_FAILED

解説

描画に必要なすべてのリソースを初期化します。

SFYRendererクラスをレスポンダツリーに関連付けるには、 事前に SFYRenderer::Initialize 関数を呼び出して描画エンジンを初期化しておく必要があります。

このとき描画エンジンに関連付けられたレスポンダツリーを描画するための「レスポンダ空間」と呼ばれる矩形領域も設定します。

[Note] レスポンダ空間

レスポンダ空間とは、 描画エンジンに関連付けられたレスポンダツリーを描画する画面上の矩形領域のことです。

SFYRenderer::Initialize 関数を呼び出して描画エンジンを初期化するときに設定します。

多くの場合、レスポンダ空間として携帯電話画面の全領域を設定します。

勿論、携帯電話の画面領域の部分領域を指定することも可能ですが、 レスポンダツリーはレスポンダ空間の中にしか描画されません。

描画エンジンと関連付けられたレスポンダツリーはこのレスポンダ空間と呼ばれる矩形領域の中に描画されます。

一般にルートの実領域はレスポンダ空間と一致させますが、 レスポンダ空間より大きくしたり、小さくすることもできます。 ただしレスポンダ空間よりも大きく実領域を設定した場合、 レスポンダ空間の矩形領域にしかレスポンダツリーは描画されません。

ルート実領域は動的に任意に再設定可能ですが、 レスポンダ空間は一度設定すると再設定することはできません。

なお、デフォルトのレスポンダ空間には携帯電話画面全体が設定されて固定です。

また開発者が描画エンジン配信エンジンを独自に生成して新たなレスポンダツリーを作るときに、 レスポンダ空間も設定することも可能です。

参照

レスポンダ空間 | レスポンダツリー | 描画エンジン | 配信エンジン | ルート | 実領域 | SFZRoot


SFYRenderer::Terminate
終了処理を行います。
[ public ]
Void Terminate(Void);

解説

描画に必要なすべてのリソースを解放して終了します。

このクラスがレスポンダツリーに関連付けられている場合、この関数を呼び出す前に関係するすべてのレスポンダを破棄しておきます。