public static void FillPolygon(this RenderContext context, ID2DBrush brush, FillMode fillMode, params PointF[] points) { context.RenderTarget.DeviceContext2D.FillPolygon(brush, fillMode, points); }
public static void FillPolygon(this SharpDX.Direct2D1.RenderTarget target, ID2DBrush brush, FillMode fillMode, params PointF[] points) { if (points == null) { throw new ArgumentNullException(nameof(points)); } if (points.Length == 0) { return; } using (var path = new PathGeometry(target.Factory)) { using (var sink = path.Open()) { sink.SetFillMode((SharpDX.Direct2D1.FillMode)fillMode); sink.BeginFigure(new RawVector2(points[0].X, points[0].Y), FigureBegin.Filled); var len = points.Length; for (var i = 1; i < len; ++i) { var pt = points[i]; sink.AddLine(new RawVector2(pt.X, pt.Y)); } sink.EndFigure(FigureEnd.Closed); sink.Close(); } target.FillGeometry(path, brush.NativeBrush); } }