デバイスロストした時にMV1DrawModelで起こるアクセス違反が解消できずに参っています。
原因はMV1DrawModelに不正(?)なモデルのハンドルを渡していることだと思うのですが、
これがSetGraphicsDeviceLostCallbackFunctionで登録した関数より先に起こるため対処できずにいます。
何か解決策はないのでしょうか。。
以下はコードです、SetAlwaysRunFlagがFALSEのときは発生しませんでした。
#include "DxLib.h"
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow) {
//初期化
DxLib_Init();
//常に実行
SetAlwaysRunFlag(TRUE);
//モデル読み込み
int ModelHandle = MV1LoadModel("model.mv1");
//ループ
while(1) {
if (ProcessMessage()==-1 || CheckHitKey(KEY_INPUT_ESCAPE)) break;
MV1DrawModel(ModelHandle); //ここでAlt + Tab
}
//終了
DxLib_End();
return 0 ;
}
DXライブラリのバージョンは3.12a、実行環境は以下のとおりです
Operating System: Windows 7 Professional 64-bit (6.1, Build 7601) Service Pack 1 (7601.win7sp1_gdr.130828-1532)
Processor: Intel(R) Core(TM) i5-2520M CPU @ 2.50GHz (4 CPUs), ~2.5GHz
Memory: 4096MB RAM
DirectX Version: DirectX 11
Card name: Intel(R) HD Graphics Family
Display Memory: 1760 MB
Microsoft Visual Studio 2008 Version 9.0.30729.1 SP
Microsoft .NET Framework Version 3.5 SP1
//追記
フルスクリーン時にSetAlwaysRunFlagをFALSEにすることで対処できました^^;
丸一日気づかなかった。。