AlphaTab.Test.Importer.GpImporterTestBase.Render C# (CSharp) Метод

Render() защищенный Метод

protected Render ( AlphaTab.Model.Score score, [ callerFile = null, [ caller = null ) : void
score AlphaTab.Model.Score
callerFile [
caller [
Результат void
        protected void Render(Score score, [CallerFilePath] string callerFile = null, [CallerMemberName] string caller = null)
        {
            if (caller == null)
            {
                throw new ArgumentNullException("caller", "svg rendering failed because caller info was missing");
            }
            var settings = Settings.Defaults;
            settings.Engine = "svg";
            var renderer = new ScoreRenderer(settings);
            for (int i = 0; i < score.Tracks.Count; i++)
            {
                Track track = score.Tracks[i];
                // render track
                Console.WriteLine("Rendering track {0} - {1}", i + 1, track.Name);
                var totalWidth = 0;
                var totalHeight = 0;
                var merged = XDocument.Parse("<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" width=\"1px\" height=\"1px\"></svg>");
                var currentY = 0f;
                renderer.PartialRenderFinished += r =>
                {
                    var subSvg = XDocument.Parse(r.RenderResult.ToString());
                    var subRoot = subSvg.Root;
                    subRoot.SetAttributeValue("x", "0px");
                    subRoot.SetAttributeValue("y", ((int)currentY) + "px");
                    merged.Root.Add(subRoot);
                    currentY += r.Height;
                };
                renderer.RenderFinished += r =>
                {
                    totalWidth = (int)r.TotalWidth;
                    totalHeight = (int)r.TotalHeight;
                };
                renderer.Render(track);

                merged.Root.Attribute("width").Value = totalWidth + "px";
                merged.Root.Attribute("height").Value = totalHeight + "px";

                var svg = merged.ToString();

                var dirName = Path.GetFileNameWithoutExtension(callerFile);
                var path = Path.Combine(dirName, caller + "-" + i + ".svg");
                if (!Directory.Exists(dirName))
                {
                    Directory.CreateDirectory(dirName);
                }
                File.WriteAllText(path, svg);
            }
        }