Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
 protected ReportBuildData(
     DirectoryInfo temporaryDirectory,
     ProgressWrapper progress,
     ShaderProgramFilter filter)
 {
     this.temporaryDirectory = temporaryDirectory;
     this.progress           = progress;
     this.filter             = filter;
 }
Ejemplo n.º 3
0
        protected ComputeShaderReportBuildData(
            ComputeShader compute,
            DirectoryInfo temporaryDirectory,
            ShaderProgramFilter filter,
            ProgressWrapper progress) : base(temporaryDirectory, progress, filter)
        {
            this.compute = compute;

            kernels = new List <Kernel>();
        }
Ejemplo n.º 4
0
        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>();
        }
Ejemplo n.º 5
0
 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
     }
 };