I'm jusing a borderless Window and copied the device reset code from a Youtube video and it worked there but I just get the message from there:
if(FAILED(hr)){
MessageBox(0, "Failed to reset device!", 0, 0);
return;
}
Where did I something wrong? Did I forget something at InvalidateDeviceObjects()
? I can give you more code but not everything because it's just too long.
I really need help...
Reset Device:
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;
}
}
Release Objects:
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();
}
Reset
fails, it's normal toInvalidateRect
to get another repaint so you try again. – Roger Rowland