Shinobi Library - システムマネージャ関数

syMngInit

システムマネージャの初期化

書式

void syMngInit( void )

引数

なし

戻り値

なし

解説

システムマネージャを初期化します。

システムマネージャは、以下の5つのファイバを生成します。 メインファイバは、通常のプログラムが動作するファイバです。 その他のファイバをサブファイバと呼びます。 ミドルウェアファイバはミドルウェアライブラリが使用しますので、 通常ではユーザが使用することはありません。

 定義   意味 
 SYD_MNG_FLVL_TMR   タイマファイバ 
 SYD_MNG_FLVL_UHIGH   高優先度ファイバ 
 SYD_MNG_FLVL_MAIN   メインファイバ 
 SYD_MNG_FLVL_MW   ミドルウェアファイバ 
 SYD_MNG_FLVL_UIDL   アイドルファイバ 

どのレベルのファイバが実行されていても、V-Sync割り込みが発生すると 強制的にサスペンドし、トップレベルファイバに制御を移します。 そして上記のファイバが順番に実行されます。

各サブファイバは、登録されたサブファイバ関数は順次実行する永久ループです。 すべての関数が実行されると、もう一度最初から実行されます。

メインを除く各レベルのファイバ毎にサブファイバ関数を8個まで登録できます。 次のレベルに制御を移すタイミングは以下の通りです。

  1. syMngSleep関数が実行された時
  2. すべてのサブファイバ関数がFALSEを返した時
  3. タイマファイバ実行中に最大実行時間を過ぎた時

サブファイバ関数のどれか1個でもTRUEを返した場合は、 次のレベルには制御を移しませんので注意が必要です。

デフォルトでは、V-Sync割り込みが発生するとメインファイバに実行を移します。 タイマファイバと高優先度ファイバは実行されません。 これらのファイバを実行したい場合は、syMngSetSfbrTopLvl関数によって トップレベルファイバを変更する必要があります。


用例

<Ninja2>
njInitDevice();
syMngInit();
syMngSetSfbrTopLvl(SYD_MNG_FLVL_TMR);

<Kamui2>
kmInitDevice();
syMngInit();
syMngSetSfbrTopLvl(SYD_MNG_FLVL_TMR);


備考

システムマネージャは、初期化時にkmSetWaitVsyncCallbackを使用しています。 Vsync待ちコールバック関数を登録したい場合は、KaumiやNinjaの関数を 使用せずにsyMngEntryWaitVsyncCallback関数を使用してください。

また、サブファイバ関数内からC言語の標準関数を含むすべてのライブラリ関数を 使用することはできません。


参照

syMngFinish()
 システムマネージャの終了
syMngSetSfbrTopLvl()
 トップレベルファイバの設定
syMngEntryWaitVsyncCallback()
 Vsync待ちコールバック関数の登録

syMngInit
COPYRIGHT © SEGA ENTERPRISES, LTD., 1998-2000