public StripShaderCompilerData(UnityEditor.Rendering.ShaderCompilerData shaderCompilerData, bool isStripped = false) { if (shaderKeywordSet == null) { shaderKeywordSet = new List <StripShaderKeyword>(); } UnityEngine.Rendering.ShaderKeyword[] keywordSet = shaderCompilerData.shaderKeywordSet.GetShaderKeywords(); for (int i = 0; i < keywordSet.Length; i++) { StripShaderKeyword shaderKeyword = new StripShaderKeyword(keywordSet[i]); shaderKeywordSet.Add(shaderKeyword); } Array array = Enum.GetValues(typeof(UnityEngine.Rendering.BuiltinShaderDefine)); foreach (UnityEngine.Rendering.BuiltinShaderDefine v in array) { if (shaderCompilerData.platformKeywordSet.IsEnabled(v)) { StripBuiltinShaderDefine newdefine = StripTypeConvert.ConvertUnityTypeToStripType(v); platformKeywordSet = platformKeywordSet | newdefine; } } shaderRequirements = shaderCompilerData.shaderRequirements; graphicsTier = shaderCompilerData.graphicsTier; shaderCompilerPlatform = shaderCompilerData.shaderCompilerPlatform; this.isStripped = isStripped; }
public bool IsEquip(UnityEditor.Rendering.ShaderCompilerData shaderCompilerData) { bool equip = true; equip = equip && shaderRequirements == shaderCompilerData.shaderRequirements; if (!equip) { return(equip); } equip = equip && graphicsTier == shaderCompilerData.graphicsTier; if (!equip) { return(equip); } equip = equip && shaderCompilerPlatform == shaderCompilerData.shaderCompilerPlatform; if (!equip) { return(equip); } if (equip) { return(equip); } return(false); }
public void AddShaderCompilerData(UnityEditor.Rendering.ShaderCompilerData shaderCompilerData, bool isStripped = false) { if (this.shaderVariants != null) { StripShaderCompilerData a = new StripShaderCompilerData(shaderCompilerData); a.isStripped = isStripped; this.shaderVariants.Add(a); } }
public StripShaderCompilerData GetStripShaderCompilerData(UnityEditor.Rendering.ShaderCompilerData shaderCompilerData) { if (this.shaderVariants != null) { int n = this.shaderVariants.Count; for (int i = 0; i < n; i++) { if (this.shaderVariants[i].IsEquip(shaderCompilerData)) { return(this.shaderVariants[i]); } } } return(null); }
public void AddCompileInfo(string shaderName, UnityEditor.Rendering.ShaderSnippetData snippet, UnityEditor.Rendering.ShaderCompilerData shaderVariant, bool isStripped = false) { if (infos == null) { infos = new List <ShaderCompileVariantInfo>(); } for (int i = 0; i < infos.Count; i++) { if (infos[i].shaderName == shaderName) { infos[i].AddSnippetComileDataTuple(snippet, shaderVariant, isStripped); return; } } ShaderCompileVariantInfo info = new ShaderCompileVariantInfo(shaderName); info.AddSnippetComileDataTuple(snippet, shaderVariant, isStripped); infos.Add(info); }
public void AddSnippetComileDataTuple(UnityEditor.Rendering.ShaderSnippetData snippet, UnityEditor.Rendering.ShaderCompilerData shaderVariant, bool isStripped = false) { SnippetComileDataTuple tuple = GetSnippetComileDataTuple(snippet); if (tuple != null) { tuple.AddShaderCompilerData(shaderVariant, isStripped); } else { tuple = new SnippetComileDataTuple(snippet, shaderVariant, isStripped); AddSnippetComileDataTuple(tuple); } }
public SnippetComileDataTuple(UnityEditor.Rendering.ShaderSnippetData snippet, UnityEditor.Rendering.ShaderCompilerData ashaderVariant, bool isStripped = false) { this.snippet = new StripShaderSnippetData(snippet); this.shaderVariants = new List <StripShaderCompilerData>(); this.shaderVariants.Add(new StripShaderCompilerData(ashaderVariant, isStripped)); }