/** Appends a single stage to the matching stage of the target. */
void append_stage(const Stage &);
- /// Imports a module by name and appends it to the target. */
+ /** Imports a module by name and appends it to the target. */
void import(ModuleCache &, const std::string &);
/** Generates any implicitly defines syntactic structures and resolves
void visit(Passthrough &) override;
};
+/**
+Adds default global input and output layout qualifiers for stages which need
+them (currently tessellation evaluation).
+*/
class LayoutDefaulter: private TraversingVisitor
{
private:
const FunctionCall *init_call = var.init_expression.get_as<const FunctionCall>();
if((init_call && init_call->constructor) || !var.init_expression)
{
-
Aggregate &aggre = aggregates[&var];
aggre.declaration = &var;
aggre.decl_scope = current_block;
if(column_component_count==row_count)
{
/* The column has filled up. Create a vector constructor
- for it.*/
+ for it. */
unique_ptr<FunctionCall> column_call = make_unique<FunctionCall>();
column_call->name = basic->base_type->name;
column_call->constructor = true;
Node() = default;
Node(const Node &) = default;
-private:
- Node &operator=(const Node &);
-public:
+ Node &operator=(const Node &) = delete;
virtual ~Node() = default;
virtual Node *clone() const = 0;