ARCed.Controls.GraphicsDeviceControl.HandleDeviceReset C# (CSharp) Method

HandleDeviceReset() private method

Helper used by BeginDraw. This checks the graphics device status, making sure it is big enough for drawing the current control, and that the device is not lost. Returns an error string if the device could not be reset.
private HandleDeviceReset ( ) : string
return string
        string HandleDeviceReset()
        {
            bool deviceNeedsReset = false;

            switch (this.GraphicsDevice.GraphicsDeviceStatus)
            {
                case GraphicsDeviceStatus.Lost:
                    // If the graphics device is lost, we cannot use it at all.
                    return "Graphics device lost";

                case GraphicsDeviceStatus.NotReset:
                    // If device is in the not-reset state, we should try to reset it.
                    deviceNeedsReset = true;
                    break;

                default:
                    // If the device state is ok, check whether it is big enough.
                    PresentationParameters pp = this.GraphicsDevice.PresentationParameters;

                    deviceNeedsReset = (ClientSize.Width > pp.BackBufferWidth) ||
                                       (ClientSize.Height > pp.BackBufferHeight);
                    break;
            }

            // Do we need to reset the device?
            if (deviceNeedsReset)
            {
                try
                {
                    this.graphicsDeviceService.ResetDevice(ClientSize.Width,
                                                      ClientSize.Height);
                }
                catch (Exception e)
                {
                    return "Graphics device reset failed\n\n" + e;
                }
            }

            return null;
        }