Пример #1
0
        public List <REDEngineFeature> LoadREDFeatures()
        {
            List <REDEngineFeature> list  = new List <REDEngineFeature>();
            List <string>           lines = Properties.Resources.FeatureList.Split(
                new[] { "\r\n", "\r", "\n" },
                StringSplitOptions.None
                ).ToList();

            foreach (var line in lines)
            {
                try
                {
                    string[] fields = line.Split(';');
                    if (fields.Count() >= 3)
                    {
                        var feature = new REDEngineFeature
                        {
                            Enabled      = true,
                            GroupName    = fields[0],
                            FunctionName = fields[1],
                            Description  = fields[2]
                        };

                        list.Add(feature);
                    }
                }
                catch (Exception e)
                {
                    Debug.WriteLine("Something is wrong with a feature definition: " + e.ToString());
                }
            }

            return(list);
        }
Пример #2
0
        private void optimizedToolStripMenuItem_Click(object sender, EventArgs e)
        {
            int i = 0;

            foreach (var row in dataGridViewMain.Rows)
            {
                REDEngineFeature current = ((BindingList <REDEngineFeature>)dataGridViewMain.DataSource)[i];
                current.Enabled = true;

                if (current.FunctionName.Contains("Character"))
                {
                    current.Enabled = false;
                }
                if (current.FunctionName.Contains("DistantFog"))
                {
                    current.Enabled = false;
                }
                if (current.FunctionName.Contains("DistantGI"))
                {
                    current.Enabled = false;
                }
                if (current.FunctionName.Contains("DistantVolFog"))
                {
                    current.Enabled = false;
                }
                if (current.FunctionName.Contains("MotionBlur"))
                {
                    current.Enabled = false;
                }
                if (current.FunctionName.Contains("Runtime"))
                {
                    current.Enabled = false;
                }
                if (current.FunctionName.Contains("ScreenSpace"))
                {
                    current.Enabled = false;
                }
                if (current.FunctionName.Contains("VolumetricClouds"))
                {
                    current.Enabled = false;
                }
                if (current.FunctionName.Contains("VolumetricFog"))
                {
                    current.Enabled = false;
                }
                if (current.FunctionName.Contains("UseExperimentalVolFog"))
                {
                    current.Enabled = false;
                }
                i++;
            }
            disableAsyncComputeNVIDIAToolStripMenuItem_Click(null, null);
            dataGridViewMain.Refresh();
        }
Пример #3
0
        private void resetToolStripMenuItem_Click(object sender, EventArgs e)
        {
            int i = 0;

            foreach (var row in dataGridViewMain.Rows)
            {
                REDEngineFeature current = ((BindingList <REDEngineFeature>)dataGridViewMain.DataSource)[i];
                current.Enabled = true;
                i++;
            }
            dataGridViewMain.Refresh();
        }
Пример #4
0
        private void Form1_FormClosed(object sender, FormClosedEventArgs e)
        {
            IniData redConfigNew = new IniData();
            int     disableCount = 0;

            //datagrid to ini
            foreach (DataGridViewRow row in dataGridViewMain.Rows)
            {
                REDEngineFeature featureDef = ((BindingList <REDEngineFeature>)dataGridViewMain.DataSource)[row.Index];

                var kd = new KeyData(featureDef.FunctionName);
                kd.Value = featureDef.Enabled.ToString();

                if (featureDef.Enabled == false)
                {
                    disableCount++;
                }

                if (featureDef.Description != "")
                {
                    kd.Comments.Add(featureDef.Description);
                }

                if (featureDef.GroupName.Contains("Developer"))
                {
                    redConfigNew.Sections.AddSection(featureDef.GroupName);
                    redConfigNew[featureDef.GroupName].AddKey(kd);
                }

                if (featureDef.GroupName.Contains("Rendering"))
                {
                    redConfigNew.Sections.AddSection(featureDef.GroupName);
                    redConfigNew[featureDef.GroupName].AddKey(kd);
                }

                if (featureDef.GroupName.Contains("RayTracing"))
                {
                    redConfig.Sections.AddSection(featureDef.GroupName);
                    redConfig[featureDef.GroupName].AddKey(kd);
                }
            }

            //when everything is enabled, just clear the user.ini
            if (disableCount >= 1)
            {
                File.WriteAllText(path, redConfigNew.ToString());
            }
            else
            {
                File.Delete(path);
            }
        }
Пример #5
0
        private void lowToolStripMenuItem_Click(object sender, EventArgs e)
        {
            int i = 0;

            foreach (var row in dataGridViewMain.Rows)
            {
                REDEngineFeature current = ((BindingList <REDEngineFeature>)dataGridViewMain.DataSource)[i];
                current.Enabled = false;
                if (current.FunctionName.Contains("DistantShadows"))
                {
                    current.Enabled = true;
                }
                if (current.FunctionName.Contains("GlobalIllumination"))
                {
                    current.Enabled = true;
                }
                if (current.FunctionName.Contains("Hair"))
                {
                    current.Enabled = true;
                }
                if (current.FunctionName.Contains("RainMap"))
                {
                    current.Enabled = true;
                }
                if (current.FunctionName.Contains("Weather"))
                {
                    current.Enabled = true;
                }
                if (current.FunctionName.Contains("DynamicDecals"))
                {
                    current.Enabled = true;
                }
                if (current.FunctionName.Contains("UseSkinningLOD"))
                {
                    current.Enabled = true;
                }

                //more demanding options
                if (current.FunctionName.Contains("SSAO") && current.GroupName.Contains("Feature"))
                {
                    current.Enabled = true;
                }
                if (current.FunctionName.Contains("Antialiasing"))
                {
                    current.Enabled = true;
                }

                i++;
            }
            dataGridViewMain.Refresh();
        }
Пример #6
0
        private void disableAsyncComputeNVIDIAToolStripMenuItem_Click(object sender, EventArgs e)
        {
            int i = 0;

            foreach (var row in dataGridViewMain.Rows)
            {
                REDEngineFeature current = ((BindingList <REDEngineFeature>)dataGridViewMain.DataSource)[i];
                if (current.GroupName.Contains("Async"))
                {
                    current.Enabled = false;
                }
                i++;
            }
            dataGridViewMain.Refresh();
        }
Пример #7
0
        private void VeryLowToolStripMenuItem_Click(object sender, EventArgs e)
        {
            int i = 0;

            foreach (var row in dataGridViewMain.Rows)
            {
                REDEngineFeature current = ((BindingList <REDEngineFeature>)dataGridViewMain.DataSource)[i];

                current.Enabled = false;
                if (current.FunctionName.Contains("DistantShadows"))
                {
                    current.Enabled = true;
                }
                if (current.FunctionName.Contains("GlobalIllumination"))
                {
                    current.Enabled = true;
                }
                i++;
            }
            dataGridViewMain.Refresh();
        }
Пример #8
0
        private void InitializeFeatureList()
        {
            if (File.Exists(path))
            {
                //Load already generated INI
                redConfig = parser.ReadFile(path);
            }
            else
            {
                //Create base file with all features enabled
                redConfig = new IniData();
                var featureDefinitions = LoadREDFeatures();

                foreach (var featureDef in featureDefinitions)
                {
                    var kd = new KeyData(featureDef.FunctionName);
                    kd.Value = "true";
                    if (featureDef.Description != "")
                    {
                        kd.Comments.Add(featureDef.Description);
                    }

                    if (featureDef.GroupName.Contains("Developer"))
                    {
                        redConfig.Sections.AddSection(featureDef.GroupName);
                        redConfig[featureDef.GroupName].AddKey(kd);
                    }

                    if (featureDef.GroupName.Contains("Rendering"))
                    {
                        redConfig.Sections.AddSection(featureDef.GroupName);
                        redConfig[featureDef.GroupName].AddKey(kd);
                    }

                    if (featureDef.GroupName.Contains("RayTracing"))
                    {
                        redConfig.Sections.AddSection(featureDef.GroupName);
                        redConfig[featureDef.GroupName].AddKey(kd);
                    }
                }

                File.WriteAllText(path, redConfig.ToString());
            }

            featureList = new BindingList <REDEngineFeature>();

            //Initialize DataGrid
            foreach (var section in redConfig.Sections)
            {
                foreach (var featureSet in section.Keys)
                {
                    var featureTmp = new REDEngineFeature();
                    featureTmp.Enabled      = Convert.ToBoolean(featureSet.Value);
                    featureTmp.GroupName    = section.SectionName;
                    featureTmp.FunctionName = featureSet.KeyName;
                    if (featureSet.Comments.Count >= 1)
                    {
                        featureTmp.Description = featureSet.Comments[0];
                    }
                    featureList.Add(featureTmp);
                }
            }
        }