Example #1
0
        protected internal override void PrepareContext()
        {
            base.PrepareContext();

            // Init assets
            if (Context.InitializeDatabase)
            {
                InitializeAssetDatabase();

                var renderingSettings = new RenderingSettings();
                if (Content.Exists(GameSettings.AssetUrl))
                {
                    Settings = Content.Load <GameSettings>(GameSettings.AssetUrl);

                    renderingSettings = Settings.Configurations.Get <RenderingSettings>();

                    // Set ShaderProfile even if AutoLoadDefaultSettings is false (because that is what shaders in effect logs are compiled against, even if actual instantiated profile is different)
                    if (renderingSettings.DefaultGraphicsProfile > 0)
                    {
                        var deviceManager = (GraphicsDeviceManager)graphicsDeviceManager;
                        if (!deviceManager.ShaderProfile.HasValue)
                        {
                            deviceManager.ShaderProfile = renderingSettings.DefaultGraphicsProfile;
                        }
                    }
                }

                // Load several default settings
                if (AutoLoadDefaultSettings)
                {
                    var deviceManager = (GraphicsDeviceManager)graphicsDeviceManager;
                    if (renderingSettings.DefaultGraphicsProfile > 0)
                    {
                        deviceManager.PreferredGraphicsProfile = new[] { renderingSettings.DefaultGraphicsProfile };
                    }
                    if (renderingSettings.DefaultBackBufferWidth > 0)
                    {
                        deviceManager.PreferredBackBufferWidth = renderingSettings.DefaultBackBufferWidth;
                    }
                    if (renderingSettings.DefaultBackBufferHeight > 0)
                    {
                        deviceManager.PreferredBackBufferHeight = renderingSettings.DefaultBackBufferHeight;
                    }
                    deviceManager.PreferredColorSpace = renderingSettings.ColorSpace;
                    SceneSystem.InitialSceneUrl       = Settings?.DefaultSceneUrl;
                }
            }
        }
Example #2
0
    void DoRenderingMode()
    {
        RenderingMode mode = RenderingMode.Opaque;

        shouldShowAlphaCutoff = false;
        if (IsKeywordEnabled("_RENDERING_CUTOUT"))
        {
            mode = RenderingMode.Cutout;
            shouldShowAlphaCutoff = true;
        }
        else if (IsKeywordEnabled("_RENDERING_FADE"))
        {
            mode = RenderingMode.Fade;
        }
        else if (IsKeywordEnabled("_RENDERING_TRANSPARENT"))
        {
            mode = RenderingMode.Transparent;
        }

        EditorGUI.BeginChangeCheck();
        mode = (RenderingMode)EditorGUILayout.EnumPopup(
            MakeLabel("Rendering Mode"), mode
            );
        if (EditorGUI.EndChangeCheck())
        {
            RecordAction("Rendering Mode");
            SetKeyword("_RENDERING_CUTOUT", mode == RenderingMode.Cutout);
            SetKeyword("_RENDERING_FADE", mode == RenderingMode.Fade);
            SetKeyword(
                "_RENDERING_TRANSPARENT", mode == RenderingMode.Transparent
                );

            RenderingSettings settings = RenderingSettings.modes[(int)mode];
            foreach (Material m in editor.targets)
            {
                m.renderQueue = (int)settings.queue;
                m.SetOverrideTag("RenderType", settings.renderType);
                m.SetInt("_SrcBlend", (int)settings.srcBlend);
                m.SetInt("_DstBlend", (int)settings.dstBlend);
                m.SetInt("_ZWrite", settings.zWrite ? 1 : 0);
            }
        }

        if (mode == RenderingMode.Fade || mode == RenderingMode.Transparent)
        {
            DoSemitransparentShadows();
        }
    }
Example #3
0
 public string ExtractPage(string filePath, int pageNumber)
 {
     // open and load the file
     using (FileStream fs = new FileStream(filePath, FileMode.Open))
     {
         Document          document = new Document(fs);
         RenderingSettings settings = new RenderingSettings();
         Page currentPage           = document.Pages[0];
         using (Bitmap bitmap = currentPage.Render((int)currentPage.Width, (int)currentPage.Height, settings))
         {
             var tmpFile = Path.GetTempFileName();
             bitmap.Save(tmpFile, ImageFormat.Png);
             return(tmpFile);
         }
     }
 }
        public RenderTexture CreatePartitionTexture(RenderTexture muRenderTexture, RenderingSettings renderingSettings)
        {
            _renderingSettings = renderingSettings;

            _partitionDrawingShader.SetBool("DrawGrayscale", _renderingSettings.DrawGrayscale);
            _partitionDrawingShader.SetInts("ImageSize", _settings.SpaceSettings.GridSize[0], _settings.SpaceSettings.GridSize[1]);
            _partitionDrawingShader.SetInt("BorderWidth", _renderingSettings.BorderWidth);

            _partitionDrawingShader.SetTexture(_partitionDrawingKernel, "MuGrids", muRenderTexture);
            _partitionDrawingShader.SetBool("DrawThresholdValue", _renderingSettings.DrawWithMistrustCoefficient);
            _partitionDrawingShader.SetFloat("MuThresholdValue", (float)_renderingSettings.MistrustCoefficient);

            _partitionDrawingShader.Dispatch(_partitionDrawingKernel, _settings.SpaceSettings.GridSize[0] / _shaderNumThreads.x, _settings.SpaceSettings.GridSize[1] / _shaderNumThreads.y, 1);

            return(_partitionRenderTexture);
        }
Example #5
0
        /// <summary>
        /// Initializes a new instance of the <see cref="RenderingSettingsForm"/> class.
        /// </summary>
        /// <param name="renderingSettings">The rendering settings.</param>
        public RenderingSettingsForm(RenderingSettings renderingSettings)
        {
            InitializeComponent();

            if (renderingSettings == null)
            {
                renderingSettings = RenderingSettings.Empty;
            }

            _renderingSettings = renderingSettings;

            interpolationModeComboBox.Items.Add(InterpolationMode.Bicubic);
            interpolationModeComboBox.Items.Add(InterpolationMode.Bilinear);
            interpolationModeComboBox.Items.Add(InterpolationMode.Default);
            interpolationModeComboBox.Items.Add(InterpolationMode.High);
            interpolationModeComboBox.Items.Add(InterpolationMode.HighQualityBicubic);
            interpolationModeComboBox.Items.Add(InterpolationMode.HighQualityBilinear);
            interpolationModeComboBox.Items.Add(InterpolationMode.Low);
            interpolationModeComboBox.Items.Add(InterpolationMode.NearestNeighbor);

            smoothingModeComboBox.Items.Add(SmoothingMode.AntiAlias);
            smoothingModeComboBox.Items.Add(SmoothingMode.Default);
            smoothingModeComboBox.Items.Add(SmoothingMode.HighQuality);
            smoothingModeComboBox.Items.Add(SmoothingMode.HighSpeed);
            smoothingModeComboBox.Items.Add(SmoothingMode.None);

            // if rendering settings are empty
            if (renderingSettings.IsEmpty || renderingSettings.Resolution.IsEmpty())
            {
                defaultCheckBox.Checked                = true;
                smoothingModeComboBox.SelectedItem     = SmoothingMode.HighQuality;
                interpolationModeComboBox.SelectedItem = InterpolationMode.HighQualityBilinear;
                optimizeImageDrawingCheckBox.Checked   = true;
                drawSharpImageBordersCheckBox.Checked  = true;
            }
            else
            {
                defaultCheckBox.Checked                 = false;
                smoothingModeComboBox.SelectedItem      = renderingSettings.SmoothingMode;
                interpolationModeComboBox.SelectedItem  = renderingSettings.InterpolationMode;
                horizontalResolutionNumericUpDown.Value = (int)renderingSettings.Resolution.Horizontal;
                verticalResolutionNumericUpDown.Value   = (int)renderingSettings.Resolution.Vertical;
                optimizeImageDrawingCheckBox.Checked    = renderingSettings.OptimizeImageDrawing;
                drawSharpImageBordersCheckBox.Checked   = renderingSettings.DrawSharpImageBorders;
            }
        }
Example #6
0
        /// <summary>
        ///   Called when the digest item is selected.
        /// </summary>
        /// <param name="sender"> The sender. </param>
        /// <param name="e"> The <see cref="System.Windows.Forms.ListViewItemSelectionChangedEventArgs" /> instance containing the event data. </param>
        private void OnSelectResult(object sender, ListViewItemSelectionChangedEventArgs e)
        {
            lock (selectionLock)
            {
                if (resultsView.SelectedItems.Count != 0)
                {
                    ResultItem item = (ResultItem)resultsView.SelectedItems[0].Tag;
                    if (item.FileName != currentWorkingFileName || document == null)
                    {
                        if (document != null)
                        {
                            document.Dispose();
                        }

                        FileStream stream = new FileStream(item.FileName, FileMode.Open, FileAccess.Read, FileShare.Read);

                        // create document used for search and rendering
                        document = new Document(stream);
                        currentWorkingFileName = item.FileName;
                    }

                    Page page = document.Pages[item.SearchResult.PageIndex];
                    RenderingSettings renderingSettings = new RenderingSettings();

                    Resolution resolution = new Resolution(72, 72);
                    Bitmap     bmp        = page.Render(resolution, renderingSettings);


                    // Highlights the search result
                    Graphics           gr = Graphics.FromImage(bmp);
                    SearchResultRegion searchResultRegion = page.TransformRegion(item.SearchResult.Region, resolution, renderingSettings);

                    foreach (double[] block in searchResultRegion.Blocks)
                    {
                        PointF[] points = new PointF[block.Length / 2];
                        for (int i = 0; i < block.Length / 2; i++)
                        {
                            points[i] = new PointF((float)block[i * 2], (float)block[i * 2 + 1]);
                        }
                        gr.FillPolygon(new SolidBrush(Color.FromArgb(50, Color.Yellow)), points);
                    }

                    pictureBox1.Image = bmp;
                }
            }
        }
Example #7
0
        /// <summary>
        /// 将PDF文档转换为图片的方法
        /// </summary>
        /// <param name="pdfInputPath">PDF文件路径</param>
        /// <param name="imageOutputPath">图片输出路径</param>
        /// <param name="imageName">生成图片的名字</param>
        /// <param name="startPageNum">从PDF文档的第几页开始转换</param>
        /// <param name="endPageNum">从PDF文档的第几页开始停止转换</param>
        /// <param name="imageFormat">设置所需图片格式</param>
        /// <param name="definition">设置图片的清晰度,数字越大越清晰</param>
        public static void ConvertPDF2Image(string pdfInputPath, string imageOutputPath,
                                            string imageName, int startPageNum, int endPageNum, ImageFormat imageFormat, Definition definition)
        {
            FileStream fs = new FileStream(pdfInputPath, FileMode.Open);

            Apitron.PDF.Rasterizer.Document doc = new Apitron.PDF.Rasterizer.Document(fs);

            if (!Directory.Exists(imageOutputPath))
            {
                Directory.CreateDirectory(imageOutputPath);
            }

            // validate pageNum
            if (startPageNum <= 0)
            {
                startPageNum = 1;
            }

            if (endPageNum > doc.Pages.Count)
            {
                endPageNum = doc.Pages.Count;
            }

            if (startPageNum > endPageNum)
            {
                int tempPageNum = startPageNum;
                startPageNum = endPageNum;
                endPageNum   = startPageNum;
            }

            // start to convert each page 0-based numeration
            for (int i = startPageNum - 1; i <= endPageNum - 1; i++)
            {
                RenderingSettings option = new RenderingSettings();
                option.DrawImages     = true;
                option.DrawText       = true;
                option.DrawAnotations = true;

                doc.Pages[i].Render((int)doc.Pages[i].Width, (int)doc.Pages[i].Height, option).Save(imageOutputPath + imageName + i.ToString() + "." + imageFormat, imageFormat);
            }

            fs.Dispose();
        }
        /// <summary>
        /// 将PDF文档转换为图片的方法
        /// </summary>
        /// <param name="pdfInputPath">PDF文件路径</param>
        /// <param name="imageOutputPath">图片输出路径</param>
        /// <param name="imageName">生成图片的名字</param>
        /// <param name="startPageNum">从PDF文档的第几页开始转换</param>
        /// <param name="endPageNum">从PDF文档的第几页开始停止转换</param>
        /// <param name="imageFormat">设置所需图片格式</param>
        /// <param name="definition">设置图片的清晰度,数字越大越清晰</param>
        public static void ConvertPDF2Image(string pdfInputPath, string imageOutputPath,
            string imageName, int startPageNum, int endPageNum, ImageFormat imageFormat, Definition definition)
        {
            FileStream fs = new FileStream(pdfInputPath, FileMode.Open);

            Apitron.PDF.Rasterizer.Document doc = new Apitron.PDF.Rasterizer.Document(fs);

            if (!Directory.Exists(imageOutputPath))
            {
                Directory.CreateDirectory(imageOutputPath);
            }

            // validate pageNum
            if (startPageNum <= 0)
            {
                startPageNum = 1;
            }

            if (endPageNum > doc.Pages.Count)
            {
                endPageNum = doc.Pages.Count;
            }

            if (startPageNum > endPageNum)
            {
                int tempPageNum = startPageNum;
                startPageNum = endPageNum;
                endPageNum = startPageNum;
            }

            // start to convert each page 0-based numeration
            for (int i = startPageNum-1; i <= endPageNum-1; i++)
            {
                RenderingSettings option = new RenderingSettings();
                option.DrawImages = true;
                option.DrawText = true;
                option.DrawAnotations = true;

                doc.Pages[i].Render((int) doc.Pages[i].Width, (int) doc.Pages[i].Height, option).Save(imageOutputPath + imageName + i.ToString() + "." + imageFormat, imageFormat);
            }

            fs.Dispose();
        }
        private static void Main(string[] args)
        {
            // open and load the file
            using (FileStream fs = new FileStream(@"..\..\..\Documents\testfile.pdf", FileMode.Open))
            {
                // this objects represents a PDF document
                Document document = new Document(fs);

                // intialize settings object
                RenderingSettings settings = new RenderingSettings();

                // i want a special background for my pages
                settings.BackgroundColor = (uint)Color.LawnGreen.ToArgb();

                // annotaions objects like notes, will be drawn
                settings.DrawAnotations = true;

                // images will be drawn as well
                settings.DrawImages = true;

                // text on
                settings.DrawText = true;

                // i want page to be turned 90 degrees clockwise
                settings.RotationAngle = RotationAngle.Rotate90;

                // i want page content to fit undistorted, so let's preserve an aspect ratio
                settings.ScaleMode = ScaleMode.PreserveAspectRatio;

                // process and save pages one by one
                for (int i = 0; i < document.Pages.Count; i++)
                {
                    Page currentPage = document.Pages[i];

                    // we use original page's width and height for image as well as default rendering settings
                    using (Bitmap bitmap = currentPage.Render((int)currentPage.Width, (int)currentPage.Height, settings))
                    {
                        bitmap.Save($"{i}.png", ImageFormat.Png);
                    }
                }
                System.Diagnostics.Process.Start("0.png");
            }
        }
Example #10
0
        /// <summary>
        /// Shows settings of the image viewer.
        /// </summary>
        private void ShowSettings()
        {
            // image anchor
            imageAnchorTypeEditor.SelectedAnchorType = _viewer.ImageAnchor;

            // rendering quality
            renderingQualityComboBox.SelectedItem = _viewer.RenderingQuality;

            // focus point
            focusPointAnchorTypeEditor.SelectedAnchorType = _viewer.FocusPointAnchor;
            focusPointIsFixedCheckBox.Checked             = _viewer.IsFocusPointFixed;

            // buffering
            rendererCacheSizeNumericUpDown.Value = (int)Math.Round(_viewer.RendererCacheSize);
            viewerBufferSizeNumericUpDown.Value  = (int)Math.Round(_viewer.ViewerBufferSize);
            minImageSizeWhenZoomBufferUsedNumericUpDown.Value = (int)Math.Round(_viewer.MinImageSizeWhenZoomBufferUsed);

            // backgroud color
            backgoundColorPanelControl.Color = _viewer.BackColor;

            // rendering
            _renderingSettings = _viewer.ImageRenderingSettings;
            previewIntervalOfVectorImagesNumericUpDown.Value = _viewer.IntermediateImagePreviewInterval;
            vectorRenderingQualityFactorTrackBar.Value       = (int)((_viewer.VectorRenderingQualityFactor - 1) * 4f);
            maxThreadsNumericUpDown.Value           = _viewer.MaxThreadsForRendering;
            renderOnlyVisibleImagesCheckBox.Checked = _viewer.RenderOnlyVisibleImages;

            // image display mode
            multipageDisplayModeComboBox.SelectedItem = _viewer.MultipageDisplayMode;
            layoutDirectionComboBox.SelectedItem      = _viewer.MultipageDisplayLayoutDirection;
            imagesInRowColumnNumericUpDown.Value      = _viewer.MultipageDisplayRowCount;
            imagesPaddingNumericUpDown.Value          = (decimal)_viewer.MultipageDisplayImagePadding.All;
            _imageAppearance        = _viewer.ImageAppearance;
            _focusedImageAppearance = _viewer.FocusedImageAppearance;
            useImageAppearancesInSinglepageModeCheckBox.Checked = _viewer.UseImageAppearancesInSinglePageMode;

            // keyboard
            keyboardNavigationCheckBox.Checked = _viewer.IsKeyboardNavigationEnabled;
            keyboardNavigationGroupBox.Enabled = keyboardNavigationCheckBox.Checked;
            keyboardNavigationScrollStepNumericUpDown.Value = _viewer.KeyboardNavigationScrollStep;
            keyboardNavigationZoomStepNumericUpDown.Value   = (decimal)_viewer.KeyboardNavigationZoomStep;
        }
        protected virtual Renderer GetRenderer(Rendering rendering, GetRendererArgs args)
        {
            if (rendering.RenderingItem == null
                || rendering.RenderingItem.InnerItem == null) return null;

            var settings = new RenderingSettings();
            settings.DataSource = rendering.DataSource;
            settings.Parameters = rendering["Parameters"];
            settings.Placeholder = rendering.Placeholder;
            settings.Caching = RenderingCaching.Parse(rendering.RenderingItem.InnerItem);
            settings.Conditions = rendering.RenderingItem.Conditions;
            settings.MultiVariateTest = rendering.RenderingItem.MultiVariateTest;

            var ctrl = rendering.RenderingItem.GetControl(settings);
            if (ctrl != null)
            {
                return new ControlRenderer(ctrl, ""+rendering.UniqueId);
            }

            return null;
        }
Example #12
0
        static void Main(string[] args)
        {
            using (FileStream fs = new FileStream(@"..\..\..\Documents\LinksUsageSample.pdf", FileMode.Open))
            {
                using (Document doc = new Document(fs))
                {
                    // If system does not have Mincho font - it will be substituted by Arial
                    // map the font to all not found fonts using *, it's possible to map particular fonts
                    // using their names
                    EngineSettings.UserFontMappings.Add(new KeyValuePair <string, string[]>("Arial", new[] { "*" }));

                    foreach (var font in doc.Fonts)
                    {
                        if (font.Name.Contains("Mincho"))
                        {
                            Console.WriteLine(font.Name);
                            Console.WriteLine(font.State);
                            Console.WriteLine(font.ActualFontType);
                            Console.WriteLine(font.ActualFontName);
                        }
                    }
                    RenderingSettings settings = new RenderingSettings();
                    settings.RenderMode = RenderMode.HighQuality;
                    for (int j = 0; j < doc.Pages.Count; j++)
                    {
                        Page   page = doc.Pages[j];
                        Bitmap bm   = page.Render(new Resolution(300, 300), settings);

                        if (bm != null)
                        {
                            bm.Save($"out{j}.png");
                            bm.Dispose();
                        }
                    }
                }
            }
            Console.WriteLine("Press any key to exit.");
            Console.ReadKey();
        }
Example #13
0
        /// <summary>
        /// Преобразование директории pdf в png без масштабирования
        /// </summary>
        /// <param name="dirSrcPath"></param>
        /// <param name="dirDstPath"></param>
        public static void ConvertPDFDirToImg(string dirSrcPath, string dirDstPath)
        {
            string[] files = Directory.GetFiles(dirSrcPath);

            foreach (string f in files)
            {
                string            filename = Path.GetFileNameWithoutExtension(f).ToLower();
                Document          document = new Document(File.Open(f, FileMode.Open));
                RenderingSettings settings = new RenderingSettings();

                for (int i = 0; i < document.Pages.Count; i++)
                {
                    Page currentPage = document.Pages[i];

                    using (Bitmap bitmap = currentPage.Render((int)currentPage.Width, (int)currentPage.Height, settings))
                    {
                        string imgName = dirDstPath + filename + i + ".png";
                        bitmap.Save(imgName, System.Drawing.Imaging.ImageFormat.Png);
                    }
                }
            }
        }
Example #14
0
 /// <summary>
 /// Sets the rendering settings if necessary.
 /// </summary>
 /// <param name="images">The images.</param>
 /// <param name="encoder">The encoder.</param>
 /// <param name="defaultRenderingSettings">The default rendering settings.</param>
 public static void SetRenderingSettingsIfNeed(
     ImageCollection images, EncoderBase encoder, RenderingSettings defaultRenderingSettings)
 {
     if (encoder == null || !(encoder is IPdfEncoder))
     {
         for (int i = 0; i < images.Count; i++)
         {
             if (images[i].IsVectorImage)
             {
                 RenderingSettingsForm settingsForm = new RenderingSettingsForm(defaultRenderingSettings.CreateClone());
                 if (settingsForm.ShowDialog() == DialogResult.OK)
                 {
                     images.SetRenderingSettings(settingsForm.RenderingSettings);
                 }
                 else
                 {
                     return;
                 }
                 break;
             }
         }
     }
 }
        public void Init(PartitionSettings partitionSettings, RenderingSettings renderingSettings, Color[] centersColors)
        {
            _settings          = partitionSettings;
            _renderingSettings = renderingSettings;
            _centersColors     = centersColors;

            _partitionDrawingKernel = _partitionDrawingShader.FindKernel(PartitionDrawingKernel);

            _partitionRenderTexture = new RenderTexture(_settings.SpaceSettings.GridSize[0], _settings.SpaceSettings.GridSize[1], 0)
            {
                format            = RenderTextureFormat.ARGB32,
                enableRandomWrite = true
            };
            _partitionRenderTexture.Create();

            CheckAndReleaseBuffer();
            _colorsComputeBuffer = new ComputeBuffer(centersColors.Length, sizeof(float) * 4, ComputeBufferType.Default);
            _colorsComputeBuffer.SetData(_centersColors);

            _partitionDrawingShader.SetInt("CentersCount", _settings.CentersSettings.CentersCount);
            _partitionDrawingShader.SetBuffer(_partitionDrawingKernel, "CentersColors", _colorsComputeBuffer);
            _partitionDrawingShader.SetTexture(_partitionDrawingKernel, "Result", _partitionRenderTexture);
        }
    RenderingMode DoRenderMode()
    {
        RenderingMode mode = RenderingMode.Opaque;

        if (IsKeywordEnable("_RENDERING_CUTOUT"))
        {
            mode = RenderingMode.Cutout;
        }
        else if (IsKeywordEnable("_RENDERING_FADE"))
        {
            mode = RenderingMode.Fade;
        }
        else if (IsKeywordEnable("_RENDERING_TRANSPARENT"))
        {
            mode = RenderingMode.Transparent;
        }
        EditorGUI.BeginChangeCheck();
        mode = (RenderingMode)EditorGUILayout.EnumPopup("Render Mode", mode);
        if (EditorGUI.EndChangeCheck())
        {
            SetKeyword("_RENDERING_CUTOUT", mode == RenderingMode.Cutout);
            SetKeyword("_RENDERING_FADE", mode == RenderingMode.Fade);
            SetKeyword("_RENDERING_TRANSPARENT", mode == RenderingMode.Transparent);

            RenderingSettings set = RenderingSettings.modes[(int)mode];

            foreach (Material m in editor.targets)
            {
                m.renderQueue = (int)set.queue;
                m.SetOverrideTag("RenderType", set.renderType);
                m.SetInt("_ScrBlend", set.SrcBlend);
                m.SetInt("_DstBlend", set.DstBlend);
                m.SetInt("_ZWri", set.zWrite);
            }
        }
        return(mode);
    }
    void DoRenderingMode()
    {
        RenderingMode mode = RenderingMode.Opaque;

        showAlphaCutoff = false;
        if (IsKeywordEnabled("_RENDERING_CUTOUT"))
        {
            mode            = RenderingMode.Cutout;
            showAlphaCutoff = true;
        }
        else if (IsKeywordEnabled("_RENDERING_FADE"))
        {
            mode = RenderingMode.Fade;
        }

        EditorGUI.BeginChangeCheck();
        mode = (RenderingMode)EditorGUILayout.EnumPopup
               (
            MakeLabel("Rendering Mode"), mode
               );

        if (EditorGUI.EndChangeCheck())
        {
            RecordAction("Rendering Mode");
            SetKeyword("_RENDERING_CUTOUT", mode == RenderingMode.Cutout);
            SetKeyword("_RENDERING_FADE", mode == RenderingMode.Fade);
        }

        RenderingSettings settings = RenderingSettings.modes[(int)mode];

        foreach (Material m in editor.targets)
        {
            m.renderQueue = (int)settings.queue;
            m.SetOverrideTag("RenderType", settings.renderType);
        }
    }
        public PartitionResult CreateFuzzyPartitionWithCentersPlacing(PartitionSettings partitionSettings, RenderingSettings renderingSettings)
        {
            _partitionPlacingCentersComputer.Init(partitionSettings);

            var centersPositions = _partitionPlacingCentersComputer.Run(out var iterationsCount);

            for (var i = 0; i < centersPositions.Count; i++)
            {
                partitionSettings.CentersSettings.CenterDatas[i].Position = centersPositions[i];
            }

            var result = CreateFuzzyPartitionWithFixedCenters(partitionSettings, renderingSettings);

            result.CentersPositions         = centersPositions.ToArray();
            result.WorkFinished             = true;
            result.PerformedIterationsCount = iterationsCount;

            return(result);
        }
Example #19
0
        static void Main(string[] args)
        {
            // prepare graphics objects
            Bitmap renderedPage   = null;
            Brush  highlightBrush = new SolidBrush(Color.FromArgb(126, 255, 255, 0));

            //  store rendering settings
            Resolution        renderingResolution = new Resolution(144, 144);
            RenderingSettings renderingSettings   = new RenderingSettings();
            Page firstPage = null;

            // a list of rects to highlight
            IList <RectangleF> highlightRects = new List <RectangleF>();

            // open PDF document
            using (FileStream fs = new FileStream("../../files/test.pdf", FileMode.Open, FileAccess.Read,
                                                  FileShare.ReadWrite))
            {
                using (Document doc = new Document(fs))
                {
                    firstPage = doc.Pages[0];

                    renderedPage = firstPage.Render(renderingResolution, renderingSettings);

                    // parse links and store highlight rects
                    foreach (Link link in firstPage.Links)
                    {
                        if (link.IsUriLink)
                        {
                            Apitron.PDF.Rasterizer.Rectangle locationRect =
                                link.GetLocationRectangle(renderingResolution, renderingSettings);

                            highlightRects.Add(TransformToGDIRect(locationRect, renderedPage.Height));

                            Console.WriteLine(link.DestinationUri);
                        }
                    }
                }
            }

            // search text in the same document using regular expression matching URLs
            using (SearchIndex search = new SearchIndex(new FileStream("../../files/test.pdf", FileMode.Open, FileAccess.Read,
                                                                       FileShare.ReadWrite)))
            {
                search.Search(handlerArgs =>
                {
                    // first page only
                    if (handlerArgs.PageIndex > 0)
                    {
                        handlerArgs.CancelSearch = true;
                        return;
                    }

                    // add highlight rects by processing found items
                    foreach (SearchResultItem item in handlerArgs.ResultItems)
                    {
                        SearchResultRegion searchResultRegion = firstPage.TransformRegion(item.Region, renderingResolution,
                                                                                          renderingSettings);

                        foreach (double[] block in searchResultRegion.Blocks)
                        {
                            float xMin = float.MaxValue;
                            float yMin = float.MaxValue;
                            float xMax = float.MinValue;
                            float yMax = float.MinValue;
                            for (int i = 0; i < block.Length;)
                            {
                                xMin = (float)Math.Min(xMin, block[i]);
                                xMax = (float)Math.Max(xMax, block[i++]);

                                yMin = (float)Math.Min(yMin, block[i]);
                                yMax = (float)Math.Max(yMax, block[i++]);
                            }

                            highlightRects.Add(new RectangleF(xMin, yMin, xMax - xMin, yMax - yMin));
                        }

                        Console.WriteLine(item.Title);
                    }
                },
                              new Regex(@"(http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&amp;:/~\+#]*[\w\-\@?^=%&amp;/~\+#])?"));
            }

            // render hightllight rects
            HighlightRects(renderedPage, highlightRects, highlightBrush);

            renderedPage.Save("renderedPage.png");
            Process.Start("renderedPage.png");

            Console.WriteLine("Press any key to continue...");
            Console.ReadLine();
        }
Example #20
0
        /// <summary>
        /// Inititalizes new instance of <see cref="CompositeRenderingSettingsForm"/>.
        /// </summary>
        /// <param name="renderingSettings">Current rendering settings.</param>
        public CompositeRenderingSettingsForm(RenderingSettings renderingSettings)
            : this()
        {
            if (renderingSettings == null)
            {
                renderingSettings = RenderingSettings.Empty;
            }

            _renderingSettings = renderingSettings;

            // init common settings

            if (renderingSettings.IsEmpty || renderingSettings.Resolution.IsEmpty())
            {
                resolutionSettingsCheckBox.Checked = false;
            }
            else
            {
                resolutionSettingsCheckBox.Checked      = true;
                horizontalResolutionNumericUpDown.Value = (int)renderingSettings.Resolution.Horizontal;
                verticalResolutionNumericUpDown.Value   = (int)renderingSettings.Resolution.Vertical;
            }

            smoothingModeComboBox.SelectedItem     = renderingSettings.SmoothingMode;
            interpolationModeComboBox.SelectedItem = renderingSettings.InterpolationMode;
            optimizeImageDrawingCheckBox.Checked   = renderingSettings.OptimizeImageDrawing;
            drawSharpImageBordersCheckBox.Checked  = renderingSettings.DrawSharpImageBorders;

            // init PDF settings
            bool isPdfSettingsEnabled = false;

#if !REMOVE_PDF_PLUGIN
            // get the PDF rendering settings from image rendering settings
            PdfRenderingSettings pdfSettings = CompositeRenderingSettings.GetRenderingSettings <PdfRenderingSettings>(renderingSettings);

            // if PDF rendering settings are found
            if (pdfSettings != null)
            {
                // set the form properties according to the PDF rendering settings

                PdfAnnotationRenderingMode renderingMode = pdfSettings.AnnotationRenderingMode;
                vintasoftAnnotationsCheckBox.Checked = (renderingMode & PdfAnnotationRenderingMode.VintasoftAnnotations) != 0;
                nonMarkupAnnotationsCheckBox.Checked = (renderingMode & PdfAnnotationRenderingMode.NonMarkupAnnotations) != 0;
                markupAnnotationsCheckBox.Checked    = (renderingMode & PdfAnnotationRenderingMode.MarkupAnnotations) != 0;
                renderInvisibleCheckBox.Checked      = (renderingMode & PdfAnnotationRenderingMode.RenderInvisible) != 0;
                renderHiddenCheckBox.Checked         = (renderingMode & PdfAnnotationRenderingMode.RenderHidden) != 0;
                renderPrintableCheckBox.Checked      = (renderingMode & PdfAnnotationRenderingMode.RenderPrintable) != 0;
                renderNoViewCheckBox.Checked         = (renderingMode & PdfAnnotationRenderingMode.RenderNoView) != 0;
                renderDisplayableCheckBox.Checked    = (renderingMode & PdfAnnotationRenderingMode.RenderDisplayable) != 0;

                ignoreImageInterpolationFlagCheckBox.Checked = pdfSettings.IgnoreImageInterpolateFlag;
                optimizePatternRenderingCheckBox.Checked     = pdfSettings.OptimizePatternRendering;
                drawErrorsCheckBox.Checked = pdfSettings.DrawResourceErrorMessages;

                isPdfSettingsEnabled = true;
            }
#endif

            // if PDF document rendering settings are not enabled
            if (!isPdfSettingsEnabled)
            {
                // remove tab page with PDF document rendering settings from the form
                renderingSettingsTabControl.TabPages.Remove(pdfSettingsTabPage);
            }

            // init the Office document settings
            bool isOfficeDocumentSettingsEnabled = false;

#if !REMOVE_OFFICE_PLUGIN
            // get the Office document markup rendering settings from image rendering settings
            MarkupRenderingSettings markupSettings = CompositeRenderingSettings.GetRenderingSettings <MarkupRenderingSettings>(renderingSettings);

            // if Office document markup rendering settings are found
            if (markupSettings != null)
            {
                // set the form properties according to the Office document markup rendering settings
                textRenderingHintComboBox.SelectedItem             = markupSettings.TextRenderingHint;
                showInvisibleTableBordersCheckBox.Checked          = markupSettings.ShowInvisibleTableBorders;
                invisibleTableBordersColorPanelControl.CanSetColor = true;
                invisibleTableBordersColorPanelControl.Color       = markupSettings.InvisibleTableBordersColor;
                invisibleTableBordersGroupBox.Enabled      = showInvisibleTableBordersCheckBox.Checked;
                showNonPrintableCharactersCheckBox.Checked = markupSettings.ShowNonPrintableCharacters;

                isOfficeDocumentSettingsEnabled = true;
            }
#endif

            // if Office document rendering settings are not enabled
            if (!isOfficeDocumentSettingsEnabled)
            {
                // remove tab page with Office document rendering settings from the form
                renderingSettingsTabControl.TabPages.Remove(officeSettingsTabPage);
            }
        }
    void DoRenderingMode()
    {
        ShadowsCUlling shadowCulling = ShadowsCUlling.Off;

        switch (Mathf.RoundToInt(target.GetFloat("_ShadowsCulling")))
        {
        case 0:
            shadowCulling = ShadowsCUlling.Back;
            break;

        case 1:
            shadowCulling = ShadowsCUlling.Front;
            break;
        }
        EditorGUI.BeginChangeCheck();
        shadowCulling = ( ShadowsCUlling )EditorGUILayout.EnumPopup(
            MakeLabel("ShadowCulling"), shadowCulling
            );
        if (EditorGUI.EndChangeCheck())
        {
            RecordAction("ShadowCulling");
            foreach (Material m in editor.targets)
            {
                if (shadowCulling == ShadowsCUlling.Back)
                {
                    m.SetInt("_ShadowsCulling", 0);
                }
                else if (shadowCulling == ShadowsCUlling.Front)
                {
                    m.SetInt("_ShadowsCulling", 1);
                }
                else
                {
                    m.SetInt("_ShadowsCulling", 2);
                }
            }
        }

        RenderingMode mode = RenderingMode.Opaque;

        shouldShowAlphaCutoff = false;
        if (IsKeywordEnabled("_RENDERING_CUTOUT"))
        {
            shouldShowAlphaCutoff = true;
            mode = RenderingMode.Cutout;
        }
        else if (IsKeywordEnabled("_RENDERING_FADE"))
        {
            mode = RenderingMode.Fade;
        }
        else if (IsKeywordEnabled("_RENDERING_TRANSPARENT"))
        {
            mode = RenderingMode.Transparent;
        }

        EditorGUI.BeginChangeCheck();
        mode = ( RenderingMode )EditorGUILayout.EnumPopup(
            MakeLabel("Rendering Mode"), mode
            );
        if (EditorGUI.EndChangeCheck())
        {
            RecordAction("Rendering Mode");
            SetKeyword("_RENDERING_CUTOUT", mode == RenderingMode.Cutout);
            SetKeyword("_RENDERING_FADE", mode == RenderingMode.Fade);
            SetKeyword(
                "_RENDERING_TRANSPARENT", mode == RenderingMode.Transparent
                );

            RenderingSettings settings = RenderingSettings.modes[( int )mode];
            foreach (Material m in editor.targets)
            {
                m.renderQueue = ( int )settings.queue;
                m.SetOverrideTag("RenderType", settings.renderType);
                m.SetInt("_SrcBlend", ( int )settings.srcBlend);
                m.SetInt("_DstBlend", ( int )settings.dstBlend);
                m.SetInt("_ZWrite", settings.zWrite ? 1 : 0);
            }
        }
    }
Example #22
0
 public override string Run(Item item, RenderingSettings renderingSettings)
 {
     var a = renderingSettings.Parameters;
     return "hh";
 }
Example #23
0
        private unsafe IntPtr CreateRenderingContext(IntPtr dc, IntPtr shareContextHandle, RenderingSettings settings)
        {
            var pixelformatdescriptor = new PIXELFORMATDESCRIPTOR {
                nSize = (ushort)sizeof(PIXELFORMATDESCRIPTOR)
            };
            int pixelFormat = 0;

            if (choosePixelFormat == null)
            {
                pixelformatdescriptor.nVersion = 1;
                pixelformatdescriptor.dwFlags  = PFD_DOUBLEBUFFER | PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL;
                if (settings.Stereo)
                {
                    pixelformatdescriptor.dwFlags |= PFD_STEREO;
                }
                pixelformatdescriptor.cColorBits   = (byte)settings.ColorBits;
                pixelformatdescriptor.cAlphaBits   = (byte)settings.AlphaBits;
                pixelformatdescriptor.cAccumBits   = (byte)settings.AccumBits;
                pixelformatdescriptor.cDepthBits   = (byte)settings.DepthBits;
                pixelformatdescriptor.cStencilBits = (byte)settings.StencilBits;
                pixelformatdescriptor.cAuxBuffers  = (byte)settings.AuxBuffers;
                pixelformatdescriptor.iLayerType   = PFD_MAIN_PLANE;

                pixelFormat = ChoosePixelFormat(dc, ref pixelformatdescriptor);
                if (pixelFormat == 0)
                {
                    throw new Win32Exception(Marshal.GetLastWin32Error());
                }
            }
            else
            {
                var attributeList = stackalloc int[32];
                int i             = 0;
                attributeList[i++] = WGL_SUPPORT_OPENGL_ARB;
                attributeList[i++] = 1;
                attributeList[i++] = WGL_DRAW_TO_WINDOW_ARB;
                attributeList[i++] = 1;
                attributeList[i++] = WGL_DOUBLE_BUFFER_ARB;
                attributeList[i++] = 1;
                attributeList[i++] = WGL_ACCELERATION_ARB;
                attributeList[i++] = WGL_FULL_ACCELERATION_ARB;
                attributeList[i++] = WGL_PIXEL_TYPE_ARB;
                attributeList[i++] = WGL_TYPE_RGBA_ARB;
                attributeList[i++] = WGL_COLOR_BITS_ARB;
                attributeList[i++] = settings.ColorBits;
                attributeList[i++] = WGL_ALPHA_BITS_ARB;
                attributeList[i++] = settings.AlphaBits;
                attributeList[i++] = WGL_DEPTH_BITS_ARB;
                attributeList[i++] = settings.DepthBits;
                attributeList[i++] = WGL_STENCIL_BITS_ARB;
                attributeList[i++] = settings.StencilBits;
                attributeList[i++] = WGL_ACCUM_BITS_ARB;
                attributeList[i++] = settings.AccumBits;
                attributeList[i++] = WGL_AUX_BUFFERS_ARB;
                attributeList[i++] = settings.AuxBuffers;
                if (settings.Stereo)
                {
                    attributeList[i++] = WGL_STEREO_ARB;
                    attributeList[i++] = 1;
                }
                if (multisample && settings.Samples > 0)
                {
                    attributeList[i++] = WGL_SAMPLES_ARB;
                    attributeList[i++] = settings.Samples;
                }

                uint nPixelFormats;
                if (choosePixelFormat(dc, attributeList, null, 1, &pixelFormat, &nPixelFormats) == 0)
                {
                    throw new Win32Exception(Marshal.GetLastWin32Error());
                }
                if (DescribePixelFormat(dc, pixelFormat, (uint)sizeof(PIXELFORMATDESCRIPTOR), ref pixelformatdescriptor) == 0)
                {
                    throw new Win32Exception(Marshal.GetLastWin32Error());
                }
            }
            if (SetPixelFormat(dc, pixelFormat, ref pixelformatdescriptor) == 0)
            {
                throw new Win32Exception(Marshal.GetLastWin32Error());
            }
            IntPtr result;

            if (createContextAttribs == null)
            {
                if (shareContextHandle != IntPtr.Zero)
                {
                    throw new InvalidOperationException(Resources.GetMessage(Resources.Key.RenderingContextSharingNotSupported));
                }
                result = wglCreateContext(dc);
            }
            else
            {
                var attributeList = stackalloc int[16];
                result = createContextAttribs(dc, shareContextHandle, attributeList);
            }
            if (result == IntPtr.Zero)
            {
                throw new Win32Exception(Marshal.GetLastWin32Error());
            }
            return(result);
        }
 public bool TryGetScreenClearColor(ref Color color)
 {
     return(MaterialSettings.TryGetScreenClearColor(ref color) ||
            RenderingSettings.TryGetScreenClearColor(ref color) ||
            LightingSettings.TryGetScreenClearColor(ref color));
 }
Example #25
0
    public override void OnGUI(MaterialEditor editor, MaterialProperty[] properties)
    {
        this.target     = editor.target as Material;
        this.editor     = editor;
        this.properties = properties;

        RenderingMode renderingMode = RenderingMode.Opaque;

        if (IsKeywordEnabled("_RENDERING_CUTOUT"))
        {
            renderingMode = RenderingMode.Cutout;
        }
        else if (IsKeywordEnabled("_RENDERING_FADE"))
        {
            renderingMode = RenderingMode.Fade;
        }
        else if (IsKeywordEnabled("_RENDERING_TRANSPARENT"))
        {
            renderingMode = RenderingMode.Transparent;
        }

        EditorGUI.BeginChangeCheck();
        renderingMode = (RenderingMode)EditorGUILayout.EnumPopup("Rendering Mode", renderingMode);
        if (EditorGUI.EndChangeCheck())
        {
            editor.RegisterPropertyChangeUndo("Rendering Mode");
            SetKeyword("_RENDERING_CUTOUT", renderingMode == RenderingMode.Cutout);
            SetKeyword("_RENDERING_FADE", renderingMode == RenderingMode.Fade);
            SetKeyword("_RENDERING_TRANSPARENT", renderingMode == RenderingMode.Transparent);
            RenderingSettings settings = RenderingSettings.modes[(int)renderingMode];
            foreach (Material m in editor.targets)
            {
                m.renderQueue = (int)settings.queue;
                m.SetOverrideTag("RenderType", settings.renderType);
                m.SetInt("_SrcBlend", (int)settings.srcBlend);
                m.SetInt("_DstBlend", (int)settings.dstBlend);
                m.SetInt("_ZWrite", settings.zWrite ? 1 : 0);
            }
        }


        // wireframe render
        if (target.HasProperty("_WireframeColor"))
        {
            GUILayout.Label("Wireframe", EditorStyles.boldLabel);
            EditorGUI.indentLevel += 2;
            editor.ShaderProperty(FindProperty("_WireframeColor"), MakeLabel("Color"));
            editor.ShaderProperty(FindProperty("_WireframeSmoothing"), MakeLabel("Smoothing", "In screen space."));
            editor.ShaderProperty(FindProperty("_WireframeThickness"), MakeLabel("Thickness", "In screen space.")
                                  );
            EditorGUI.indentLevel -= 2;
        }

        // Main Maps
        GUILayout.Label("Main Maps", EditorStyles.boldLabel);
        MaterialProperty mainTex = FindProperty("_MainTex");

        editor.TexturePropertySingleLine(MakeLabel(mainTex, "Albedo (RGB)"), mainTex, FindProperty("_Color"));

        // cutout
        if (renderingMode == RenderingMode.Cutout)
        {
            MaterialProperty alphatCutoff = FindProperty("_Cutoff");
            EditorGUI.indentLevel += 2;
            editor.ShaderProperty(alphatCutoff, MakeLabel(alphatCutoff));
            EditorGUI.indentLevel -= 2;
        }

        // metallic
        MaterialProperty metallic = FindProperty("_MetallicMap");

        EditorGUI.BeginChangeCheck();
        editor.TexturePropertySingleLine(MakeLabel(metallic, "Metallic (R)"), metallic, metallic.textureValue ? null : FindProperty("_Metallic"));
        if (EditorGUI.EndChangeCheck())
        {
            SetKeyword("_METALLIC_MAP", metallic.textureValue);
        }

        // smothnes
        SmoothnessSource source = SmoothnessSource.Uniform;

        if (IsKeywordEnabled("_SMOOTHNESS_ALBEDO"))
        {
            source = SmoothnessSource.Albedo;
        }
        else if (IsKeywordEnabled("_SMOOTHNESS_METALLIC"))
        {
            source = SmoothnessSource.Metallic;
        }
        MaterialProperty smoothness = FindProperty("_Smoothness");

        EditorGUI.indentLevel += 2;
        editor.ShaderProperty(smoothness, MakeLabel(smoothness));
        EditorGUI.BeginChangeCheck();
        source = (SmoothnessSource)EditorGUILayout.EnumPopup("Source", source);
        if (EditorGUI.EndChangeCheck())
        {
            editor.RegisterPropertyChangeUndo("Smoothness Source");
            SetKeyword("_SMOOTHNESS_ALBEDO", source == SmoothnessSource.Albedo);
            SetKeyword("_SMOOTHNESS_METALLIC", source == SmoothnessSource.Metallic);
        }
        EditorGUI.indentLevel -= 2;

        // normal
        MaterialProperty normal = FindProperty("_NormalMap");

        EditorGUI.BeginChangeCheck();
        editor.TexturePropertySingleLine(MakeLabel(normal), normal, FindProperty("_BumpScale"));
        if (EditorGUI.EndChangeCheck())
        {
            SetKeyword("_NORMAL_MAP", normal.textureValue);
        }

        // emission
        MaterialProperty emission = FindProperty("_EmissionMap");

        EditorGUI.BeginChangeCheck();
        editor.TexturePropertyWithHDRColor(
            MakeLabel(emission, "Emission (RGB)"), emission, FindProperty("_Emission"),
            emissionConfig, false
            );
        editor.LightmapEmissionProperty(2);
        if (EditorGUI.EndChangeCheck())
        {
            SetKeyword("_EMISSION_MAP", emission.textureValue);
            foreach (Material m in editor.targets)
            {
                m.globalIlluminationFlags &= ~MaterialGlobalIlluminationFlags.EmissiveIsBlack;
            }
        }

        // occlusion
        MaterialProperty occlusion = FindProperty("_OcclusionMap");

        EditorGUI.BeginChangeCheck();
        editor.TexturePropertySingleLine(
            MakeLabel(occlusion, "Occlusion (G)"), occlusion,
            occlusion.textureValue ? FindProperty("_OcclusionStrength") : null
            );
        if (EditorGUI.EndChangeCheck())
        {
            SetKeyword("_OCCLUSION_MAP", occlusion.textureValue);
        }

        // detail mask
        MaterialProperty detailmask = FindProperty("_DetailMask");

        EditorGUI.BeginChangeCheck();
        editor.TexturePropertySingleLine(
            MakeLabel(detailmask, "Detail Mask (A)"), detailmask
            );
        if (EditorGUI.EndChangeCheck())
        {
            SetKeyword("_DETAIL_MASK", detailmask.textureValue);
        }

        editor.TextureScaleOffsetProperty(mainTex);

        // Second Maps
        GUILayout.Label("Secondary Maps", EditorStyles.boldLabel);

        MaterialProperty detailTex = FindProperty("_DetailTex");

        EditorGUI.BeginChangeCheck();
        editor.TexturePropertySingleLine(
            MakeLabel(detailTex, "Albedo (RGB) multiplied by 2"), detailTex
            );
        if (EditorGUI.EndChangeCheck())
        {
            SetKeyword("_DETAIL_ALBEDO_MAP", detailTex.textureValue);
        }

        MaterialProperty detailNormal = FindProperty("_DetailNormalMap");

        EditorGUI.BeginChangeCheck();
        editor.TexturePropertySingleLine(
            MakeLabel(detailNormal), detailNormal, FindProperty("_DetailBumpScale")
            );
        if (EditorGUI.EndChangeCheck())
        {
            SetKeyword("_DETAIL_NORMAL_MAP", detailNormal.textureValue);
        }

        editor.TextureScaleOffsetProperty(detailTex);

        // Advanced
        GUILayout.Label("Advanced Options", EditorStyles.boldLabel);
        editor.EnableInstancingField();
    }
Example #26
0
    public override void OnGUI(MaterialEditor editor, MaterialProperty[] properties)
    {
        this.target     = editor.target as Material;
        this.editor     = editor;
        this.properties = properties;

        MaterialProperty _MainTex      = FindProperty("_MainTex");
        MaterialProperty _AlphaCutoff  = FindProperty("_AlphaCutoff");
        MaterialProperty _Transparency = FindProperty("_Transparency");
        MaterialProperty _N64          = FindProperty("_N64");

        MaterialProperty _GammaToLinear     = FindProperty("_GammaToLinear");
        MaterialProperty _IgnoreVertexColor = FindProperty("_IgnoreVertexColor");

        MaterialProperty _Spec      = FindProperty("_Spec");
        MaterialProperty _SpecColor = FindProperty("_SpecColor");
        MaterialProperty _Shininess = FindProperty("_Shininess");

        MaterialProperty _Emission    = FindProperty("_Emission");
        MaterialProperty _EmissionTex = FindProperty("_EmissionTex");

        MaterialProperty _Overlay      = FindProperty("_Overlay");
        MaterialProperty _UV           = FindProperty("_UV");
        MaterialProperty _WorldPos     = FindProperty("_WorldPos");
        MaterialProperty _Blend        = FindProperty("_Blend");
        MaterialProperty _OverlayTex   = FindProperty("_OverlayTex");
        MaterialProperty _ScrollSpeedX = FindProperty("_ScrollSpeedX");
        MaterialProperty _ScrollSpeedY = FindProperty("_ScrollSpeedY");

        MaterialProperty _SelfIllum = FindProperty("_SelfIllum");

        // rendering mode
        RenderingMode mode = RenderingMode.Opaque;

        if (target.IsKeywordEnabled("_RENDERING_CUTOUT"))
        {
            mode = RenderingMode.Cutout;
        }
        else if (target.IsKeywordEnabled("_RENDERING_FADE"))
        {
            mode = RenderingMode.Fade;
        }
        else if (target.IsKeywordEnabled("_RENDERING_TRANSPARENT"))
        {
            mode = RenderingMode.Transparent;
        }

        EditorGUI.BeginChangeCheck();
        mode = (RenderingMode)EditorGUILayout.EnumPopup(MakeLabel("Rendering Mode"), mode);
        if (EditorGUI.EndChangeCheck())
        {
            editor.RegisterPropertyChangeUndo("Rendering Mode");

            if (mode == RenderingMode.Cutout)
            {
                target.EnableKeyword("_RENDERING_CUTOUT");
            }
            else
            {
                target.DisableKeyword("_RENDERING_CUTOUT");
            }
            if (mode == RenderingMode.Fade)
            {
                target.EnableKeyword("_RENDERING_FADE");
            }
            else
            {
                target.DisableKeyword("_RENDERING_FADE");
            }
            if (mode == RenderingMode.Transparent)
            {
                target.EnableKeyword("_RENDERING_TRANSPARENT");
            }
            else
            {
                target.DisableKeyword("_RENDERING_TRANSPARENT");
            }

            RenderingSettings settings = RenderingSettings.modes[(int)mode];

            foreach (Material m in editor.targets)
            {
                m.renderQueue = (int)settings.queue;
                m.SetOverrideTag("RenderType", settings.renderType);
                m.SetInt("_SrcBlend", (int)settings.srcBlend);
                m.SetInt("_DstBlend", (int)settings.dstBlend);
                m.SetInt("_ZWrite", settings.zWrite ? 1 : 0);
            }
        }

        // diffuse texture + tint
        GUILayout.Label("Main Texture", EditorStyles.boldLabel);

        editor.TexturePropertySingleLine(MakeLabel(_MainTex, "Diffuse (RGBA)"), _MainTex, FindProperty("_Tint"));
        if (target.IsKeywordEnabled("_RENDERING_CUTOUT"))
        {
            editor.ShaderProperty(_AlphaCutoff, MakeLabel(_AlphaCutoff));
        }
        else if (target.IsKeywordEnabled("_RENDERING_FADE") || target.IsKeywordEnabled("_RENDERING_TRANSPARENT"))
        {
            editor.ShaderProperty(_Transparency, MakeLabel(_Transparency));
        }
        editor.ShaderProperty(_N64, MakeLabel(_N64));
        editor.TextureScaleOffsetProperty(_MainTex);


        // vertex color options
        editor.ShaderProperty(_GammaToLinear, MakeLabel(_GammaToLinear));
        editor.ShaderProperty(_IgnoreVertexColor, MakeLabel(_IgnoreVertexColor));

        // specular
        editor.ShaderProperty(_Spec, MakeLabel(_Spec));
        if (_Spec.floatValue == 1)
        {
            editor.ShaderProperty(_SpecColor, MakeLabel(_SpecColor));
            editor.ShaderProperty(_Shininess, MakeLabel(_Shininess));
        }

        // emission
        editor.ShaderProperty(_Emission, MakeLabel(_Emission));
        if (_Emission.floatValue == 1)
        {
            editor.TexturePropertySingleLine(MakeLabel(_EmissionTex, "Emission (RGB)"), _EmissionTex, FindProperty("_EmissionColor"));
            editor.TextureScaleOffsetProperty(_EmissionTex);
        }

        // overlay texture
        editor.ShaderProperty(_Overlay, MakeLabel(_Overlay));
        if (_Overlay.floatValue != 0)
        {
            editor.TexturePropertySingleLine(MakeLabel(_OverlayTex, "Overlay Texture (RGB)"), _OverlayTex, FindProperty("_OverlayColor"));
            editor.ShaderProperty(_Blend, MakeLabel(_Blend));
            EditorGUI.indentLevel += 2;
            editor.ShaderProperty(_UV, MakeLabel(_UV));

            if (_UV.floatValue > 2)
            {
                editor.ShaderProperty(_WorldPos, MakeLabel(_WorldPos));
            }

            editor.TextureScaleOffsetProperty(_OverlayTex);

            editor.ShaderProperty(_ScrollSpeedX, MakeLabel(_ScrollSpeedX));
            editor.ShaderProperty(_ScrollSpeedY, MakeLabel(_ScrollSpeedY));

            EditorGUI.indentLevel -= 2;
        }

        // lighting
        editor.ShaderProperty(_SelfIllum, MakeLabel(_SelfIllum));

        // other
        GUILayout.Label("Other", EditorStyles.boldLabel);

        EditorGUI.BeginChangeCheck();
        _Cull = (bool)EditorGUILayout.Toggle("Backface Culling", _Cull);
        if (EditorGUI.EndChangeCheck())
        {
            editor.RegisterPropertyChangeUndo("Backface Culling");

            foreach (Material m in editor.targets)
            {
                m.SetInt("_Cull", _Cull ? (int)CullMode.Back : (int)CullMode.Off);
            }
        }
    }
 /// <summary>
 /// Return the string that will be added to the index
 /// </summary>
 /// <param name="item"></param>
 /// <param name="renderingSettings"></param>
 /// <returns></returns>
 public abstract string Run(Item item, RenderingSettings renderingSettings);
Example #28
0
        /// <inheritdoc/>
        protected override void PrepareContext(float overridefov = -1f)
        {
            base.PrepareContext(overridefov);

            // Init assets
            if (Context.InitializeDatabase)
            {
                databaseFileProvider = InitializeAssetDatabase();
                ((DatabaseFileProviderService)Services.GetService <IDatabaseFileProviderService>()).FileProvider = databaseFileProvider;

                var renderingSettings = new RenderingSettings();
                if (Content.Exists(GameSettings.AssetUrl))
                {
                    Settings = Content.Load <GameSettings>(GameSettings.AssetUrl);

                    renderingSettings = Settings.Configurations.Get <RenderingSettings>();

                    // Set ShaderProfile even if AutoLoadDefaultSettings is false (because that is what shaders in effect logs are compiled against, even if actual instantiated profile is different)
                    if (renderingSettings.DefaultGraphicsProfile > 0)
                    {
                        var deviceManager = (GraphicsDeviceManager)graphicsDeviceManager;
                        if (!deviceManager.ShaderProfile.HasValue)
                        {
                            deviceManager.ShaderProfile = renderingSettings.DefaultGraphicsProfile;
                        }
                    }

                    Services.AddService <IGameSettingsService>(this);
                }

                // Load several default settings
                if (AutoLoadDefaultSettings)
                {
                    var deviceManager = (GraphicsDeviceManager)graphicsDeviceManager;
                    if (renderingSettings.DefaultGraphicsProfile > 0)
                    {
                        deviceManager.PreferredGraphicsProfile = new[] { renderingSettings.DefaultGraphicsProfile };
                    }

                    deviceManager.PreferredColorSpace         = renderingSettings.ColorSpace;
                    renderingSettings.DefaultBackBufferWidth  = deviceManager.preferredBackBufferWidth;
                    renderingSettings.DefaultBackBufferHeight = deviceManager.PreferredBackBufferHeight;
                    SceneSystem.InitialSceneUrl = Settings?.DefaultSceneUrl;
                    SceneSystem.OverrideFOV     = overridefov;
                    SceneSystem.InitialGraphicsCompositorUrl = Settings?.DefaultGraphicsCompositorUrl;
                    SceneSystem.SplashScreenUrl        = Settings?.SplashScreenUrl;
                    SceneSystem.SplashScreenColor      = Settings?.SplashScreenColor ?? Color4.Black;
                    SceneSystem.DoubleViewSplashScreen = Settings?.DoubleViewSplashScreen ?? false;
                }

                // apply rendersettings
                Xenko.Graphics.Buffer.CaptureIndexBuffersOfSize  = renderingSettings.CaptureIndexBufferOfSize;
                Xenko.Graphics.Buffer.CaptureVertexBuffersOfSize = renderingSettings.CaptureVertexBufferOfSize;
                Xenko.Graphics.Buffer.UploadBufferSizeInMB       = renderingSettings.UploadBufferSizeInMB;
                Xenko.Graphics.Buffer.SmallPooledBufferSize      = (ulong)renderingSettings.SmallPooledBufferSize;
                Xenko.Graphics.Buffer.SmallPooledBufferCount     = (ulong)renderingSettings.SmallPooledBufferCount;
                Xenko.Graphics.Buffer.LargePooledBufferSize      = (ulong)renderingSettings.LargePooledBufferSize;
                Xenko.Graphics.Buffer.LargePooledBufferCount     = (ulong)renderingSettings.LargedPooledBufferCount;
                VisibilityGroup.CullSmallFactor        = renderingSettings.SmallCullFactor;
                VisibilityGroup.CullShadowsSmallFactor = renderingSettings.SmallShadowCullFactor;

                ModelComponent.DefaultShadowCasters = renderingSettings.DefaultShadowCasters;

                // enable error file logging?
                if (renderingSettings.DisableErrorFileLog == false)
                {
                    ErrorFileLogger.EnableGlobalExceptionLogger();
                }
                else
                {
                    // should already be disabled, but we'll make sure
                    ErrorFileLogger.Disable();
                }
            }
        }
        public PartitionResult CreateFuzzyPartitionWithFixedCenters(PartitionSettings partitionSettings, RenderingSettings renderingSettings)
        {
            _partitionFixedCentersComputer.Init(partitionSettings);

            var muRenderTexture = _partitionFixedCentersComputer.Run(out var psiGridTexture);

            var result = new PartitionResult
            {
                TargetFunctionalValue = CalculateTargetFunctionalValue(partitionSettings, muRenderTexture),
                DualFunctionalValue   = CalculateDualFunctionalValue(partitionSettings, psiGridTexture),
                WorkFinished          = true
            };

            _partitionImageShower.RenderingSettings = renderingSettings;
            _partitionImageShower.CreatePartitionAndShow(partitionSettings, muRenderTexture);

            return(result);
        }
 internal RenderingSettingsForm(RenderingSettings settings)
 {
     InitializeComponent();
     _settings = settings;
     SettingsGrid.SelectedObject = _settings;
 }
Example #31
0
        public static GraphicsPlatform GetGraphicsPlatform(this AssetCompilerContext context, Package package)
        {
            var settings = package.GetGameSettingsAsset();

            return(settings == null?context.Platform.GetDefaultGraphicsPlatform() : RenderingSettings.GetGraphicsPlatform(context.Platform, settings.Get <RenderingSettings>(context.Profile).PreferredGraphicsPlatform));
        }
 public void RedrawPartitionWithSettings(RenderingSettings renderingSettings)
 {
     _partitionImageShower.RenderingSettings = renderingSettings;
     _partitionImageShower.CreatePartitionAndShow();
 }
		static frmMain()
		{
			frmMain.markBrush = new SolidBrush(Color.FromArgb(100, Color.Yellow));
			frmMain.renderingSettings = new RenderingSettings();
		}
Example #34
0
 public PrefabModelAssetCompileCommand(string url, PrefabModelAsset parameters, AssetItem assetItem, RenderingSettings renderingSettings)
     : base(url, parameters, assetItem.Package)
 {
     this.renderingSettings = renderingSettings;
 }
Example #35
0
        /// <summary>
        /// Invalidates this instance.
        /// </summary>
        public void Invalidate()
        {
            if (this.rendered)
            {
                return;
            }
            this.rendered = true;

            this.OnPropertyChanged("Width");
            this.OnPropertyChanged("Height");
            this.OnPropertyChanged("ImageSource");

            int desiredWidth  = Width;
            int desiredHeight = Height;

            if (this.tokenSource != null)
            {
                this.tokenSource.Cancel();
            }
            this.tokenSource = new CancellationTokenSource();
            this.tokenSource.Token.ThrowIfCancellationRequested();
            Dispatcher dispatcher = Dispatcher.CurrentDispatcher;

            this.image = new byte[desiredWidth * desiredHeight * 4];

            RenderingSettings renderingSettings = new RenderingSettings();

            renderingSettings.DrawText       = this.DrawText;
            renderingSettings.DrawImages     = this.DrawImages;
            renderingSettings.DrawPaths      = this.DrawPaths;
            renderingSettings.DrawAnotations = this.DrawAnnotations;
            renderingSettings.AnnotationRenderingSettings          = new RenderingSettings();
            renderingSettings.AnnotationRenderingSettings.DrawText = this.DrawAnnotationsText;
            // Uncomment to not draw annotations
            // renderingSettings.DrawAnotations = false;

            Task renderingTask = new Task(() => this.page.RenderAsBytes(desiredWidth, desiredHeight, this.image, renderingSettings));

            this.task = Task.Factory.StartNew(
                () =>
            {
                renderingTask.Start();
                while (!(renderingTask.IsCompleted || renderingTask.IsCanceled || renderingTask.IsFaulted))
                {
                    if (tokenSource.IsCancellationRequested)
                    {
                        renderingSettings.CancelRendering();
                        this.rendered    = false;
                        this.task        = null;
                        this.source      = null;
                        this.tokenSource = null;
                        this.image       = null;
                        break;
                    }
                    renderingTask.Wait(1000);
                    dispatcher.Invoke(DispatcherPriority.DataBind, new Action(() =>
                    {
                        source = BitmapSource.Create(this.Width, this.Height, 72, 72, PixelFormats.Bgra32, null,
                                                     image, 4 * this.Width);
                        this.OnPropertyChanged("ImageSource");
                    }));
                }
                this.image = null;
                dispatcher.Invoke(DispatcherPriority.Background, new Action(() =>
                {
                    if (this.source != null)
                    {
                        this.source.Freeze();
                    }
                }));
                GC.Collect();
            }, this.tokenSource.Token);
        }