タイマ機能もFoundationで提供されます. タイマクラスはUTTimerです. タイマを作成するには
UTTimerIf* timer = UTTimerIf::Create();
とします.UTTimerには以下のAPIがあります.
[Get|Set]Resolution | 分解能の取得と設定 |
[Get|Set]Interval | 周期の取得と設定 |
[Get|Set]Mode | モードの取得と設定 |
[Get|Set]Callback | コールバック関数の取得と設定 |
IsStarted | 動いているかどうか |
IsRunning | コールバック呼び出し中 |
Start | 始動 |
Stop | 停止 |
Call | コールバック呼び出し |
SetModeで指定できるモードには以下があります.
MULTIEDIA | マルチメディアタイマ |
THREAD | 独立スレッド |
FRAMEWORK | Frameworkが提供するタイマ |
IDLE | Frameworkが提供するアイドルコールバック |
マルチメディアタイマはWindowsが提供する高機能タイマです. 独立スレッドモードでは,タイマ用のスレッドが実行されSleep関数により周期が制御されます. FRAMEWORKとIDLEモードを利用するに はFWAppのCreateTimer関数を用いる必要があります. 基本的にFRAMEWORKモードではGLUTのタイマコールバックが使われ, IDLEモードではGLUTのアイドルコールバックが使われます.
FrameworkモジュールのFWAppを利用する場合は,FWAppのCreateTimer関数を利用する方が便利でしょう.