]> git.tdb.fi Git - libs/gl.git/commitdiff
Tweak debug output
authorMikko Rasa <tdb@tdb.fi>
Thu, 25 Feb 2021 19:16:54 +0000 (21:16 +0200)
committerMikko Rasa <tdb@tdb.fi>
Thu, 25 Feb 2021 20:23:51 +0000 (22:23 +0200)
source/glsl/debug.cpp

index b3eabd75de3c2aacab570ef6531b4ba4ce556fa5..018408c7a74d83b8974a7252061b40ab72695eb6 100644 (file)
@@ -10,8 +10,9 @@ namespace SL {
 
 const std::string &DumpTree::apply(Stage &stage)
 {
-       formatted = format("Stage %s\n", Stage::get_stage_name(stage.type));
+       formatted = format("Stage: %s\n", Stage::get_stage_name(stage.type));
        tree.push_back(BRANCH);
+       append(format("Version: %d.%02d", stage.required_features.glsl_version.major, stage.required_features.glsl_version.minor));
        last_branch();
        stage.content.visit(*this);
        return formatted;
@@ -79,13 +80,13 @@ void DumpTree::visit(Block &block)
        begin_sub();
 
        for(std::map<string, StructDeclaration *>::const_iterator i=block.types.begin(); i!=block.types.end(); ++i)
-               append(format("Type %%%d %s", get_label(*i->second), i->first));
+               append(format("Type: %%%d %s", get_label(*i->second), i->first));
 
        for(std::map<string, VariableDeclaration *>::const_iterator i=block.variables.begin(); i!=block.variables.end(); ++i)
-               append(format("Variable %%%d %s %s", get_label(*i->second), i->second->type, i->first));
+               append(format("Variable: %%%d %s %s", get_label(*i->second), i->second->type, i->first));
 
        for(std::set<InterfaceBlock *>::const_iterator i=block.interfaces.begin(); i!=block.interfaces.end(); ++i)
-               append(format("Interface %%%d %s %s", get_label(*i->second), i->second->interface, i->second->name));
+               append(format("Interface: %%%d %s %s", get_label(*i->second), i->second->interface, i->second->name));
 
        bool labeled_body = (!block.types.empty() || !block.variables.empty());
        if(labeled_body)
@@ -152,6 +153,10 @@ void DumpTree::visit(Assignment &assign)
 {
        append(format("Assignment: %s%s", assign.oper, (assign.self_referencing ? " (self-referencing)" : "")));
        begin_sub();
+       if(assign.target_declaration)
+       {
+               append(format("Target: %%%d %s %s", get_label(*assign.target_declaration), assign.target_declaration->type, assign.target_declaration->name));
+       }
        assign.left->visit(*this);
        last_branch();
        assign.right->visit(*this);
@@ -269,7 +274,7 @@ void DumpTree::visit(FunctionDeclaration &func)
        for(NodeArray<VariableDeclaration>::const_iterator i=func.parameters.begin(); i!=func.parameters.end(); ++i)
                (*i)->visit(*this);
        if(func.definition)
-               append(format("Definition %%%d", get_label(*func.definition)));
+               append(format("Definition: %%%d", get_label(*func.definition)));
        last_branch();
        func.body.visit(*this);
        end_sub();