internal override void Draw(IGeometryRenderer renderer, MeshList meshList) { var r = renderer as GraphicsImplementation.BuiltinGeometryRenderer; Debug.Assert(r != null); r.DrawPrimitive(this.Geometry, this.Rect, this.RuleSet, meshList); }
public static void RemoveRenderer(IGeometryRenderer renderer) { var r = _renderers.FirstOrDefault(arg => arg.GeometryType == renderer.GeometryType); if (r != null) { _renderers.Remove(r); } }
public static void AddRenderer(IGeometryRenderer renderer) { var existing = _renderers.Where(arg => arg.GeometryType.GetTypeInfo().IsAssignableFrom(renderer.GetType().GetTypeInfo())); if (existing.Any()) { throw new InvalidOperationException("Duplicate renderer"); } _renderers.Add(renderer); }