StrokeStyle CreateNewStroke(UStroke s) { StrokeStyle ret = null; var sp = new StrokeStyleProperties() { DashCap = Translate(s.dashCap), EndCap = Translate(s.endCap), StartCap = Translate(s.startCap), LineJoin = Translate(s.lineJoin), DashStyle = Translate(s.dashStyle), MiterLimit = s.mitreLimit, DashOffset = s.offset }; if (s.dashStyle == StrokeType.custom) { ret = new StrokeStyle(realRenderer.renderTarget.Factory, sp, s.custom); } else { ret = new StrokeStyle(realRenderer.renderTarget.Factory, sp); } realRenderer.renderTarget.Disposed += new EventHandler <EventArgs>((o, e) => s.Invalidate()); return(ret); }
void dropArrowThing_draw(IUnifiedDraw ud, USolidBrush brsh, UStroke strk) { var ddr = dropArrowThing.DisplayRectangle; Rectangle rr = ddr.Inflated(new Thickness(-1f)); float rad = (float)ddr.Size.height / 4f; brsh.color = new Color(0.6f); ud.FillRoundedRectangle(rr, rad, rad, brsh); brsh.color = new Color(0.7f); rr = ddr.Inflated(new Thickness(-.5f)); strk.strokeWidth = 1f; ud.DrawRoundedRectangle(rr, rad, rad, brsh, strk); brsh.color = new Color(0); var drw = ddr.width; var drh = ddr.height; var drt = ddr.top; var drl = ddr.left; var p1 = new Point(drl + drw / 4f, drt + drh / 3f); var p2 = new Point(drl + 2f * drw / 4f, drt + 2f * drh / 3f); var p3 = new Point(drl + 3f * drw / 4f, drt + drh / 3f); strk.strokeWidth = 1.5f; ud.DrawLine(p1, p2, brsh, strk); ud.DrawLine(p2, p3, brsh, strk); }
Pen CreateNewPen(UBrush b, UStroke s) { // Link to invalidation of brush, once. // the cache of the pen is stored in the stroke. VoidAction inval = delegate { }; inval = () => { s.Invalidate(); b.changed -= inval; }; b.changed += inval; // FIXME advanced features not used! Pen ret; ret = new Pen(CreateBrush(b)); ret.DashCap = Translate1(s.dashCap); ret.EndCap = Translate2(s.endCap); ret.StartCap = Translate2(s.startCap); ret.LineJoin = Translate(s.lineJoin); ret.DashStyle = Translate(s.dashStyle); ret.MiterLimit = s.mitreLimit; ret.DashOffset = s.offset; // FIXME maybe not right for compatibility with other renderes? ret.Alignment = PenAlignment.Center; if (s.dashStyle == StrokeType.custom) { ret.DashPattern = s.custom; } return(ret); }
public void DrawLine(Point start, Point end, UBrush brush, UStroke stroke) { GL.Begin(PrimitiveType.Quads); setCoordColor(brush, start.X, start.Y); GL.Vertex2(start.X, start.Y); setCoordColor(brush, end.X, end.Y); GL.Vertex2(end.X, end.Y); GL.End(); }
public void DrawPath(UPath path, UBrush brush, UStroke stroke) { foreach (var f in path.figures) { int st = rel.renderData.sofwareBuffer.Count; BufferFigureVC(f, brush, f.open, true); int cnt = rel.renderData.sofwareBuffer.Count - st; rel.renderData.bufferInfo.Add(new RenderInfo(st, cnt, ArrayData.Vertex | ArrayData.Color, PrimitiveType.Lines)); } }
public void DrawRectangle(Rectangle rect, UBrush brush, UStroke stroke) { // generate sw buffer { Vx,Vy,r,g,b,a } ... int st = rel.renderData.sofwareBuffer.Count; bufferRectData(rect, brush); int len = rel.renderData.sofwareBuffer.Count - st; var ri = new RenderInfo(st, len, ArrayData.Vertex | ArrayData.Color, PrimitiveType.LineLoop); rel.renderData.bufferInfo.Add(ri); }
Pen CreatePen(UBrush b, UStroke s) { return(s.Retreive <SDG_RenderElements>(new NoCacheDelegate(() => CreateNewPen(b, s))) as Pen); }
public void DrawRoundedRectangle(NoForms.Common.Rectangle rect, float radX, float radY, UBrush brush, UStroke stroke) { var rr = ShapeHelpers.RoundedRectangle(rect, radX, radY); realRenderer.graphics.DrawPath(CreatePen(brush, stroke), rr); }
public void DrawRectangle(NoForms.Common.Rectangle rect, UBrush brush, UStroke stroke) { realRenderer.graphics.DrawRectangle(CreatePen(brush, stroke), rect.left, rect.top, rect.width, rect.height); }
public void DrawLine(NoForms.Common.Point start, NoForms.Common.Point end, UBrush brush, UStroke stroke) { realRenderer.graphics.DrawLine(CreatePen(brush, stroke), SDGTr.trF(start), SDGTr.trF(end)); }
public void DrawEllipse(NoForms.Common.Point center, float radiusX, float radiusY, UBrush brush, UStroke stroke) { realRenderer.graphics.DrawEllipse(CreatePen(brush, stroke), center.X - radiusX, center.Y - radiusY, radiusX * 2, radiusY * 2); }
public void DrawEllipse(Point center, float radiusX, float radiusY, UBrush brush, UStroke stroke) { realRenderer.renderTarget.DrawEllipse(new Ellipse(D2DTr.tr(center), radiusX, radiusY), CreateBrush(brush), stroke.strokeWidth, CreateStroke(stroke)); }
StrokeStyle CreateStroke(UStroke s) { return(s.Retreive <SharpDX_RenderElements>(new NoCacheDelegate(() => CreateNewStroke(s))) as StrokeStyle); }
public void DrawRoundedRectangle(Rectangle rect, float radX, float radY, UBrush brush, UStroke stroke) { var rr = new RoundedRectangle() { Rect = D2DTr.tr(rect), RadiusX = radX, RadiusY = radY }; realRenderer.renderTarget.DrawRoundedRectangle(rr, CreateBrush(brush), stroke.strokeWidth, CreateStroke(stroke)); }
public void DrawRectangle(Rectangle rect, UBrush brush, UStroke stroke) { realRenderer.renderTarget.DrawRectangle(D2DTr.tr(rect), CreateBrush(brush), stroke.strokeWidth, CreateStroke(stroke)); }
public void DrawLine(Point start, Point end, UBrush brush, UStroke stroke) { realRenderer.renderTarget.DrawLine(D2DTr.tr(start), D2DTr.tr(end), CreateBrush(brush), stroke.strokeWidth, CreateStroke(stroke)); }
public void DrawRoundedRectangle(Rectangle rect, float radX, float radY, UBrush brush, UStroke stroke) { int st = rel.renderData.sofwareBuffer.Count; RRPoints(rect, radX, radY, brush); int cnt = rel.renderData.sofwareBuffer.Count - st; rel.renderData.bufferInfo.Add(new RenderInfo(st, cnt, ArrayData.Vertex | ArrayData.Color, PrimitiveType.LineLoop)); }
public void DrawPath(UPath path, UBrush brush, UStroke stroke) { realRenderer.renderTarget.DrawGeometry(CreatePath(path), CreateBrush(brush), stroke.strokeWidth, CreateStroke(stroke)); }
public void DrawPath(UPath path, UBrush brush, UStroke stroke) { realRenderer.graphics.DrawPath(CreatePen(brush, stroke), CreatePath(path)); }
public void DrawEllipse(Point center, float radiusX, float radiusY, UBrush brush, UStroke stroke) { GL.Begin(PrimitiveType.LineLoop); foreach (var pt in GeometryLib.EllipseUtil.GetEllipse(radiusX, radiusX, .1f)) { float x = pt.X + center.X; float y = pt.Y + center.Y; setCoordColor(brush, x, y); GL.Vertex2(x, y); } GL.End(); }