/// <summary> /// Initializes the graphics. /// </summary> public void Initialize() { var descMode = new ModeDescription { Width = _graphicsDevice.BackBuffer.Width, Height = _graphicsDevice.BackBuffer.Height, Format = Format.R8G8B8A8_UNorm, RefreshRate = new Rational(60, 1), Scaling = DisplayModeScaling.Stretched }; var descSwap = new SwapChainDescription { BufferCount = 1, ModeDescription = descMode, Usage = Usage.RenderTargetOutput, OutputHandle = _graphicsDevice.RenderTarget.Handle, SampleDescription = new SampleDescription(1, 0), IsWindowed = true, SwapEffect = SwapEffect.Discard, Flags = SwapChainFlags.None, }; Result creationResult = Device1.CreateWithSwapChain(null, DriverType.Hardware, DeviceCreationFlags.BgraSupport, FeatureLevel.Level_10_0, descSwap, out _direct3D10Device, out _swapChain); if (creationResult.IsFailure) { throw new GraphicsException("DirectX10 is not supported on the current platform."); } SlimDX.DXGI.Surface backBuffer = SlimDX.DXGI.Surface.FromSwapChain(_swapChain, 0); var d2DFactory = new SlimDX.Direct2D.Factory(SlimDX.Direct2D.FactoryType.Multithreaded); RenderTarget renderTarget = RenderTarget.FromDXGI(d2DFactory, backBuffer, new RenderTargetProperties { HorizontalDpi = 96, VerticalDpi = 96, MinimumFeatureLevel = SlimDX.Direct2D.FeatureLevel.Default, PixelFormat = new PixelFormat(Format.R8G8B8A8_UNorm, AlphaMode.Premultiplied), Type = RenderTargetType.Hardware, Usage = RenderTargetUsage.None }); renderTarget.AntialiasMode = SmoothingMode == SmoothingMode.AntiAlias ? AntialiasMode.Aliased : AntialiasMode.PerPrimitive; renderTarget.TextAntialiasMode = TextAntialiasMode.ClearType; _renderTarget = renderTarget; DirectXHelper.RenderTarget = _renderTarget; DirectXHelper.Direct2DFactory = d2DFactory; }