Cycles: Improve readability of dumped graphs
This commit is contained in:
@@ -844,29 +844,59 @@ void ShaderGraph::dump_graph(const char *filename)
|
|||||||
|
|
||||||
fprintf(fd, "digraph shader_graph {\n");
|
fprintf(fd, "digraph shader_graph {\n");
|
||||||
fprintf(fd, "ranksep=1.5\n");
|
fprintf(fd, "ranksep=1.5\n");
|
||||||
|
fprintf(fd, "rankdir=LR\n");
|
||||||
fprintf(fd, "splines=false\n");
|
fprintf(fd, "splines=false\n");
|
||||||
|
|
||||||
foreach(ShaderNode *node, nodes) {
|
foreach(ShaderNode *node, nodes) {
|
||||||
fprintf(fd, "// NODE: %p\n", node);
|
fprintf(fd, "// NODE: %p\n", node);
|
||||||
fprintf(fd,
|
fprintf(fd, "\"%p\" [shape=record,label=\"{", node);
|
||||||
"\"%p\" [shape=record,label=\"%s\"]\n",
|
if(node->inputs.size()) {
|
||||||
node,
|
fprintf(fd, "{");
|
||||||
node->name.c_str());
|
foreach(ShaderInput *socket, node->inputs) {
|
||||||
|
if(socket != node->inputs[0]) {
|
||||||
|
fprintf(fd, "|");
|
||||||
|
}
|
||||||
|
fprintf(fd, "<IN_%p>%s", socket, socket->name);
|
||||||
|
}
|
||||||
|
fprintf(fd, "}|");
|
||||||
|
}
|
||||||
|
fprintf(fd, "%s", node->name.c_str());
|
||||||
|
if(node->bump == SHADER_BUMP_CENTER) {
|
||||||
|
fprintf(fd, " (bump:center)");
|
||||||
|
}
|
||||||
|
else if(node->bump == SHADER_BUMP_DX) {
|
||||||
|
fprintf(fd, " (bump:dx)");
|
||||||
|
}
|
||||||
|
else if(node->bump == SHADER_BUMP_DY) {
|
||||||
|
fprintf(fd, " (bump:dy)");
|
||||||
|
}
|
||||||
|
if(node->outputs.size()) {
|
||||||
|
fprintf(fd, "|{");
|
||||||
|
foreach(ShaderOutput *socket, node->outputs) {
|
||||||
|
if(socket != node->outputs[0]) {
|
||||||
|
fprintf(fd, "|");
|
||||||
|
}
|
||||||
|
fprintf(fd, "<OUT_%p>%s", socket, socket->name);
|
||||||
|
}
|
||||||
|
fprintf(fd, "}");
|
||||||
|
}
|
||||||
|
fprintf(fd, "}\"]");
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach(ShaderNode *node, nodes) {
|
foreach(ShaderNode *node, nodes) {
|
||||||
foreach(ShaderOutput *output, node->outputs) {
|
foreach(ShaderOutput *output, node->outputs) {
|
||||||
foreach(ShaderInput *input, output->links) {
|
foreach(ShaderInput *input, output->links) {
|
||||||
fprintf(fd,
|
fprintf(fd,
|
||||||
"// CONNECTION: %p->%p (%s:%s)\n",
|
"// CONNECTION: OUT_%p->IN_%p (%s:%s)\n",
|
||||||
output,
|
output,
|
||||||
input,
|
input,
|
||||||
output->name, input->name);
|
output->name, input->name);
|
||||||
fprintf(fd,
|
fprintf(fd,
|
||||||
"\"%p\":s -> \"%p\":n [label=\"%s:%s\"]\n",
|
"\"\%p\":\"OUT_%p\":e -> \"%p\":\"IN_%p\":w [label=\"\"]\n",
|
||||||
output->parent,
|
output->parent,
|
||||||
|
output,
|
||||||
input->parent,
|
input->parent,
|
||||||
output->name, input->name);
|
input);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user