示例#1
0
        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);
        }
示例#2
0
        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);
        }
示例#3
0
        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);
        }