切換前はちゃんと60(モニターのフレームレート)で動いているのですが、1度切換を行うと44になってしまいます。
検証ソース
/*================================================================
テストプログラム
================================================================*/
#include <DxLib.h>
#include <math.h>
/*================================================================
WinMain
================================================================*/
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow ){
//***** 必須 ****************************************
//ウィンドウタイトル名
SetMainWindowText( "Ideal" );
//フルスク時の設定
SetGraphMode( 640, 480, 32 );
//ログなし
SetOutApplicationLogValidFlag( false );
//スクリーン設定
ChangeWindowMode( true );
// DXライブラリ初期化処理
if( DxLib_Init() == -1 ){
return -1 ; // エラーが起きたら直ちに終了
}
//描画を裏画面
SetDrawScreen( DX_SCREEN_BACK );
//****************************************************
bool screen = true;
int BeforeCount = GetNowCount();
int fps = 0;
int fpsMax = 0;
//メインループ
while( CheckHitKey( KEY_INPUT_ESCAPE ) == 0 && ProcessMessage() == 0 ){
//=====画面初期化=====
ClsDrawScreen();
if( CheckHitKey( KEY_INPUT_Z ) ){
screen = !screen;
ChangeWindowMode( screen );
}
//1秒経過した
if( GetNowCount() - BeforeCount >= 1000 ){
BeforeCount = GetNowCount();
fpsMax = fps;
fps = 0;
}
DrawFormatString( 300, 300, 0xffffff, "%d", fpsMax );
fps ++;
//=====裏描画処理=====
ScreenFlip();
// WaitKey();
} //ループ端
//***** 必須 ****************************************
DxLib_End() ; //DXライブラリ使用の終了処理
return 0 ; //ソフトの終了
//***************************************************
}
グラフィックハンドルなど描画関係は再ロードしないといけないのは分かるのですが、
フレームレートが変わってしまう原因が分かりません。
それとも私の環境がいけないのでしょうか?
モニターのリフレッシュレートは60Hzから変わってないので、ソフト側の問題だと思うのですが・・・
~開発環境~
Windows 7 Ultimate SP1 32bit
Visual C++ 2010
DXライブラリ