]> git.tdb.fi Git - libs/gl.git/blobdiff - source/glsl/reflect.h
Consider expressions in array sizes when comparing types for equality
[libs/gl.git] / source / glsl / reflect.h
index 8de915729ce50e8748c9e8011419d5bd4f7cf6b8..6c00bca8de3d7f5f8dc3372dfd45cc8937b0568f 100644 (file)
@@ -7,6 +7,11 @@ namespace Msp {
 namespace GL {
 namespace SL {
 
+bool is_scalar(const BasicTypeDeclaration &);
+bool is_vector_or_matrix(const BasicTypeDeclaration &);
+BasicTypeDeclaration *get_element_type(BasicTypeDeclaration &);
+bool can_convert(const BasicTypeDeclaration &, const BasicTypeDeclaration &);
+
 /** Compares two types for equality.  Struct types are compared recursively. */
 class TypeComparer: private NodeVisitor
 {
@@ -29,6 +34,9 @@ private:
        T *multi_visit(T &);
        virtual void visit(Literal &);
        virtual void visit(VariableReference &);
+       virtual void visit(UnaryExpression &);
+       virtual void visit(BinaryExpression &);
+       virtual void visit(TernaryExpression &);
        virtual void visit(BasicTypeDeclaration &);
        virtual void visit(ImageTypeDeclaration &);
        virtual void visit(StructDeclaration &);