/// <summary> /// Fills a Polygon. /// </summary> /// <param name="color">The Color.</param> /// <param name="polygon">The Polygon.</param> public void FillPolygon(Color color, Polygon polygon) { var geometry = new PathGeometry(DirectXHelper.D2DFactory); using (GeometrySink sink = geometry.Open()) { sink.BeginFigure(DirectXHelper.ConvertVector(polygon.Points[0]), FigureBegin.Filled); for (int i = 1; i < polygon.Points.Length; i++) { sink.AddLine(DirectXHelper.ConvertVector(polygon.Points[i])); } sink.EndFigure(FigureEnd.Closed); sink.Close(); DirectXHelper.RenderTarget.FillGeometry(geometry, new SolidColorBrush(DirectXHelper.RenderTarget, DirectXHelper.ConvertColor(color))); } geometry.Dispose(); }
/// <summary> /// Fills a Rectangle. /// </summary> /// <param name="color">The Color.</param> /// <param name="rectangle">The Rectangle.</param> public void FillRectangle(Color color, Rectangle rectangle) { DirectXHelper.RenderTarget.FillRectangle(DirectXHelper.ConvertRectangle(rectangle), new SolidColorBrush(DirectXHelper.RenderTarget, DirectXHelper.ConvertColor(color))); }
/// <summary> /// Fills a Ellipse. /// </summary> /// <param name="color">The Color.</param> /// <param name="ellipse">The Ellipse.</param> public void FillEllipse(Color color, Ellipse ellipse) { DirectXHelper.RenderTarget.FillEllipse(DirectXHelper.ConvertEllipse(ellipse), new SolidColorBrush(DirectXHelper.RenderTarget, DirectXHelper.ConvertColor(color))); }
/// <summary> /// Draws a string. /// </summary> /// <param name="text">The Text.</param> /// <param name="font">The Font.</param> /// <param name="position">The Position.</param> /// <param name="color">The Color.</param> public void DrawString(string text, Font font, Vector2 position, Color color) { var dxFont = font.Instance as DirectXFont; if (dxFont == null) { throw new ArgumentException("DirectX11 expects a DirectXFont as resource."); } DirectXHelper.RenderTarget.DrawText(text, dxFont.GetFont(), new RectangleF(position.X, position.Y, 9999, 9999), DirectXHelper.ConvertSolidColorBrush(color)); }