Ejemplo n.º 1
0
 private void LoadRenderers()
 {
     cbRenderer.Items.Clear();
     foreach (String RendererName in RendererManager.Instance().AvailableRendererCodes)
     {
         cbRenderer.Items.Add(new RendererListEntry(RendererName));
     }
     cbRenderer.SelectedIndex = 0;
 }
Ejemplo n.º 2
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();
     }
 }
Ejemplo n.º 3
0
        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();
        }
Ejemplo n.º 4
0
        // 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);
        }
Ejemplo n.º 5
0
        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;
        }
Ejemplo n.º 6
0
 public RendererListEntry(String Name)
 {
     RendererName          = Name;
     _RendererFriendlyName = RendererManager.Instance().GetFriendlyName(Name);
 }