aboutsummaryrefslogtreecommitdiff
path: root/mesalib/src/glsl/ast.h
diff options
context:
space:
mode:
authormarha <marha@users.sourceforge.net>2012-07-10 14:56:29 +0200
committermarha <marha@users.sourceforge.net>2012-07-10 14:56:29 +0200
commitd137057fd13e83ec15ab416c7fe774741da06047 (patch)
treef4b38caa4f3ecb983f00e84f4f4d8d66699ecbc5 /mesalib/src/glsl/ast.h
parentc29d91cfd8df084f16d0d2dfa82c3a86f7719a73 (diff)
downloadvcxsrv-d137057fd13e83ec15ab416c7fe774741da06047.tar.gz
vcxsrv-d137057fd13e83ec15ab416c7fe774741da06047.tar.bz2
vcxsrv-d137057fd13e83ec15ab416c7fe774741da06047.zip
fontconfig mesa xserver git update 10 Jul 2012
Diffstat (limited to 'mesalib/src/glsl/ast.h')
-rw-r--r--mesalib/src/glsl/ast.h34
1 files changed, 33 insertions, 1 deletions
diff --git a/mesalib/src/glsl/ast.h b/mesalib/src/glsl/ast.h
index b096c838c..4438b85bb 100644
--- a/mesalib/src/glsl/ast.h
+++ b/mesalib/src/glsl/ast.h
@@ -376,6 +376,15 @@ struct ast_type_qualifier {
unsigned depth_less:1;
unsigned depth_unchanged:1;
/** \} */
+
+ /** \name Layout qualifiers for GL_ARB_uniform_buffer_object */
+ /** \{ */
+ unsigned std140:1;
+ unsigned shared:1;
+ unsigned packed:1;
+ unsigned column_major:1;
+ unsigned row_major:1;
+ /** \} */
}
/** \brief Set of flags, accessed by name. */
q;
@@ -417,15 +426,19 @@ struct ast_type_qualifier {
const char *interpolation_string() const;
};
+class ast_declarator_list;
+
class ast_struct_specifier : public ast_node {
public:
- ast_struct_specifier(const char *identifier, ast_node *declarator_list);
+ ast_struct_specifier(const char *identifier,
+ ast_declarator_list *declarator_list);
virtual void print(void) const;
virtual ir_rvalue *hir(exec_list *instructions,
struct _mesa_glsl_parse_state *state);
const char *name;
+ /* List of ast_declarator_list * */
exec_list declarations;
};
@@ -758,6 +771,25 @@ public:
ast_function *prototype;
ast_compound_statement *body;
};
+
+class ast_uniform_block : public ast_node {
+public:
+ ast_uniform_block(ast_type_qualifier layout,
+ const char *block_name,
+ ast_declarator_list *member_list)
+ : layout(layout), block_name(block_name)
+ {
+ declarations.push_degenerate_list_at_head(&member_list->link);
+ }
+
+ virtual ir_rvalue *hir(exec_list *instructions,
+ struct _mesa_glsl_parse_state *state);
+
+ ast_type_qualifier layout;
+ const char *block_name;
+ /** List of ast_declarator_list * */
+ exec_list declarations;
+};
/*@}*/
extern void