Exemplo n.º 1
0
 public static void FillPolygon(this RenderContext context, ID2DBrush brush, FillMode fillMode, params PointF[] points)
 {
     context.RenderTarget.DeviceContext2D.FillPolygon(brush, fillMode, points);
 }
Exemplo n.º 2
0
 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);
     }
 }