projects
/
mesa.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
glsl/linker: Use constant_initializer instead of constant_value to initialize uniforms
[mesa.git]
/
src
/
glsl
/
ast.h
diff --git
a/src/glsl/ast.h
b/src/glsl/ast.h
index e185ed11e756b880518c44d4f13248c836e4a0cf..4c31436613304081eed3e4b19f45bde8f139d88f 100644
(file)
--- a/
src/glsl/ast.h
+++ b/
src/glsl/ast.h
@@
-304,6
+304,16
@@
private:
* Is this function call actually a constructor?
*/
bool cons;
* Is this function call actually a constructor?
*/
bool cons;
+ ir_rvalue *
+ handle_method(exec_list *instructions,
+ struct _mesa_glsl_parse_state *state);
+};
+
+class ast_subroutine_list : public ast_node
+{
+public:
+ virtual void print(void) const;
+ exec_list declarations;
};
class ast_array_specifier : public ast_node {
};
class ast_array_specifier : public ast_node {
@@
-434,6
+444,7
@@
struct ast_type_qualifier {
unsigned out:1;
unsigned centroid:1;
unsigned sample:1;
unsigned out:1;
unsigned centroid:1;
unsigned sample:1;
+ unsigned patch:1;
unsigned uniform:1;
unsigned buffer:1;
unsigned smooth:1;
unsigned uniform:1;
unsigned buffer:1;
unsigned smooth:1;
@@
-480,6
+491,7
@@
struct ast_type_qualifier {
/** \name Layout qualifiers for GL_ARB_uniform_buffer_object */
/** \{ */
unsigned std140:1;
/** \name Layout qualifiers for GL_ARB_uniform_buffer_object */
/** \{ */
unsigned std140:1;
+ unsigned std430:1;
unsigned shared:1;
unsigned packed:1;
unsigned column_major:1;
unsigned shared:1;
unsigned packed:1;
unsigned column_major:1;
@@
-526,6
+538,12
@@
struct ast_type_qualifier {
/* tess control output layout */
unsigned vertices:1;
/** \} */
/* tess control output layout */
unsigned vertices:1;
/** \} */
+
+ /** \name Qualifiers for GL_ARB_shader_subroutine */
+ /** \{ */
+ unsigned subroutine:1; /**< Is this marked 'subroutine' */
+ unsigned subroutine_def:1; /**< Is this marked 'subroutine' with a list of types */
+ /** \} */
}
/** \brief Set of flags, accessed by name. */
q;
}
/** \brief Set of flags, accessed by name. */
q;
@@
-622,6
+640,9
@@
struct ast_type_qualifier {
*/
glsl_base_type image_base_type;
*/
glsl_base_type image_base_type;
+ /** Flag to know if this represents a default value for a qualifier */
+ bool is_default_qualifier;
+
/**
* Return true if and only if an interpolation qualifier is present.
*/
/**
* Return true if and only if an interpolation qualifier is present.
*/
@@
-668,6
+689,7
@@
struct ast_type_qualifier {
ast_type_qualifier q,
ast_node* &node);
ast_type_qualifier q,
ast_node* &node);
+ ast_subroutine_list *subroutine_list;
};
class ast_declarator_list;
};
class ast_declarator_list;
@@
-1151,4
+1173,9
@@
extern void
check_builtin_array_max_size(const char *name, unsigned size,
YYLTYPE loc, struct _mesa_glsl_parse_state *state);
check_builtin_array_max_size(const char *name, unsigned size,
YYLTYPE loc, struct _mesa_glsl_parse_state *state);
+extern void _mesa_ast_process_interface_block(YYLTYPE *locp,
+ _mesa_glsl_parse_state *state,
+ ast_interface_block *const block,
+ const struct ast_type_qualifier q);
+
#endif /* AST_H */
#endif /* AST_H */