X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fglsl%2Fresolve.h;h=d592e4efd5a60ddaea72b0533db48474abfe8df8;hb=0a8abd433b3052ed99adac4069fef55c6a56ccaa;hp=36af54578da987b53fafcdabaffc3d6130b57a55;hpb=03b2ea5c9c611cfa5f02afb49ed7e05743e691b4;p=libs%2Fgl.git diff --git a/source/glsl/resolve.h b/source/glsl/resolve.h index 36af5457..d592e4ef 100644 --- a/source/glsl/resolve.h +++ b/source/glsl/resolve.h @@ -31,6 +31,7 @@ private: Stage *stage = 0; std::map alias_map; std::map, TypeDeclaration *> array_types; + std::map, ImageTypeDeclaration *> image_types; NodeList::iterator type_insert_point; NodeList::iterator block_member_type_ins_pt; VariableDeclaration *iface_block = 0; @@ -41,7 +42,8 @@ public: private: TypeDeclaration *get_or_create_array_type(TypeDeclaration &); - void resolve_type(TypeDeclaration *&, const std::string &, bool); + TypeDeclaration *get_or_create_image_type(ImageTypeDeclaration &, const std::string &); + void resolve_type(TypeDeclaration *&, const std::string &, bool, const Layout * = 0); virtual void visit(Block &); virtual void visit(BasicTypeDeclaration &); virtual void visit(ImageTypeDeclaration &); @@ -69,7 +71,7 @@ public: private: virtual void enter(Block &); virtual void visit(RefPtr &); - void check_assignment_target(Statement *); + void check_assignment_target(VariableDeclaration *); virtual void visit(VariableReference &); virtual void visit(MemberAccess &); virtual void visit(Swizzle &);