管理人様、いつもお世話になっております。
表題の関数を使って【ウインドウがアクティブではない状態でも処理を続行】にして
以下のサンプルプログラム(フレームカウント)では、期待通りに動作しますが
ウインドウタスクバーに入れてから戻ってみると、1秒間のフレームカウントが
数千〜数万フレームほど描画をするようです、ご確認をよろしくお願い致します。
DXライブラリのバージョンは3.20fで、Windows 7の環境で現象が出ています。
#include "DxLib.h"
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
LONGLONG ProgressTime; // 時間経過(1秒を測定)
int FrameCounter = 0; // カウンター(フレーム)
ChangeWindowMode( TRUE); // ウィンドウモード
SetGraphMode( 640, 480, 32); // ウィンドウサイズ
SetAlwaysRunFlag( TRUE); // 処理を続行させる
if( DxLib_Init() == -1) { // DXライブラリの初期化
return -1; // エラーが起きたら直ちに終了
}
SetDrawScreen( DX_SCREEN_BACK); // 裏画面の書き込み許可
ProgressTime = GetNowCount(); // 時間経過 (ミリセコンド)
// ループ ※ESCキーを押すと終了する
while( CheckHitKey( KEY_INPUT_ESCAPE) == 0) {
if( ProcessMessage() == -1) { // プロセスメッセージのチェック
break;
}
ClearDrawScreen(); // 画面の初期化
ScreenFlip(); // スクリーンフリップ
FrameCounter++; // カウント(フレーム)
// 時間経過(1秒を測定)
if( (GetNowCount() - ProgressTime) >= 1000) {
ProgressTime = GetNowCount(); // 時間経過 (ミリセコンド)
printfDx( "%d\n", FrameCounter);
FrameCounter = 0; // クリアー
}
}
DxLib_End(); // DXライブラリの終了処理
return 0; // 正常終了
}