Exemplo n.º 1
0
        private void OnGUI()
        {
            shader = EditorGUILayout.ObjectField(shader, typeof(Shader), true) as Shader;

            if (GUILayout.Button("Compile And Analyze"))
            {
                var compiled = CompileShaderUtil.GetCompileShaderText(shader);
                var parser   = new CompiledShaderParser(compiled);

                ShaderDbUtil.Create(shader, parser);
            }

            if (GUILayout.Button("DebugKeyword"))
            {
                var keywords = MaliocPluginUtility.GetShaderCurrentKeyword(shader);

                res = "Keyword:";
                foreach (var keyword in keywords)
                {
                    res += keyword + "\n";
                }
            }
            if (!string.IsNullOrEmpty(res))
            {
                EditorGUILayout.TextArea(res);
            }
        }
Exemplo n.º 2
0
        private AnalyzedShaderInfo CreateAnalyzedInfo(Shader shader)
        {
            AnalyzedShaderInfo info = null;
            var compiled            = CompileShaderUtil.GetCompileShaderText(shader);
            var parser = new CompiledShaderParser(compiled);

            info = ShaderDbUtil.Create(shader, parser);
            if (info != null)
            {
                this.shaderInfos[shader] = info;
            }
            return(info);
        }
Exemplo n.º 3
0
        private AnalyzedShaderInfo GetAnalyzedShaderInfo(Shader shader)
        {
            AnalyzedShaderInfo info = null;

            if (this.shaderInfos == null)
            {
                this.shaderInfos = new Dictionary <Shader, AnalyzedShaderInfo>();
            }
            if (this.shaderInfos.TryGetValue(shader, out info))
            {
                return(info);
            }
            info = ShaderDbUtil.LoadShaderData(shader);
            if (info != null)
            {
                this.shaderInfos[shader] = info;
            }
            return(info);
        }
        private void OnClickAnalyzeBtn()
        {
            if (mat == null || mat.shader == null)
            {
                return;
            }
            var data = ShaderDbUtil.LoadShaderData(mat.shader);

            if (data == null)
            {
                var compiled = CompileShaderUtil.GetCompileShaderText(mat.shader);
                var parser   = new CompiledShaderParser(compiled);
                data = ShaderDbUtil.Create(mat.shader, parser);
            }
            if (data != null)
            {
                SetResult(data);
            }
        }