X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fglsl%2Fgenerate.cpp;h=90128a18e1a7bbdfcaa023579c9665cac27c9a78;hb=2989fc60f0fd98282962a0105bcba055193e2f8c;hp=ac3a4b75e7f7f9d62aa3925f01be9d6eeb94f8c4;hpb=1d02efce746aa8b6e678a3bf56bfbbbe0aea6952;p=libs%2Fgl.git diff --git a/source/glsl/generate.cpp b/source/glsl/generate.cpp index ac3a4b75..90128a18 100644 --- a/source/glsl/generate.cpp +++ b/source/glsl/generate.cpp @@ -118,8 +118,8 @@ VariableResolver::VariableResolver(): stage(0), r_members(0), record_target(false), - r_assignment_target(0), - r_self_referencing(false) + r_self_referencing(false), + r_assignment_target(0) { } void VariableResolver::apply(Stage &s) @@ -240,7 +240,7 @@ void VariableResolver::visit(BinaryExpression &binary) if(binary.oper->token[0]=='[') { { - SetForScope set(record_target, false); + SetFlag set(record_target, false); binary.right->visit(*this); } r_members = 0; @@ -264,13 +264,13 @@ void VariableResolver::visit(Assignment &assign) SetFlag set(record_target); r_assignment_target = 0; assign.left->visit(*this); + assign.target_declaration = r_assignment_target; } r_self_referencing = false; assign.right->visit(*this); - assign.self_referencing = (r_self_referencing || assign.oper->token[0]!='='); - assign.target_declaration = r_assignment_target; + r_members = 0; r_iface_ref = 0; } @@ -415,7 +415,6 @@ bool InterfaceGenerator::generate_interface(VariableDeclaration &var, const stri iface_var->sampling = var.sampling; iface_var->interface = iface; iface_var->type = var.type; - iface_var->type_declaration = var.type_declaration; iface_var->name = name; if(stage->type==Stage::GEOMETRY && !copy_block) iface_var->array = ((var.array && var.interface!="in") || iface=="in");