]> git.tdb.fi Git - libs/gl.git/blobdiff - source/glsl/generate.h
Properly resolve arithmetic assignment operators
[libs/gl.git] / source / glsl / generate.h
index 3d175b42dceda80c71c5052bfbdba0862ea1a4cd..54e39f39aa0679088ea7d18dd98192c32645f07c 100644 (file)
@@ -85,7 +85,7 @@ class VariableResolver: private TraversingVisitor
 {
 private:
        Stage *stage;
-       RefPtr<InterfaceBlockReference> r_iface_ref;
+       RefPtr<Expression> r_replacement_expr;
        std::string block_interface;
        bool r_any_resolved;
        bool record_target;
@@ -99,6 +99,7 @@ public:
 
 private:
        virtual void enter(Block &);
+       void visit_and_replace(RefPtr<Expression> &);
        virtual void visit(VariableReference &);
        virtual void visit(InterfaceBlockReference &);
        virtual void visit(MemberAccess &);
@@ -149,6 +150,7 @@ private:
        virtual void visit(InterfaceBlockReference &);
        virtual void visit(MemberAccess &);
        virtual void visit(UnaryExpression &);
+       void visit(BinaryExpression &, bool);
        virtual void visit(BinaryExpression &);
        virtual void visit(Assignment &);
        virtual void visit(FunctionCall &);