public void SetGraphicsDevice(GraphicsDevice device) { // no change if (device == m_GraphicsDevice) { return; } if (m_GraphicsDevice != null) { m_GraphicsDevice.DeviceResetting -= m_GraphicsDevice_DeviceResetting; m_GraphicsDevice.DeviceLost -= m_GraphicsDevice_DeviceLost; m_GraphicsDevice.DeviceReset -= m_GraphicsDevice_DeviceReset; } m_GraphicsDevice = device; if (m_GraphicsDevice != null) { m_GraphicsDevice.DeviceResetting += m_GraphicsDevice_DeviceResetting; m_GraphicsDevice.DeviceLost += m_GraphicsDevice_DeviceLost; m_GraphicsDevice.DeviceReset += m_GraphicsDevice_DeviceReset; } // stop broadcasting if there is no device if (m_GraphicsDevice == null && this.IsBroadcasting) { m_XnaBroadcastApi.Stop(false); SetBroadcastState(BroadcastState.ReadyToBroadcast); } m_GraphicsDevice_DeviceReset(null, null); }