]> git.tdb.fi Git - libs/gl.git/blobdiff - source/glsl/optimize.h
Move parenthesizing expressions to Formatter
[libs/gl.git] / source / glsl / optimize.h
index 5448ea7c4e8771b8008ec0a6b786349f9386cc90..ca22c9d8259fdf198c0c63cc5221361ee010c8a6 100644 (file)
@@ -101,9 +101,6 @@ private:
                Expression *expression;
                Block *assign_scope;
                RefPtr<Expression> *inline_point;
-               const Operator *inner_oper;
-               const Operator *outer_oper;
-               bool inline_on_rhs;
                bool trivial;
                bool available;
 
@@ -125,8 +122,8 @@ public:
        bool apply(Stage &);
 
 private:
-       void visit_and_record(RefPtr<Expression> &, const Operator *, bool);
-       void inline_expression(Expression &, RefPtr<Expression> &, const Operator *, const Operator *, bool);
+       void visit_and_record(RefPtr<Expression> &);
+       void inline_expression(Expression &, RefPtr<Expression> &);
        virtual void visit(Block &);
        virtual void visit(RefPtr<Expression> &);
        virtual void visit(VariableReference &);
@@ -135,6 +132,7 @@ private:
        virtual void visit(UnaryExpression &);
        virtual void visit(BinaryExpression &);
        virtual void visit(Assignment &);
+       virtual void visit(TernaryExpression &);
        virtual void visit(FunctionCall &);
        virtual void visit(VariableDeclaration &);
        virtual void visit(Iteration &);
@@ -170,6 +168,7 @@ private:
        virtual void visit(Literal &);
        virtual void visit(UnaryExpression &);
        virtual void visit(BinaryExpression &);
+       virtual void visit(TernaryExpression &);
        virtual void visit(FunctionCall &);
        virtual void visit(BasicTypeDeclaration &);
        virtual void visit(ImageTypeDeclaration &);
@@ -227,15 +226,15 @@ private:
        virtual void visit(UnaryExpression &);
        virtual void visit(BinaryExpression &);
        virtual void visit(Assignment &);
-       void record_assignment(const Assignment::Target &, Node &);
        virtual void visit(FunctionCall &);
+       void record_assignment(const Assignment::Target &, Node &);
        virtual void visit(ExpressionStatement &);
        // Ignore structs because their members can't be accessed directly.
        virtual void visit(StructDeclaration &) { }
        virtual void visit(VariableDeclaration &);
        virtual void visit(InterfaceBlock &);
-       virtual void visit(FunctionDeclaration &);
        void merge_variables(const BlockVariableMap &);
+       virtual void visit(FunctionDeclaration &);
        virtual void visit(Conditional &);
        virtual void visit(Iteration &);
 };