SophiaFramework UNIVERSE 5.3 |
SFYRenderer クラス(描画エンジン)は、 レスポンダツリー上のレスポンダをレスポンダ空間に描画するためのクラスです。
注意 | |
---|---|
SFYRenderer クラスの一部の private 関数は SFYResponder クラスと SFYDistributer クラス内で利用されます。 一般のアプリ開発で直接操作されることはありません。 また、デフォルトで SFYApplication クラスが SFYRenderer インスタンスを内部的に保持し、 必要な設定や呼び出しを自動的にすべて行いますので、開発者がこのクラスを直接操作する必要はありません。 開発者が新たに別のレスポンダツリーを構築する場合は、 SFYRenderer インスタンスをレスポンダツリーのルートレスポンダに関連付ける必要があります。 |
例 887. 新しいレスポンダツリーを構築する
SFYRenderer _renderer; SFZRootSmp _root; SFCError error; // SFYRenderer インスタンスを初期化する // ※デバイス画面領域(携帯電話の画面領域)がレスポンダ空間として設定される if ((error = _renderer.Initialize()) == SFERR_NO_ERROR) { // レスポンダツリーのルートレスポンダを生成する if ((_root = SFZRoot::NewInstance(&error)) != null) { // ルートレスポンダに SFYRenderer インスタンスを設定する _root->SetRenderer(&_renderer); // その他の初期化処理 _root->SetRealBound(_root->GetSuitableBound()); _root->SetStateVisible(true); ... } }
描画エンジン | 描画処理 | レスポンダツリー | ルートレスポンダ | ルート(基礎編) | レスポンダ空間 | SFYResponder | SFYDistributer | SFYApplication SFZRoot | SFXEvent
コンストラクタ/デストラクタ |
---|
SFYRenderer( Void ) SFYRenderer クラスのコンストラクタです。
|
~SFYRenderer( Void ) SFYRenderer クラスのデストラクタです。
|
パブリック関数 | |
---|---|
SFXRectangleConstRef |
GetGlobalBound( Void ) レスポンダ空間を取得します。
|
SFCError |
Initialize( Void ) 初期化を行います。
|
Bool |
IsRendering( Void ) 描画エンジンが描画処理中かどうかを判定します。
|
Void |
Terminate( Void ) 終了処理を行います。
|
[ public, explicit ] SFYRenderer(Void);
[ public ] ~SFYRenderer(Void);
[ public, const ] SFXRectangleConstRef GetGlobalBound(Void);
この関数は、 この描画エンジンに設定されたレスポンダ空間を取得します。
注意 | |
---|---|
レスポンダ空間は、 レスポンダツリーを描画する矩形領域です。 この領域は、 SFYRenderer::Initialize 関数を使用して描画エンジンに設定します。 |
[ public ] SFCError Initialize(Void);
この関数は、描画エンジンの初期化を行います。
この関数の実行により、 レスポンダツリーを描画するためのレスポンダ空間が、 デバイス画面領域(始点はデバイス画面の左上端)に設定されます。
レスポンダ空間は、常にデバイス画面領域であり、変更できません。
Tip | |
---|---|
SFYRenderer::Initialize 関数は、 SFYRenderer インスタンスをレスポンダツリーに関連付ける前に呼び出します。 この処理は SFYApplication::SFYApplication コンストラクタ内で行われるので、 SFYApplication クラスを継承するアプリケーションクラスを持つアプリの開発では呼び出す必要はありません。 また、 SFYResponder::Render 関数を呼び出して再描画するときに描画エンジンが終了している場合、 自動的にこの関数が呼び出されて描画エンジンは初期化されます。 |
デフォルトの描画エンジンが SFYApplication::SFYApplication コンストラクタ内で初期化されるので、 一般のアプリ開発で SFYRenderer::Initialize 関数を呼び出す必要はありません。
// SFYApplication クラスの定義 class SFYApplication : public SFCApplication { SFMSEALCOPY(SFYApplication) private: SFYDistributer _distributer; // 配信エンジン SFYRenderer _renderer; // 描画エンジン SFZRootSmp _root; // ルート public: ... }; // SFYApplication クラスのコンストラクタの実装 /*protected */SFYApplication::SFYApplication(Void) static_throws { SFCError error; // 初期化処理 if (static_try()) { // 配信エンジンを初期化する static_throw(_distributer.Initialize()); if (static_try()) { // 描画エンジンを初期化する // ※デバイス画面領域(携帯電話の画面領域)がレスポンダ空間として設定される static_throw(_renderer.Initialize()); if (static_try()) { // ルートを作成する if ((_root = SFZRoot::NewInstance(&error)) != null) { // ルートに配信エンジンを設定する _root->SetDistributer(&_distributer); // ルートに描画エンジンを設定する _root->SetRenderer(&_renderer); // レスポンダ空間をルートの実領域に設定する _root->SetRealBound(_root->GetSuitableBound()); // ルートの状態を「可視+活性+操作可能+フォーカス」にまとめて設定する _root->SetState(true, true, true, true); } else { static_throw(error); } } } } }// SFYApplication::SFYApplication //
参照: SFYDistributer::Initialize | SFYRenderer::Initialize | SFZRoot::NewInstance | SFYResponder::SetDistributer | SFYResponder::SetRenderer | SFYResponder::SetRealBound | SFYResponder::SetState |
SFYRenderer::Terminate | SFYApplication::SFYApplication | 描画エンジン | 描画処理 | レスポンダツリー | レスポンダ空間 | ルート
[ public, const ] Bool IsRendering(Void);
現在、描画エンジンが描画処理中かどうかを判定します。
[ public ] Void Terminate(Void);
この関数は、描画エンジンの終了処理を行います。
注意 | |
---|---|
描画エンジンがレスポンダツリーに関連付けられている場合、 SFYRenderer::Terminate 関数を呼び出す前にそのレスポンダツリー上のレスポンダを解放する必要があります。 |
デフォルトの描画エンジンは SFYApplication::~SFYApplication デストラクタ内で終了されるので、 一般のアプリ開発で SFYRenderer::Terminate 関数を呼び出す必要はありません。
// SFYApplication クラスの定義 class SFYApplication : public SFCApplication { SFMSEALCOPY(SFYApplication) private: SFYDistributer _distributer; // 配信エンジン SFYRenderer _renderer; // 描画エンジン SFZRootSmp _root; // ルート public: ... }; // SFYApplication クラスのデストラクタの実装 /*protected virtual */SFYApplication::~SFYApplication(Void) { // 終了処理(必ず下記の順序で行う) // レスポンダツリーを解放する _root.Release(); // 描画エンジンを終了する _renderer.Terminate(); // 配信エンジンを終了する _distributer.Terminate(); }// SFYApplication::~SFYApplication //
参照: SFXResponderPointer::Release | SFYRenderer::Terminate | SFYDistributer::Terminate
Copyright(c) 2002 - 2024 Sophia Cradle Incorporated All Rights Reserved. |