/// <summary> /// Create and initialize the rendering engine. This method sets all of the configuration settings /// and parses the songs into the initial list of nodes. /// </summary> /// <param name="song">Song.</param> /// <param name="fonts">Fonts.</param> /// <param name="appSettings">App settings.</param> /// <param name="pageSetup">Page setup.</param> /// <param name="forDisplay">If set to <c>true</c> for display.</param> public RenderEngine(SongData song, AppSettings appSettings, PageSetup pageSetup, RenderOption renderOption) { _song = song; _renderOption = renderOption; _appSettings = appSettings; #region Page Setup _pageSettings.PaperHeight = pageSetup.GetPaperHeight(Unit.Pixel); _pageSettings.PaperWidth = pageSetup.GetPaperWidth(Unit.Pixel); _pageSettings.PageHeight = pageSetup.GetPageHeight(Unit.Pixel); _pageSettings.PageWidth = pageSetup.GetPageWidth(Unit.Pixel); _pageSettings.TopMargin = pageSetup.GetTopMargin(Unit.Pixel); _pageSettings.LeftMargin = pageSetup.GetLeftMargin(Unit.Pixel); _paperHeight = Convert.ToInt32((long)_pageSettings.PaperHeight); _paperWidth = Convert.ToInt32((long)_pageSettings.PaperWidth); #endregion ParseSong(_song); }