예제 #1
0
 public static TempContext <CurveFlattener> Borrow(out CurveFlattener flattener)
 {
     if (!Temp <CurveFlattener> .IsInit())
     {
         Temp <CurveFlattener> .SetNewHandler(
             () => new CurveFlattener(),
             f => f.Reset());
     }
     return(Temp <CurveFlattener> .Borrow(out flattener));
 }
예제 #2
0
 public static TempContext <VxsClipper> Borrow(out VxsClipper clipper)
 {
     if (!Temp <VxsClipper> .IsInit())
     {
         Temp <VxsClipper> .SetNewHandler(
             () => new VxsClipper(),
             c => c.Reset());
     }
     return(Temp <VxsClipper> .Borrow(out clipper));
 }
예제 #3
0
 static TempContext <PixelFarm.CpuBlit.PathWriter> Borrow(out PixelFarm.CpuBlit.PathWriter pathWriter)
 {
     if (!Temp <PixelFarm.CpuBlit.PathWriter> .IsInit())
     {
         Temp <PixelFarm.CpuBlit.PathWriter> .SetNewHandler(
             () => new PixelFarm.CpuBlit.PathWriter(),
             w => w.UnbindVxs());
     }
     return(Temp <PixelFarm.CpuBlit.PathWriter> .Borrow(out pathWriter));
 }
예제 #4
0
        public static TempContext <VgVisitorArgs> Borrow(out VgVisitorArgs visitor)
        {
            if (!Temp <VgVisitorArgs> .IsInit())
            {
                Temp <VgVisitorArgs> .SetNewHandler(
                    () => new VgVisitorArgs(),
                    p => p.Reset());//when relese back
            }

            return(Temp <VgVisitorArgs> .Borrow(out visitor));
        }
예제 #5
0
파일: Tools.cs 프로젝트: brezza92/PixelFarm
        public static TempContext <ShapeBuilder> BorrowShapeBuilder(out ShapeBuilder shapeBuilder)
        {
            if (!Temp <ShapeBuilder> .IsInit())
            {
                Temp <ShapeBuilder> .SetNewHandler(
                    () => new ShapeBuilder(),
                    f => f.Reset());
            }

            TempContext <ShapeBuilder> context = Temp <ShapeBuilder> .Borrow(out shapeBuilder);

            shapeBuilder.InitVxs();//make it ready-to-use
            return(context);
        }
예제 #6
0
 public static TempContext <Stroke> Borrow(out Stroke stroke)
 {
     if (!Temp <Stroke> .IsInit())
     {
         Temp <Stroke> .SetNewHandler(() => new Stroke(1),
                                      s =>
         {
             s.Width    = 1;
             s.LineCap  = LineCap.Butt;
             s.LineJoin = LineJoin.Miter;
             s.GenerateOnlyOuterBorderForClosedShape = false;
         }
                                      );//reset?
     }
     return(Temp <Stroke> .Borrow(out stroke));
 }
예제 #7
0
 public static TempContext <Stroke> Borrow(out Stroke stroke)
 {
     if (!Temp <Stroke> .IsInit())
     {
         Temp <Stroke> .SetNewHandler(() => new Stroke(1),
                                      s =>
         {
             s.Width    = 1;
             s.LineCap  = LineCap.Butt;
             s.LineJoin = LineJoin.Miter;
             s.StrokeSideForClosedShape = StrokeSideForClosedShape.Both;
         }
                                      );//reset?
     }
     return(Temp <Stroke> .Borrow(out stroke));
 }
예제 #8
0
        public static TempContext <AggPainter> Borrow(MemBitmap bmp, out AggPainter painter)
        {
            if (!Temp <AggPainter> .IsInit())
            {
                Temp <AggPainter> .SetNewHandler(
                    () => new AggPainter(new AggRenderSurface()),
                    p =>
                {
                    p.RenderSurface.DetachDstBitmap();
                }
                    );
            }

            var tmpPainter = Temp <AggPainter> .Borrow(out painter);

            painter.RenderSurface.AttachDstBitmap(bmp);
            return(tmpPainter);
        }