X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fglsl%2Fresolve.h;h=fdbebfe8e3a8e8249407545d5abfef5ca291dda0;hb=3fe1aab63922eec99d8bf6fd4fd60bec10df173c;hp=f32d0cd530fe03b289d04176da2535e43e86221a;hpb=38712d8ecc57d043a2419ffbaeeb57f7a6586f14;p=libs%2Fgl.git diff --git a/source/glsl/resolve.h b/source/glsl/resolve.h index f32d0cd5..fdbebfe8 100644 --- a/source/glsl/resolve.h +++ b/source/glsl/resolve.h @@ -61,7 +61,7 @@ private: bool record_target = false; bool r_self_referencing = false; Assignment::Target r_assignment_target; - std::vector redeclared_builtins; + std::vector redeclared_builtins; std::set nodes_to_remove; public: @@ -78,6 +78,7 @@ private: virtual void visit(BinaryExpression &); virtual void visit(Assignment &); void merge_layouts(Layout &, const Layout &); + void redeclare_builtin(VariableDeclaration &, VariableDeclaration &); virtual void visit(VariableDeclaration &); virtual void visit(InterfaceBlock &); }; @@ -101,6 +102,7 @@ private: }; Stage *stage = 0; + const FunctionDeclaration *current_function = 0; std::vector basic_types; NodeList::iterator insert_point; bool r_any_resolved = false; @@ -132,6 +134,8 @@ private: virtual void visit(FunctionCall &); virtual void visit(BasicTypeDeclaration &); virtual void visit(VariableDeclaration &); + virtual void visit(FunctionDeclaration &); + virtual void visit(Return &); }; /** Resolves function declarations and calls. */