public void GenerateProperyNameMap(string propertyNameMapFullname) { List <ShaderField> shaderFieldList = new List <ShaderField>(); foreach (var item in this.VertexShaderFieldList) { if (item.Qualider == FieldQualifier.In) { bool exists = false; foreach (var shaderField in shaderFieldList) { if (shaderField.FieldName == item.FieldName) { exists = true; } } if (!exists) { shaderFieldList.Add(item); } } } PropertyNameMap map = new PropertyNameMap(); foreach (var item in shaderFieldList) { map.Add(item.FieldName, item.FieldName); } map.ToXElement().Save(propertyNameMapFullname); }
public static PropertyNameMap Parse(XElement xElement) { if (xElement.Name != typeof(PropertyNameMap).Name) { throw new Exception(); } PropertyNameMap result = new PropertyNameMap(); foreach (var item in xElement.Elements(typeof(NamePair).Name)) { var pair = NamePair.Parse(item); result.namesInShader.Add(pair.VarNameInShader); result.namesInIBufferable.Add(pair.nameInIBufferable); } return(result); }
public void GenerateUinformNameMap(string uniformNameMapFullname) { List <ShaderField> shaderFieldList = new List <ShaderField>(); foreach (var item in this.VertexShaderFieldList) { if (item.Qualider == FieldQualifier.Uniform) { bool exists = false; foreach (var shaderField in shaderFieldList) { if (shaderField.FieldName == item.FieldName) { exists = true; } } if (!exists) { shaderFieldList.Add(item); } } } foreach (var item in this.GeometryShaderFieldList) { if (item.Qualider == FieldQualifier.Uniform) { bool exists = false; foreach (var shaderField in shaderFieldList) { if (shaderField.FieldName == item.FieldName) { exists = true; } } if (!exists) { shaderFieldList.Add(item); } } } foreach (var item in this.FragmentShaderFieldList) { if (item.Qualider == FieldQualifier.Uniform) { bool exists = false; foreach (var shaderField in shaderFieldList) { if (shaderField.FieldName == item.FieldName) { exists = true; } } if (!exists) { shaderFieldList.Add(item); } } } var map = new PropertyNameMap(); foreach (var item in shaderFieldList) { map.Add(item.FieldName, item.FieldName); } map.ToXElement().Save(uniformNameMapFullname); }