[Mesa-dev] [PATCH 01/14] glsl: Add a new ast_type_qualifier::has_layout() method.
Kenneth Graunke
kenneth at whitecape.org
Mon Jul 15 19:32:03 PDT 2013
This makes it easy to check if any layout qualifiers are set.
Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
---
src/glsl/ast.h | 5 +++++
src/glsl/ast_type.cpp | 18 ++++++++++++++++++
2 files changed, 23 insertions(+)
diff --git a/src/glsl/ast.h b/src/glsl/ast.h
index c0350e7..441b389 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 be84550..4e870a7 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
{
--
1.8.3.2
More information about the mesa-dev
mailing list