コード例 #1
0
        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);
        }
コード例 #2
0
        public static void RemoveRenderer(IGeometryRenderer renderer)
        {
            var r = _renderers.FirstOrDefault(arg => arg.GeometryType == renderer.GeometryType);

            if (r != null)
            {
                _renderers.Remove(r);
            }
        }
コード例 #3
0
        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);
        }