トップページ > 記事閲覧
デバイスロスト時のコールバック関数について
名前:takatwu 日時: 2013/08/24 01:09

以下のコードを作成しましたがコールバック関数の呼び出しを確認できませんでした。 (デバイスロスト回数もデバイスリストア回数も常に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 ; // ソフトの終了 }
メンテ

Page: 1 |

Re: デバイスロスト時のコールバック関数について ( No.1 )
名前:管理人 日時:2013/08/24 22:45

ChangeWindowMode を実行した際はデバイスロストをしたわけではないので SetGraphicsDeviceLostCallbackFunction や SetGraphicsDeviceRestoreCallbackFunction で 登録した関数は呼ばれません ( デバイスロストはフルスクリーンモード時に ALT+TAB でデスクトップ画面に戻されたときや、 ウインドウモード時で CTRL+ALT+DEL を押されたとき( こちらは偶に )などに発生します )
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存