/// <summary> /// Present the results to the swap chain. /// </summary> public virtual void Present() { // The application may optionally specify "dirty" or "scroll" rects to improve efficiency // in certain scenarios. In this sample, however, we do not utilize those features. var parameters = new SharpDX.DXGI.PresentParameters(); try { // The first argument instructs DXGI to block until VSync, putting the application // to sleep until the next VSync. This ensures we don't waste any cycles rendering // frames that will never be displayed to the screen. swapChain.Present(1, SharpDX.DXGI.PresentFlags.None, parameters); } catch (SharpDX.SharpDXException ex) { // TODO PLUG CODE HERE TO REINITIALIZE // If the device was removed either by a disconnect or a driver upgrade, we // must completely reinitialize the renderer. if (ex.ResultCode == SharpDX.DXGI.ResultCode.DeviceRemoved || ex.ResultCode == SharpDX.DXGI.ResultCode.DeviceReset) { DeviceManager.Initialize(DeviceManager.Dpi); } else { throw; } } }
/// <summary> /// Present the results to the swap chain. /// </summary> public virtual void Present() { // The application may optionally specify "dirty" or "scroll" rects to improve efficiency // in certain scenarios. In this sample, however, we do not utilize those features. var parameters = new SharpDX.DXGI.PresentParameters(); try { // The first argument instructs DXGI to block until VSync, putting the application // to sleep until the next VSync. This ensures we don't waste any cycles rendering // frames that will never be displayed to the screen. swapChain.Present(1, SharpDX.DXGI.PresentFlags.None, parameters); } catch (SharpDX.SharpDXException ex) { // TODO PLUG CODE HERE TO REINITIALIZE // If the device was removed either by a disconnect or a driver upgrade, we // must completely reinitialize the renderer. if (ex.ResultCode == SharpDX.DXGI.ResultCode.DeviceRemoved || ex.ResultCode == SharpDX.DXGI.ResultCode.DeviceReset) DeviceManager.Initialize(DeviceManager.Dpi); else throw; } }