public static ShaderProgramFilter Parse(string shaderPassFilter, string keywordFilter) { var result = new ShaderProgramFilter(); bool include = false, exclude = false; var passNames = Array.Empty <string>(); if (!string.IsNullOrEmpty(shaderPassFilter) && shaderPassFilter.Length > 0) { include = shaderPassFilter[0] == '+'; exclude = shaderPassFilter[0] == '-'; passNames = shaderPassFilter.Substring(1).Split(','); } result.includedPassNames = new PassNameSet(include ? passNames : Enumerable.Empty <string>()); result.excludedPassNames = new PassNameSet(exclude ? passNames : Enumerable.Empty <string>()); if (!string.IsNullOrEmpty(keywordFilter)) { var ands = keywordFilter.Split('|'); foreach (var and in ands) { result.includedKeywords.Add(new KeywordSet(and.Split('&'))); } } return(result); }
protected ReportBuildData( DirectoryInfo temporaryDirectory, ProgressWrapper progress, ShaderProgramFilter filter) { this.temporaryDirectory = temporaryDirectory; this.progress = progress; this.filter = filter; }
protected ComputeShaderReportBuildData( ComputeShader compute, DirectoryInfo temporaryDirectory, ShaderProgramFilter filter, ProgressWrapper progress) : base(temporaryDirectory, progress, filter) { this.compute = compute; kernels = new List <Kernel>(); }
protected ShaderBuildData( Shader shader, DirectoryInfo temporaryDirectory, IEnumerable <string> shaderKeywords, ShaderProgramFilter filter, ProgressWrapper progress) : base(temporaryDirectory, progress, filter) { this.m_Shader = shader; this.m_ShaderKeywords = shaderKeywords != null ? new HashSet <string>(shaderKeywords) : new HashSet <string>(); passes = new List <Pass>(); }
public static ShaderAnalysisReport <TAsset> New <TAsset>( TAsset asset, BuildTarget currentPlatform, ShaderProgramFilter filter = null, BuildReportFeature features = (BuildReportFeature)(-1), bool logCommandLines = false ) => new ShaderAnalysisReport <TAsset> { asset = asset, common = new ShaderAnalysisReport { targetPlatform = currentPlatform, filter = filter, features = features, logCommandLines = logCommandLines } };