Ctrl + Alt + Del을 한 후 장치를 재설정하고 거기 일을하지만 난 그냥 거기에서 메시지가 :Directx9와 : 나는 경계선 창을 jusing 및 유튜브 비디오에서 장치를 재설정 코드를 복사하고있어
if(FAILED(hr)){
MessageBox(0, "Failed to reset device!", 0, 0);
return;
}
내가 뭐 잘못 했니? InvalidateDeviceObjects()
에서 뭔가를 잊었습니까? 너무 길기 때문에 더 많은 코드를 제공 할 수는 있지만 모든 것을 제공 할 수는 없습니다. 정말 도움이 필요 ...
리셋 장치 :
void Render(){
if(HandleDeviceLost/*VK_F1*/){
if(DeviceLost){
Sleep(100);
if(FAILED(hr=d3ddev->TestCooperativeLevel())){
if(hr==D3DERR_DEVICELOST){
return;
}
if(hr==D3DERR_DEVICENOTRESET){
//clean
InvalidateDeviceObjects();
//reset device
hr=d3ddev->Reset(&d3dpp);
if(FAILED(hr)){
MessageBox(0, "Failed to reset device!", 0, 0);
return;
}
//restore
RestoreDeviceObjects();
}
return;
}
}
}
DeviceLost=0;
/*
Stuff
*/
hr=d3ddev->Present(NULL, NULL, NULL, NULL);
if(hr==D3DERR_DEVICELOST){
DeviceLost=1;
}
}
출시 개체 : 작동하면 링크 된 샘플에서
void InvalidateDeviceObjects(){
buffShipMaterial->Release();
Wall_large->Release();
Wall_small->Release();
space_text->Release();
meshWall->Release();
menuText->Release();
menuText2->Release();
menuText3->Release();
text_cpu->Release();
text_player->Release();
text_player2->Release();
number_0->Release();
number_1->Release();
number_2->Release();
number_3->Release();
number_4->Release();
number_5->Release();
number_6->Release();
number_7->Release();
number_8->Release();
number_9->Release();
number_10->Release();
}
사용자를 전환하거나 화면을 잠글 때 XP에서이 문제가 발생했습니다. 드라이버 문제인 것처럼 보였습니다. 유일한 수정은 응용 프로그램을 시작한 것처럼 전체 DX9 시스템을 다시 작성하고 다시 작성하는 것입니다. 다른 gfx 카드를 사용하는 비슷한 시스템도 괜찮 았습니다. –
기기를 재설정하고 간단한 게임을 다운로드 (다운로드)했기 때문에 코드에있는 것 같습니다. – Vider7CC
그래서이 간단한 게임의 소스 코드가 작동 했나요? 그렇다면 비교할 수 있습니다. 내가 볼 수있는 유일한 것은 첫 번째 'Reset'이 실패하면 'InvalidateRect'가 정상적으로 다시 페인트를 가져 와서 다시 시도한다는 것입니다. –