private void InitializeDeviceResources() { SharpDX.DXGI.ModeDescription backBufferDesc = new SharpDX.DXGI.ModeDescription(Width, Height, new SharpDX.DXGI.Rational(60, 1), SharpDX.DXGI.Format.R8G8B8A8_UNorm); SharpDX.DXGI.SwapChainDescription swapChainDesc = new SharpDX.DXGI.SwapChainDescription() { ModeDescription = backBufferDesc, SampleDescription = new SharpDX.DXGI.SampleDescription(1, 0), Usage = SharpDX.DXGI.Usage.RenderTargetOutput, BufferCount = 1, OutputHandle = renderForm.Handle, IsWindowed = true }; SharpDX.Direct3D11.Device.CreateWithSwapChain(SharpDX.Direct3D.DriverType.Hardware, SharpDX.Direct3D11.DeviceCreationFlags.None, swapChainDesc, out d3dDevice, out swapChain); var factory = swapChain.GetParent <SharpDX.DXGI.Factory>(); factory.MakeWindowAssociation(renderForm.Handle, SharpDX.DXGI.WindowAssociationFlags.IgnoreAll); d3dDeviceContext = d3dDevice.ImmediateContext; using (SharpDX.Direct3D11.Texture2D backBuffer = swapChain.GetBackBuffer <SharpDX.Direct3D11.Texture2D>(0)) { renderTargetView = new SharpDX.Direct3D11.RenderTargetView(d3dDevice, backBuffer); } d3dDeviceContext.OutputMerger.SetRenderTargets(renderTargetView); // Set viewport viewport = new SharpDX.Viewport(0, 0, Width, Height); d3dDeviceContext.Rasterizer.SetViewport(viewport); }