AlwaysRunFlagがTRUE時に
ウィンドウを他のウィンドウで覆いつくしたり、最小化したりすると
WaitVSyncFlagがTRUEでも
ScreenFlipがVsync待ちを行わなくなるようなのですが
これは仕様でしょうか?
以下テストソースです
ウィンドウを他のウィンドウで覆いつくしたり
最小化したりすると、CPU使用率がグンと上がり
フレームカウンターがすごい勢いで増えます。
ウィンドウ内の黒い部分が一部でも見えていればこの現象は起らない模様です。
#include "DxLib.h"
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
{
DxLib::ChangeWindowMode(TRUE);
DxLib::SetWaitVSyncFlag(TRUE);
if( DxLib::DxLib_Init() == -1 ) return -1;
DxLib::SetAlwaysRunFlag(TRUE);
if( DxLib::SetDrawScreen( DX_SCREEN_BACK ) != 0 ) return -1;
int frame = 0;
while (true)
{
if (DxLib::ProcessMessage() != 0) break;
DxLib::ClearDrawScreen();
DxLib::DrawFormatString(0,0,0x00FFFFFF,"%dframe",frame);
frame++;
DxLib::ScreenFlip();
}
// キー入力待ち
DxLib::WaitKey();
// DXライブラリの後始末
DxLib::DxLib_End();
// ソフトの終了
return 0;
}