Exemple #1
0
        //---------------------------------------------------



        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);
                }
            }
        }
Exemple #2
0
        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;
            }
        }
Exemple #3
0
        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);
                }
            }
        }
Exemple #4
0
        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]));
            }
        }