Esempio n. 1
0
        private static void Render(Canvas target, IViewport viewport, IEnumerable<ILayer> layers,
            Color background, bool rasterizing)
        {
            target.BeginInit();

            target.Background = background == null ? null : new XamlMedia.SolidColorBrush {Color = background.ToXaml()};

            target.Visibility = Visibility.Collapsed;

            foreach (var child in target.Children)
            {
                (child as Canvas)?.Children.Clear();
            }

            target.Children.Clear();

            layers = layers.ToList();

            foreach (var layer in layers)
            {
                if (!layer.Enabled) continue;
                if (layer.MinVisible > viewport.Resolution) continue;
                if (layer.MaxVisible < viewport.Resolution) continue;

                RenderLayer(target, viewport, layer, rasterizing);
            }
            target.Arrange(new Rect(0, 0, viewport.Width, viewport.Height));
            target.Visibility = Visibility.Visible;

            if (DeveloperTools.DeveloperMode)
            {
                DrawDebugInfo(target, layers);
            }

            target.EndInit();
        }