diff options
author | Kenneth Graunke <[email protected]> | 2013-07-12 22:34:19 -0700 |
---|---|---|
committer | Kenneth Graunke <[email protected]> | 2013-07-18 16:57:21 -0700 |
commit | 7cef2b22b84aecf9cddf65a3a054fd39e2e9b369 (patch) | |
tree | 4cc861434c0a9de37d1dcc9daecb6a259bf5e844 /src/glsl | |
parent | 7ce5c6b2147f9af524f4073b6ee3b29c0a5a1522 (diff) |
glsl: Add a new ast_type_qualifier::has_layout() method.
This makes it easy to check if any layout qualifiers are set.
Signed-off-by: Kenneth Graunke <[email protected]>
Reviewed-by: Matt Turner <[email protected]>
Diffstat (limited to 'src/glsl')
-rw-r--r-- | src/glsl/ast.h | 5 | ||||
-rw-r--r-- | src/glsl/ast_type.cpp | 18 |
2 files changed, 23 insertions, 0 deletions
diff --git a/src/glsl/ast.h b/src/glsl/ast.h index c0350e7358e..441b389a74a 100644 --- a/src/glsl/ast.h +++ b/src/glsl/ast.h @@ -458,6 +458,11 @@ struct ast_type_qualifier { bool has_interpolation() const; /** + * Return whether a layout qualifier is present. + */ + bool has_layout() const; + + /** * \brief Return string representation of interpolation qualifier. * * If an interpolation qualifier is present, then return that qualifier's diff --git a/src/glsl/ast_type.cpp b/src/glsl/ast_type.cpp index be84550da78..4e870a70742 100644 --- a/src/glsl/ast_type.cpp +++ b/src/glsl/ast_type.cpp @@ -56,6 +56,24 @@ bool ast_type_qualifier::has_interpolation() const || this->flags.q.noperspective; } +bool +ast_type_qualifier::has_layout() const +{ + return this->flags.q.origin_upper_left + || this->flags.q.pixel_center_integer + || this->flags.q.depth_any + || this->flags.q.depth_greater + || this->flags.q.depth_less + || this->flags.q.depth_unchanged + || this->flags.q.std140 + || this->flags.q.shared + || this->flags.q.column_major + || this->flags.q.row_major + || this->flags.q.packed + || this->flags.q.explicit_location + || this->flags.q.explicit_index; +} + const char* ast_type_qualifier::interpolation_string() const { |