Direct3D - D3DERR_DEVICENOTRESET ???



  • Ich hab folgenden Code um zu testen ob ich in meinem Programm alles darstellen kann:

    bool CDirect3D::check_device(){
    
    switch(m_lpD3DDevice->TestCooperativeLevel())
     {
     case D3DERR_DEVICELOST: return false;
     case D3DERR_DEVICENOTRESET:
      {
      if(FAILED(m_lpD3DDevice->Reset(&PParams)))
       {
       MessageBox(NULL,"Reset failed!","CheckDevice()",MB_OK);
       return false;
       }
    
      CreateFont();
    
      return true;
      }
     default: return true;
     }
    }
    

    Allerdings lässt sich das Device einfach nicht reseten...
    Es erscheint nur andauernd die MessageBox "Reset failed"...

    Kennt ihr vielleicht einen Grund dafür warum es sich nicht reseten lässt?[cpp]



  • Aus der Dokumentation:

    If the device can be restored, the application prepares the device by destroying all video-memory resources and any swap chains. Then, the application calls the Reset method. Reset is the only method that has an effect when a device is lost, and is the only method by which an application can change the device from a lost to an operational state. Reset will fail unless the application releases all resources that are allocated in D3DPOOL_DEFAULT, including those created by the CreateRenderTarget and CreateDepthStencilSurface methods.



  • Danke!
    Ich hatte vergessen den Backbuffer und Fonts freizugeben... 🙄


Anmelden zum Antworten