FineKernelToolKit 4.2.13
|
フレームレート制御クラス [詳解]
#include <FK/FrameController.h>
公開メンバ関数 | |
fk_FrameController (int dwFps=60, bool bFrameSkip=true) | |
コンストラクタ | |
~fk_FrameController () | |
デストラクタ | |
void | setFPS (int fps) |
フレームレート指定関数 | |
void | setFrameSkipMode (bool bFrameSkip) |
フレームスキップモード設定関数 | |
bool | getDrawFlag (void) |
描画フラグ取得関数 | |
void | timeRegular (void) |
フレームキープ基準点指定関数 | |
unsigned long | getSkipRate (void) |
スキップレート取得関数 | |
unsigned long | getFrameRate (void) |
フレームレート取得関数 | |
フレームレート制御クラス
このクラスは、フレームレートのキープや計測などの機能を提供します。 fk_Window にも同様の実装がありますが、それよりも高機能です。 fk_AppWindow では内部実装としてこのクラスを利用しています。 fk_Window を利用する場合でも、このクラスだけ単体で利用することが可能です。
FK::fk_FrameController::fk_FrameController | ( | int | dwFps = 60 , |
bool | bFrameSkip = true |
||
) |
コンストラクタ
FK::fk_FrameController::~fk_FrameController | ( | ) |
デストラクタ
void FK::fk_FrameController::setFPS | ( | int | fps | ) |
フレームレート指定関数
timeRegular() で時間調整をする際に目標とするフレームレートを指定します。 デフォルトでは 60FPS になっています。
[in] | fps | キープしたいフレームレート。 |
void FK::fk_FrameController::setFrameSkipMode | ( | bool | bFrameSkip | ) |
フレームスキップモード設定関数
setFPS() で設定したフレームレートを下回った場合に、 描画フラグでスキップを促すか否かを設定します。 デフォルトでは有効になっており、多くの場面ではその方が適切ですが、 あまりに過負荷なプログラムでは、画面が一切更新されずに応答不能に見える場合があります。 そのような場合は、一定時間が経過したら強制的に描画を行うように調整するのが良いでしょう。
[in] | bFrameSkip | フレームスキップを有効にする場合は true を、無効にする場合は false を渡します。 |
bool FK::fk_FrameController::getDrawFlag | ( | void | ) |
描画フラグ取得関数
timeRegular() 使用時に、フレームレートに応じて、 描画するべきか、スキップするべきかを判定して返します。
void FK::fk_FrameController::timeRegular | ( | void | ) |
フレームキープ基準点指定関数
この関数をコールしてから、次にコールされるまでを 1 フレームとして扱い、 その間が setFPS() で指定したフレームレートになるよう時間調整を行います。 ゲームのメインループ中で 1 度だけ呼ぶようにしてください。
unsigned long FK::fk_FrameController::getSkipRate | ( | void | ) |
スキップレート取得関数
1 秒間に描画をスキップした回数を取得します。
unsigned long FK::fk_FrameController::getFrameRate | ( | void | ) |
フレームレート取得関数
1 秒間に描画が行われている回数、いわゆる FPS(Frame Per Second) を取得します。