//--------------------------------------------------- public override void FillPath(Color color, GraphicsPath path) { //solid color var innerPath2 = path.InnerPath2; if (innerPath2 == null) { System.Drawing.Drawing2D.PathData pathData = path.GetPathData() as System.Drawing.Drawing2D.PathData; PixelFarm.Agg.VertexStore vxs = new PixelFarm.Agg.VertexStore(); PixelFarm.Agg.GdiPathConverter.ConvertToVxs(pathData, vxs); //TODO: reuse flattener PixelFarm.Agg.VertexSource.CurveFlattener flattener = new PixelFarm.Agg.VertexSource.CurveFlattener(); vxs = flattener.MakeVxs2(vxs); path.InnerPath2 = vxs; this.canvasGL2d.FillVxs(color, vxs); } else { PixelFarm.Agg.VertexStore vxs = innerPath2 as PixelFarm.Agg.VertexStore; if (vxs != null) { this.canvasGL2d.FillVxs(color, vxs); } } }
public override void FillPath(Brush brush, GraphicsPath path) { switch (brush.BrushKind) { case BrushKind.Solid: { SolidBrush solidBrush = (SolidBrush)brush; var innerPath2 = path.InnerPath2; if (innerPath2 == null) { System.Drawing.Drawing2D.PathData pathData = path.GetPathData() as System.Drawing.Drawing2D.PathData; PixelFarm.Agg.VertexStore vxs = new PixelFarm.Agg.VertexStore(); PixelFarm.Agg.GdiPathConverter.ConvertToVxs(pathData, vxs); //TODO: reuse flattener vxs = flattener.MakeVxs2(vxs); path.InnerPath2 = vxs; this.canvasGL2d.FillVxs(solidBrush.Color, vxs); } else { PixelFarm.Agg.VertexStore vxs = innerPath2 as PixelFarm.Agg.VertexStore; if (vxs != null) { this.canvasGL2d.FillVxs(solidBrush.Color, vxs); } } } break; case BrushKind.LinearGradient: { } break; default: { } break; } }
public override void DrawPath(GraphicsPath gfxPath) { var innerPath2 = gfxPath.InnerPath2; if (innerPath2 == null) { System.Drawing.Drawing2D.PathData pathData = gfxPath.GetPathData() as System.Drawing.Drawing2D.PathData; PixelFarm.Agg.VertexStore vxs = new PixelFarm.Agg.VertexStore(); PixelFarm.Agg.GdiPathConverter.ConvertToVxs(pathData, vxs); PixelFarm.Agg.VertexSource.CurveFlattener flattener = new PixelFarm.Agg.VertexSource.CurveFlattener(); vxs = flattener.MakeVxs2(vxs); gfxPath.InnerPath2 = vxs; this.canvasGL2d.DrawVxs(vxs); } else { PixelFarm.Agg.VertexStore vxs = innerPath2 as PixelFarm.Agg.VertexStore; if (vxs != null) { this.canvasGL2d.DrawVxs(vxs); } } }
static void DrawLion(PixelFarm.Agg.CanvasPainter p, PixelFarm.Agg.SpriteShape shape, PixelFarm.Agg.VertexStore myvxs) { int j = shape.NumPaths; int[] pathList = shape.PathIndexList; Color[] colors = shape.Colors; for (int i = 0; i < j; ++i) { p.FillColor = colors[i]; p.Fill(new PixelFarm.Agg.VertexStoreSnap(myvxs, pathList[i])); } }