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); }
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(); }
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(); }
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); } }
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(); }
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(); }
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(); }
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); } } }