以下のコードを作成しましたがコールバック関数の呼び出しを確認できませんでした。
(デバイスロスト回数もデバイスリストア回数も常に0と表示されます。)
ウィンドウモードの変更時にデバイスロストが発生すると考えているのですが勘違いでしょうか?
#include "DxLib.h"
int DeviceLostNum = 0, DeviceRestoreNum = 0;
void OnDeviceLost( void* ){
DeviceLostNum++; // デバイスロスト回数加算
}
void OnDeviceRestore( void* ){
DeviceRestoreNum++; // デバイスリストア回数加算
}
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ){
if( DxLib_Init() == -1 ) // DXライブラリ初期化処理
{
return -1; // エラーが起きたら直ちに終了
}
SetGraphicsDeviceLostCallbackFunction( OnDeviceLost, nullptr );
SetGraphicsDeviceRestoreCallbackFunction( OnDeviceRestore, nullptr );
int WindowMode = 1;
while( ProcessMessage() == 0 ){
ChangeWindowMode( WindowMode ); // ウィンドウモード切り替え
WindowMode = !WindowMode;
clsDx();
printfDx( "デバイスロスト回数 = %d\n", DeviceLostNum );
printfDx( "デバイスリストア回数 = %d\n", DeviceRestoreNum );
WaitKey();
}
DxLib_End() ; // DXライブラリ使用の終了処理
return 0 ; // ソフトの終了
}