private void LoadRenderers() { cbRenderer.Items.Clear(); foreach (String RendererName in RendererManager.Instance().AvailableRendererCodes) { cbRenderer.Items.Add(new RendererListEntry(RendererName)); } cbRenderer.SelectedIndex = 0; }
private void btnRendererOptions_Click(object Sender, EventArgs E) { if (_CachedConfigForm == null) { IRenderer Renderer = RendererManager.Instance().InstantiateRenderer((_SelectedRenderer).RendererName); _CachedConfigForm = Renderer.ConfigurationForm; } if (_CachedConfigForm == null) { MessageBox.Show(". does not have an advanced configuration.", "No Advanced Configuration", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { _CachedConfigForm.ConfigStrings = _RenderingConfig.AdvancedRenderOptions; _CachedConfigForm.ShowDialog(this); _RenderingConfig.AdvancedRenderOptions = _CachedConfigForm.ConfigStrings; QueuePreview(); } }
void ShowHelp() { Console.WriteLine("SeeSharp Syntax: SeeSharp ( params )"); Console.WriteLine(" -?, -h: . . . . . . Show this help and exit."); Console.WriteLine(" -w world/path: . . Path to save folder. Mandatory."); Console.WriteLine(" -o output/path: . . Where to save exported map image. Omit to skip this step."); Console.WriteLine(" -T :. . . . . . . . Use multithreaded renderer."); Console.WriteLine(" -m output/path: . . Where to save world metrics. Omit to skip this step."); Console.WriteLine(" -s output/path: . . Where to save sign information. Omit to skip this step."); Console.WriteLine(" -p palette/path:. . Add an additional palette to the renderer, ex for custom blocks"); Console.WriteLine(" -l [0..15]: . . . . Minimum light value to render. Defaults to 15 if skipped."); Console.WriteLine(" -d #: . . . . . . . Dimension to render. Defaults to 0 / Overworld."); Console.WriteLine(" -r Renderer-Name: . Which renderer to use. 'Standard' is built in"); Console.WriteLine(" -R Option Value:. . Advanced renderer option"); IRenderer Renderer = RendererManager.Instance().InstantiateRenderer(!String.IsNullOrEmpty(_Configuration.RendererName) ? _Configuration.RendererName : ""); Console.WriteLine(""); Console.WriteLine(Renderer.RendererFriendlyName + " advanced options: "); Renderer.PrintHelpInfo(); }
// ReSharper disable once FunctionComplexityOverflow // *** It's a freaking switch. Not exactly overly complex. bool HandleCommandLineArguments(IList <string> Args) { bool DoShowHelp = false; for (int X = 0; X < Args.Count; X++) { switch (Args[X]) { case "-l": case "--light-Level": _Configuration.MinLightLevel = int.Parse(Args[++X]); if (_Configuration.MinLightLevel < 0 || _Configuration.MinLightLevel > 15) { Console.WriteLine("The Minlight (--light-level) value must be between 0 and 15, inclusive. Will use a Minlight value of 15 (full daylight)."); _Configuration.MinLightLevel = 15; } break; case "-w": case "--world": _Configuration.WorldPath = Args[++X]; break; case "-s": case "--signs": _Configuration.ScanFilename = Args[++X]; break; case "-m": case "--metrics": _Configuration.MetricsFilename = Args[++X]; break; case "-p": case "--palette": _LoadAdditionalPalettes.Add(Args[++X]); break; case "-o": case "--output": _Configuration.SaveFilename = Args[++X]; break; case "-T": case "--multi-thread": _Configuration.EnableMultithreading = true; break; case "-t": case "--max-threads": _Configuration.MaxThreads = int.Parse(Args[++X]); break; case "-d": case "--dimension": _Metrics.Dimension = Args[++X]; _Configuration.Dimension = Args[X]; break; case "-S": case "--subregion": _Configuration.RenderSubregion = true; break; case "-mX": case "--subregion-min-x": int NewLeft = int.Parse(Args[++X]); _Configuration.SubregionChunks.Width += _Configuration.SubregionChunks.Left - NewLeft; _Configuration.SubregionChunks.X = NewLeft; break; case "-mZ": case "--subregion-min-Z": int NewTop = int.Parse(Args[++X]); _Configuration.SubregionChunks.Height += _Configuration.SubregionChunks.Top - NewTop; _Configuration.SubregionChunks.Y = NewTop; break; case "-MX": case "--subregion-max-x": _Configuration.SubregionChunks.Width = int.Parse(Args[++X]) - _Configuration.SubregionChunks.Left; break; case "-MZ": case "--subregion-max-Z": _Configuration.SubregionChunks.Height = int.Parse(Args[++X]) - _Configuration.SubregionChunks.Top; break; case "-r": case "--render-core": _Configuration.RendererName = Args[++X]; break; case "-R": case "--render-option": String Option = Args[++X]; _Configuration.AdvancedRenderOptions.Add(new KeyValuePair <string, string>(Option, Args[++X])); break; case "-ls": case "--list-renderers": Console.Write("Renderers:"); foreach (String RendererName in RendererManager.Instance().AvailableRendererCodes) { Console.WriteLine(RendererName + " - " + RendererManager.Instance().GetFriendlyName(RendererName)); } break; case "-?": case "-h": case "--help": DoShowHelp = true; break; default: Console.WriteLine("Error: Unknown command line parameter " + Args[X]); ShowHelp(); return(true); } } if (DoShowHelp) { ShowHelp(); return(true); } return(false); }
private void Render(bool IsPreview) { _Abort = false; ToggleControls(!IsPreview, true, IsPreview); SetStatus("Initializing..."); IRenderer Renderer = null; // *** Set up renderer config _RenderingConfig.IsPreview = IsPreview; _RenderingConfig.Chunks = _World.GetChunkManager(_RenderingConfig.Dimension); _RenderingConfig.Palette = new BlockPalette(); _RenderingConfig.RenderSubregion = cbCropMap.Checked; _RenderingConfig.MaxThreads = cbMultithread.Checked ? (int)nudThreads.Value : 1; // ReSharper disable once InconsistentlySynchronizedField // *** This section of code is run before the parallel processing begins, so there is no danger of sync issues. _SkipErrors.Clear(); if (IsPreview) { _RenderingConfig.RenderSubregion = true; _RenderingConfig.SubregionChunks = new Rectangle(-15, -15, 31, 31); } else if (_RenderingConfig.RenderSubregion) { _RenderingConfig.SubregionChunks = new Rectangle((int)nudXMin.Value, (int)nudZMin.Value, (int)nudXMax.Value - (int)nudXMin.Value + 1, (int)nudZMax.Value - (int)nudZMin.Value + 1); } else { _RenderingConfig.SubregionChunks = new Rectangle(_RenderingConfig.Metrics.MinX, _RenderingConfig.Metrics.MinZ, _RenderingConfig.Metrics.MaxX - _RenderingConfig.Metrics.MinX, _RenderingConfig.Metrics.MaxZ - _RenderingConfig.Metrics.MinZ); } if (_Abort) { goto Cleanup; } foreach (DataGridViewRow Row in dgPalettes.Rows) { ((PaletteFile)Row.Tag).Selected = (bool)Row.Cells[0].Value; } // *** Set up palettes foreach (String Palette in from PaletteFile File in PaletteManager.Instance().AllPalettes where File.Selected select File.PalettePath) { try { _RenderingConfig.Palette.LoadPalette(Palette); } catch (BlockPalette.PaletteExecutionException Ex) { MessageBox.Show(string.Format("The palette file {0} is invalid and will be skipped:\r\n{1}", Path.GetFileName(Palette), Ex.Message), "Palette Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); PaletteManager.Instance().AllPalettes.First(x => x.PalettePath == Palette).Selected = false; } } if (_Abort) { goto Cleanup; } UpdatePaletteSelection(); _RenderingConfig.Palette.AssembleLookupTables(); // *** Initialize renderer Renderer = RendererManager.Instance().InstantiateRenderer((_SelectedRenderer).RendererName); Renderer.ProgressUpdate += DoUpdate; Renderer.RenderError += HandleError; Renderer.Configure(_RenderingConfig); Renderer.Initialize(); _AbortRender = Renderer.Abort; // *** Render if (IsPreview) { pbPreview.Image = Renderer.Preview(); } else { Renderer.Render(); } Cleanup: // *** Clean up if (Renderer != null) { Renderer.ProgressUpdate -= DoUpdate; Renderer.RenderError -= HandleError; } ToggleControls(false, _World != null, false); SetStatus(_Abort ? "Aborted" : "Finished", "Render " + (_Abort ? "Aborted" : "Finished")); SetProgress(0); _AbortRender = null; _Abort = false; }
public RendererListEntry(String Name) { RendererName = Name; _RendererFriendlyName = RendererManager.Instance().GetFriendlyName(Name); }