public void OnPaint(IRenderEventArgs e) { var ev = e as RenderContextEventArgs; var sf = e.Surface as ContextSurface; OnDraw(sf.Context, e.Clipper.Bounds); }
public override void OnPaint(IRenderEventArgs e) { var g = ((GdiSurface)e.Surface).Graphics; var transform = this.Camera.Matrix; g.Transform = transform.ToGdi(); if (AntiAlias) { // this is hiqh quality mode: g.SmoothingMode = SmoothingMode.HighQuality; //.AntiAlias;//.HighQuality;//.HighSpeed; g.TextRenderingHint = TextRenderingHint.AntiAliasGridFit; //.SystemDefault;//.AntiAliasGridFit;//.ClearTypeGridFit:this is slowest on mono; g.InterpolationMode = InterpolationMode.HighQualityBicubic; // } else { // this is speed - mode, best compromise, not highspeed: g.SmoothingMode = SmoothingMode.HighSpeed; // .none is fastest g.TextRenderingHint = TextRenderingHint.SingleBitPerPixelGridFit; g.InterpolationMode = InterpolationMode.Low; } //e.Graphics.TextContrast = 12; // 0..12 g.CompositingMode = CompositingMode.SourceOver; this.Renderer.Render(this.Data, e); g.Transform.Reset(); }
public void OnPaint(IRenderEventArgs e) { if (!stopped) { FrameCount++; } }
public override void OnPaint(IRenderEventArgs e) { var data = this.Data; if (data != null && !hadError) { try { var g = ((GdiSurface)e.Surface).Graphics; g.Transform = this.Camera.Matrix.ToGdi(); g.InterpolationMode = InterpolationMode.Low; g.CompositingMode = CompositingMode.SourceCopy; g.CompositingQuality = CompositingQuality.HighSpeed; ImageAttributes imageAttributes = null; if (Alpha < 1d) { var clrMatrix = new ColorMatrix(new float[][] { new float[] { 1.0f, 0.0f, 0.0f, 0.0f, 0.0f }, new float[] { 0.0f, 1.0f, 0.0f, 0.0f, 0.0f }, new float[] { 0.0f, 0.0f, 1.0f, 0.0f, 0.0f }, new float[] { 0.0f, 0.0f, 0.0f, (float)this.Alpha, 0.0f }, new float[] { 0.0f, 0.0f, 0.0f, 0.0f, 1.0f } }); imageAttributes = new ImageAttributes(); imageAttributes.SetColorMatrix(clrMatrix); g.CompositingMode = CompositingMode.SourceOver; } var rc = Camera.ToSource(e.Clipper.Bounds); rc = rc.Intersect(new Xwt.Rectangle(0, 0, Size.Width, Size.Height)); rc = rc.Inflate(new Size(1, 1)); if (imageAttributes == null) { g.DrawImage(data, (float)rc.X, (float)rc.Y, rc.ToGdi(), GraphicsUnit.Pixel); } else { g.DrawImage(data, rc.ToGdi(), (float)rc.X, (float)rc.Y, (float)rc.Width, (float)rc.Height, GraphicsUnit.Pixel, imageAttributes); } g.Transform.Reset(); } catch (Exception ex) { ExceptionHandler.Catch(ex, MessageType.OK); hadError = true; } } }
public override void OnPaint(IRenderEventArgs e) { if (Shape != null) { // we paint the Shape untransformed, otherwise it looses its line-size // that means, that the linesize is zoomed which makes an ugly effect if (RenderType != RenderType.None) { var save = SaveMatrix(e.Surface); SetMatrix(e.Surface); var paintShape = (IShape)this.Shape.Clone(); Camera.FromSource(paintShape); Painter.RenderType = RenderType; Painter.Shape = paintShape; Painter.Style = this.Style; Painter.Render(e.Surface); //restore RestoreMatrix(e.Surface, save); } // paint the grips base.OnPaint(e); } }
public override void Render(IVisual visual, IRenderEventArgs e) { var layout = this.Layout(); var style = layout.GetStyle(visual); var shape = layout.GetShape(visual); var shapePainter = layout.GetPainter(shape.GetType()); if (shapePainter != null) { shapePainter.Shape = shape; shapePainter.Style = style; shapePainter.Render(e.Surface); } bool paintData = style.PaintData; if (paintData) { Action <object, IShape> paint = (data, dataShape) => { data = GetData(data); var dataPainter = layout.GetPainter(data.GetType()) as IDataPainter; if (dataPainter != null) { dataPainter.Data = data; dataPainter.Style = style; dataPainter.OuterShape = dataShape; dataPainter.Render(e.Surface); } }; var enumerable = visual.Data as System.Collections.IEnumerable; if (!(visual.Data is string) && enumerable != null) { var dimension = Dimension.X; var shapeBounds = shape.BoundsRect; foreach (var d in enumerable) { var size = layout.GetSize(d, style); if (dimension == Dimension.X) { size.Height = shapeBounds.Height; } var dshape = new RectangleShape { Location = shapeBounds.Location, Size = size }; paint(d, dshape); if (dimension == Dimension.X) { shapeBounds.Location = new Point(shapeBounds.Location.X + size.Width, shapeBounds.Y); } } } else { paint(visual.Data, shape); } } }
public virtual Point[] ClipHull(IRenderEventArgs e) { var hull = e.Clipper.Hull.ToArray(); var result = new Point[hull.Length]; result = Array.ConvertAll <Xwt.Point, Point> (hull, a => a.ToGdi()); return(result); }
public void OnPaint(IRenderEventArgs e) { foreach (var renderAction in RenderActions) { if (renderAction.Enabled) { renderAction.OnPaint(e); } } }
public void OnPaint(IRenderEventArgs e) { var surface = (ContextSurface)e.Surface; var ctx = surface.Context; // paint background ctx.SetColor(BackColor()); ctx.Rectangle(e.Clipper.Bounds); ctx.Fill(); Layer.OnPaint(e); }
public virtual void OnPaint(IRenderEventArgs e) { var shape = this.Shape; if ((shape != null) && (ShowGrips)) { var save = SaveMatrix(e.Surface); SetMatrix(e.Surface); GripPainter.Render(e.Surface); RestoreMatrix(e.Surface, save); } }
public void OnPaintTest2(IRenderEventArgs e) { Graphics g = ((GdiSurface)e.Surface).Graphics; SD.Drawing2D.Matrix save = g.Transform; g.Transform = Camera.Matrix.ToGdi(); Rectangle smaller = new Rectangle(start, new Size(50, 20)); Rectangle bigger = new Rectangle(start, new Size(55, 25)); Rectangle rect3 = new Rectangle(start, new Size(10, 10)); g.DrawRectangle(rectPen, smaller); g.DrawRectangle(rectPen, bigger); smaller.Inflate(-5, -5); bigger.Inflate(5, 5); //region.MakeEmpty (); region.MakeEmpty(); invPath.Reset(); invPath.FillMode = FillMode.Alternate; smaller.Intersect(bigger); //region.Intersect (smaller); //invPath.StartFigure (); invPath.AddRectangle(bigger); //invPath.CloseFigure(); //invPath.StartFigure(); invPath.AddRectangle(smaller); //invPath.CloseFigure(); // this is to simulage g.Clip, as it has the bounds-rectangle: region.Union(invPath.GetBounds()); region.Intersect(invPath); Region saveRegion = g.Clip; g.Clip = region; g.DrawPath(pathPen, invPath); //g.FillPath (regionBrush, invPath); g.FillRegion(regionBrush, g.Clip); if (!region.IsVisible(rect3)) { int x = 1; } //g.FillRegion (clipregionBrush, g.Clip); g.Transform = save; g.Clip = saveRegion; }
public override void OnPaint(IRenderEventArgs e) { Graphics g = ((GdiSurface)e.Surface).Graphics; SD.Drawing2D.Matrix save = g.Transform; g.Transform = Camera.Matrix.ToGdi(); Rectangle smaller = new Rectangle(start, new Size(50, 20)); Rectangle bigger = new Rectangle(start, new Size(55, 25)); g.DrawRectangle(rectPen, smaller); g.DrawRectangle(rectPen, bigger); smaller.Inflate(-5, -5); bigger.Inflate(5, 5); Rectangle[] pathRects = { Rectangle.FromLTRB(bigger.Left, bigger.Top, bigger.Right, smaller.Top), Rectangle.FromLTRB(bigger.Left, smaller.Bottom, bigger.Right, bigger.Bottom), Rectangle.FromLTRB(bigger.Left, smaller.Top, smaller.Left, smaller.Bottom), Rectangle.FromLTRB(smaller.Right, smaller.Top, bigger.Right, smaller.Bottom) }; Region clipRegion = new Region(); clipRegion.MakeInfinite(); clipRegion.Intersect( Rectangle.FromLTRB(bigger.Left, bigger.Top, bigger.Right, smaller.Top)); clipRegion.Union( Rectangle.FromLTRB(bigger.Left, smaller.Bottom, bigger.Right, bigger.Bottom)); clipRegion.Union( Rectangle.FromLTRB(bigger.Left, smaller.Top, smaller.Left, smaller.Bottom)); clipRegion.Union( Rectangle.FromLTRB(smaller.Right, smaller.Top, bigger.Right, smaller.Bottom)); bool isVisible = false; RectangleF testRect = Rectangle.Inflate(smaller, -1, -1); isVisible = clipRegion.IsVisible(testRect); if (isVisible) { clipRegion.MakeInfinite(); } invPath.Reset(); invPath.FillMode = FillMode.Alternate; invPath.AddRectangles(pathRects); g.DrawPath(pathPen, invPath); g.FillPath(regionBrush, invPath); }
public override void OnPaint(IRenderEventArgs e) { var surface = (ContextSurface)e.Surface; var ctx = surface.Context; var matrix = this.Camera.Matrix; ctx.Save(); try { if (!matrix.IsIdentity) { ctx.ModifyCTM(matrix); } this.Renderer.Render(this.Data, e); } finally { ctx.Restore(); } }
public override void Render(IGraphScene <TItem, TEdge> data, IRenderEventArgs e) { var camera = this.Camera(); var clipBounds = camera.ToSource(e.Clipper.Bounds); #if TraceRender Trace.WriteLine($"\t{nameof(Render)}.{nameof(clipBounds)}:\t{clipBounds}"); //+"\toffset(g)"+new SizeS(g.Transform.OffsetX, g.Transform.OffsetY) #endif var focused = data.Focused; var hovered = data.Hovered; var layout = this.Layout(); ItemRenderer.Layout = this.Layout; foreach (var item in data.ElementsIn(clipBounds, ZOrder.EdgesFirst)) { bool rendered = true; if (!item.Equals(focused) && !item.Equals(hovered)) { ItemRenderer.Render(item, e); #if countVisuals if (rendered) { iItems++; } #endif } } if (hovered != null && DrawingExtensions.Intersects(clipBounds, layout.GetShape(hovered).BoundsRect)) { ItemRenderer.Render(hovered, e); } if (focused != null && layout.GetShape(focused) != null && DrawingExtensions.Intersects(clipBounds, layout.GetShape(focused).BoundsRect)) { ItemRenderer.Render(focused, e); } }
public override void OnPaint(IRenderEventArgs e) { var g = ((GdiSurface)e.Surface).Graphics; var save = g.Transform; g.Transform = new System.Drawing.Drawing2D.Matrix(); System.Drawing.Drawing2D.GraphicsPath hullPath = new System.Drawing.Drawing2D.GraphicsPath(); var layout = this.Layout(); foreach (var visual in Data.Elements) { Point[] datahull = null; var r = Camera.FromSource(visual.Shape.BoundsRect); g.DrawRectangle(pen, r.ToGdi()); if (Layout != null) { datahull = layout.GetDataHull(visual, Camera.Matrix, 0, true); } //Point[] hull = visual.Shape.Hull(Transformer.Matrice,15, true); Point[] hull = null; if (visual.Shape is VectorShape && Layout != null) { } if (datahull != null) { g.DrawPolygon(datahullpen, GDIConverter.Convert(datahull)); } if (hull != null) { g.DrawPolygon(hullpen, GDIConverter.Convert(hull)); } } g.Transform = save; }
public override void OnPaint(IRenderEventArgs e) { var hull = //CommandsHull; //hull = ClipHull(e); GetHull(this.Data, Camera.Matrix, 5); Graphics g = ((GdiSurface)e.Surface).Graphics; System.Drawing.Drawing2D.Matrix save = g.Transform; g.Transform = new System.Drawing.Drawing2D.Matrix(); if (oldHull != null && oldHull.Length > 2) { invPath.Reset(); invPath.FillMode = FillMode.Alternate; invPath.AddPolygon(oldHull); g.DrawPath(backGroundPen, invPath); //g.FillPath (regionBrush, invPath); oldHull = null; } if (hull != null && hull.Length > 2) { invPath.Reset(); invPath.FillMode = FillMode.Alternate; invPath.AddPolygon(hull); g.DrawPath(pathPen, invPath); //g.FillPath (regionBrush, invPath); g.Transform = save; oldHull = hull; } g.Transform = save; }
public override void OnPaint(IRenderEventArgs e) { var image = this.Data; if (image != null && !hadError) { var ctx = ((ContextSurface)e.Surface).Context; ctx.Save(); try { ctx.ModifyCTM(this.Camera.Matrix); var rc = Camera.ToSource(e.Clipper.Bounds); rc = rc.Intersect(new Xwt.Rectangle(0, 0, Size.Width, Size.Height)); rc = rc.Inflate(new Size(1, 1)); ctx.DrawImage(image, rc, rc); } catch (Exception ex) { ExceptionHandler.Catch(ex, MessageType.OK); hadError = true; } finally { ctx.Restore(); } } }
public static PaintEventArgs Convert(IRenderEventArgs e) { return(new PaintEventArgs( ((GdiSurface)e.Surface).Graphics, e.Clipper.Bounds.ToGdi())); }
public abstract void OnPaint(IRenderEventArgs e);
public void OnPaintHullTest(IRenderEventArgs e) { var g = ((GdiSurface)e.Surface).Graphics; var save = g.Transform; g.Transform = Camera.Matrix.ToGdi(); var start = new Point(200, 100); var size = new Size(0, -100); var distance = new Size(30, 30); PaintWidenPolygon(g, start, size, 1); start += distance; size = new Size(0, 100); PaintWidenPolygon(g, start, size, 2); start += distance; size = new Size(100, 0); PaintWidenPolygon(g, start, size, 3); start += distance; size = new Size(-100, 0); PaintWidenPolygon(g, start, size, 4); // second start += distance; size = new Size(10, -100); PaintWidenPolygon(g, start, size, 5); start += distance; size = new Size(10, 100); PaintWidenPolygon(g, start, size, 6); start += distance; size = new Size(100, 10); PaintWidenPolygon(g, start, size, 7); start += distance; size = new Size(-100, 10); PaintWidenPolygon(g, start, size, 8); // third start += distance; size = new Size(-10, -100); PaintWidenPolygon(g, start, size, 9); start += distance; size = new Size(-10, 100); PaintWidenPolygon(g, start, size, 10); start += distance; size = new Size(100, -80); PaintWidenPolygon(g, start, size, 11); start += distance; size = new Size(-100, -10); PaintWidenPolygon(g, start, size, 12); g.Transform = save; }
public abstract void Render(T data, IRenderEventArgs e);
public virtual void OnPaint(IRenderEventArgs e) { this.OnPaint(Converter.Convert(e)); }
public void OnPaint(IRenderEventArgs e) { BackendRenderer.OnPaint(e); }
public override void OnPaint(IRenderEventArgs e) { this.Renderer.Render(this.Data, e); }