X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fglsl%2Fresolve.h;h=633ff11d27b4382e66ce6240847ac84907b54f5a;hb=c4aeeced7b397d46772577775bd3a0d6c4706cba;hp=bbd2d620217aeba08602854dcd6887a961463c70;hpb=01c863144c51fd370c75233c5aa5b4add335f4a8;p=libs%2Fgl.git diff --git a/source/glsl/resolve.h b/source/glsl/resolve.h index bbd2d620..633ff11d 100644 --- a/source/glsl/resolve.h +++ b/source/glsl/resolve.h @@ -79,7 +79,6 @@ private: void check_assignment_target(Statement *); virtual void visit(VariableReference &); virtual void visit(InterfaceBlockReference &); - void add_to_chain(Assignment::Target::ChainType, unsigned); virtual void visit(MemberAccess &); virtual void visit(Swizzle &); virtual void visit(BinaryExpression &); @@ -120,12 +119,8 @@ public: bool apply(Stage &); private: - static bool is_scalar(BasicTypeDeclaration &); - static bool is_vector_or_matrix(BasicTypeDeclaration &); - static BasicTypeDeclaration *get_element_type(BasicTypeDeclaration &); - static bool can_convert(BasicTypeDeclaration &, BasicTypeDeclaration &); static Compatibility get_compatibility(BasicTypeDeclaration &, BasicTypeDeclaration &); - BasicTypeDeclaration *find_type(BasicTypeDeclaration::Kind, unsigned); + BasicTypeDeclaration *find_type(BasicTypeDeclaration::Kind, unsigned, bool = true); BasicTypeDeclaration *find_type(BasicTypeDeclaration &, BasicTypeDeclaration::Kind, unsigned); void convert_to(RefPtr &, BasicTypeDeclaration &); bool convert_to_element(RefPtr &, BasicTypeDeclaration &); @@ -161,6 +156,8 @@ public: bool apply(Stage &); private: + static bool can_convert_arguments(const FunctionCall &, const FunctionDeclaration &); + virtual void visit(FunctionCall &); virtual void visit(FunctionDeclaration &); };