private void Resize(ResizeParameters args) { Utilities.Dispose(ref _renderView1); Utilities.Dispose(ref _depthStencilView); _d3DDeviceContext.ClearState(); _swapChain4.ResizeBuffers( args.BufferCount, args.Width, args.Height, Format.Unknown, args.SwapChainFlags); using (Texture2D backBuffer = _swapChain4.GetBackBuffer <Texture2D>(0)) using (RenderTargetView renderView = new RenderTargetView(_d3DDevice5, backBuffer)) { _renderView1 = renderView.QueryInterface <RenderTargetView1>(); } using (Texture2D depthBuffer = new Texture2D( _d3DDevice5, new Texture2DDescription { Format = Format.D24_UNorm_S8_UInt, ArraySize = 1, MipLevels = 1, Width = args.Width, Height = args.Height, SampleDescription = _swapChain4.Description.SampleDescription, BindFlags = BindFlags.DepthStencil, CpuAccessFlags = CpuAccessFlags.None, OptionFlags = ResourceOptionFlags.None, Usage = ResourceUsage.Default })) { _depthStencilView = new DepthStencilView( _d3DDevice5, depthBuffer, new DepthStencilViewDescription { Dimension = _swapChain4.Description.SampleDescription.Count > 1 || _swapChain4.Description.SampleDescription.Quality > 0 ? DepthStencilViewDimension.Texture2DMultisampled : DepthStencilViewDimension.Texture2D }); } _d3DDeviceContext.Rasterizer.SetViewport(Viewport = new Viewport(0, 0, args.Width, args.Height)); SetRenderTarget(null); ResizeFinished?.Invoke(Viewport); }