//------------------------------------------------------------------------------------------------
// Name:  stateConnect
// Desc:  
//------------------------------------------------------------------------------------------------
void VolucrisClient::stateLostD3DDevice()
{
    // Get rid of everything
    global_actor_manager_.onLostDevice();
    global_rendering_manager_.resetCurrentTexture();
    freeResources();
    mySceneryRenderer.destroy();
    global_map_manager_.clearCache();
    global_sound_manager_.destroy();

    // Wait for a connection reply from the server
    HRESULT hr;
    while(D3DERR_DEVICELOST == (hr = myD3DDevice->TestCooperativeLevel()))
    {
        if (!windowsMessagePump())
        {
            myStateMachine.jumpState(VCS_SHUTDOWN);
            return;
        }

        // Poll the connection to keep it alive.  Watch for disconnection.
        ENetEvent netEvent;
        while(enet_host_service(myENetClient, &netEvent, 0) > 0) {
            if (netEvent.type == ENET_EVENT_TYPE_DISCONNECT) {
                myStateMachine.jumpState(VCS_SHUTDOWN);
                return;
            }
            // Free packet memory
            if (netEvent.packet) enet_packet_destroy(netEvent.packet);
        }

        // Don't overload the program
        Sleep(200);
    }

    CONFIRM(hr == D3DERR_DEVICENOTRESET && SUCCEEDED(myD3DDevice->Reset(&myD3DParams))) else {
        myStateMachine.jumpState(VCS_SHUTDOWN);
        return;
    }

    // Reset everything
    if (APP_FATAL(!acquireResources())("The game couldn't load its resource file")) {
        myStateMachine.jumpState(VCS_DISCONNECT);
        myStateMachine.jumpState(VCS_SHUTDOWN);
        return;
    }

    mySceneryRenderer.create(myD3DDevice, myUsingSoftwareDeviceFlag);
    global_sound_manager_.create(myMainWindow);
}
void RenderBufferFactoryDX9Imp::update( RenderBufferFactory *, float elapsedTime ) {
    acquireResources();
}
void RenderBufferFactoryDX9Imp::displayReset( RenderBufferFactory *, int x, int y, int width, int height ) {
    acquireResources();
}