FPS

■概要

FPSはFramesPerSecondの略でゲームなどで1秒間に画面を更新する回数のことです。
例えば60FPSの場合は1秒間で60回画面を切り替えます。

●デバッグ
	FPSをデバッグで利用する場合は、毎秒設定したFPSの値で更新されているかを確認し、
	「常に設定値に達している」「時折達していない」「常に達していない」などを調べます。
	その後、時折達していない、常に達していない場合は原因となる部分をコードから
	探し出し、修正を行います。
	※時折達していない場合はゲームのロード中などFPSが低下してしまう箇所が含まれることが
	 あるので、アプリ上で支障があるかないかを判断し、修正を行います。

●サンプル
	以下は「■実装方法」「■表示方法」を実装したサンプルです。

	サンプル

■実装方法

実装方法はFPS処理を行っているループ処理の中にフレームカウント処理を追加します。
そして、ループごとの時間を計測して時間が1秒を超えた際にカウントしたカウントを0に戻します。
この時にカウントした値を表示するようにすると毎秒のFPS数がわかります。

●コード例
	static DWORD prev_time = timeGetTime();	// 前回の時間
	static int frame_count = 0;		// フレームカウント
	DWORD now_time = timeGetTime();		// 今回のフレームの時間

	frame_count++;	// フレーム数をカウントする

	// 経過時間が1秒を超えたらカウントと時間をリセット
	if (now_time - prev_time >= 1000) 
	{
		char str[128];
		prev_time = now_time;
		frame_count = 0;
	}

■表示方法

表示方法はVisualStudioなどの開発環境のコンソール部分に表示する方法や
画面に表示する方法、PCアプリではWindowのタイトルバーに表示する方法などがあります。

●コンソール表示
	VisualStudioのコンソールに表示するには「OutputDebugString」関数を使用します。
	引数は文字列を指定するだけで使用可能です。

	例:
		OutputDebugString("コンソールで表示\n");

		debug_0001

●タイトルバー表示
	タイトルバーで表示するには「SetWindowText」関数を使用します。
	こちらは第一に引数にウィンドウハンドル、第二引数に文字列を指定することで使用可能です。

	例:
		SetWindowText(hWnd, "タイトル変更");

		debug_0002