public static string Decompile(ShaderModel shaderModel, string entryPoint = null) { if (shaderModel.Type == ShaderType.Effect) { return(EffectHLSLWriter.Decompile(shaderModel.EffectChunk)); } var hlslWriter = new HlslWriter(shaderModel, false, entryPoint); return(hlslWriter.Decompile()); }
void WriteShader(string shaderName, ShaderModel shader) { WriteLine($"// {shaderName} {shader.Type}_{shader.MajorVersion}_{shader.MinorVersion} Has PRES {shader.Preshader != null}"); var funcName = shaderName; var text = ""; if (shader.Type == ShaderType.Expression) { text = ExpressionHLSLWriter.Decompile(shader, funcName); } else { text = HlslWriter.Decompile(shader, funcName); // text = text.Replace("main(", $"{funcName}("); } WriteLine(text); }