updated some printfs, added comment about sched_yield
[mesa.git] / src / mesa / shader / slang / slang_assemble_typeinfo.h
index cd16440e1a7ee3f8d1a962397937da7fd53c922c..257793990b9dc3d1ba531b6a11ae02f634d01f76 100644 (file)
 #if !defined SLANG_ASSEMBLE_TYPEINFO_H\r
 #define SLANG_ASSEMBLE_TYPEINFO_H\r
 \r
-#include "slang_assemble_constructor.h"\r
-#include "slang_compile.h"\r
-\r
 #if defined __cplusplus\r
 extern "C" {\r
 #endif\r
 \r
+typedef enum slang_type_specifier_type_\r
+{\r
+       slang_spec_void,\r
+       slang_spec_bool,\r
+       slang_spec_bvec2,\r
+       slang_spec_bvec3,\r
+       slang_spec_bvec4,\r
+       slang_spec_int,\r
+       slang_spec_ivec2,\r
+       slang_spec_ivec3,\r
+       slang_spec_ivec4,\r
+       slang_spec_float,\r
+       slang_spec_vec2,\r
+       slang_spec_vec3,\r
+       slang_spec_vec4,\r
+       slang_spec_mat2,\r
+       slang_spec_mat3,\r
+       slang_spec_mat4,\r
+       slang_spec_sampler1D,\r
+       slang_spec_sampler2D,\r
+       slang_spec_sampler3D,\r
+       slang_spec_samplerCube,\r
+       slang_spec_sampler1DShadow,\r
+       slang_spec_sampler2DShadow,\r
+       slang_spec_struct,\r
+       slang_spec_array\r
+} slang_type_specifier_type;\r
+\r
+typedef struct slang_type_specifier_\r
+{\r
+       slang_type_specifier_type type;\r
+       struct slang_struct_ *_struct;                  /* type: spec_struct */\r
+       struct slang_type_specifier_ *_array;   /* type: spec_array */\r
+} slang_type_specifier;\r
+\r
+GLvoid slang_type_specifier_ctr (slang_type_specifier *);\r
+GLvoid slang_type_specifier_dtr (slang_type_specifier *);\r
+GLboolean slang_type_specifier_copy (slang_type_specifier *, const slang_type_specifier *);\r
+GLboolean slang_type_specifier_equal (const slang_type_specifier *, const slang_type_specifier *);\r
+\r
 typedef struct slang_assembly_typeinfo_\r
 {\r
-       int can_be_referenced;\r
-       int is_swizzled;\r
+       GLboolean can_be_referenced;\r
+       GLboolean is_swizzled;\r
        slang_swizzle swz;\r
        slang_type_specifier spec;\r
-       slang_operation *array_size;\r
+       GLuint array_len;\r
 } slang_assembly_typeinfo;\r
 \r
-int slang_assembly_typeinfo_construct (slang_assembly_typeinfo *);\r
-void slang_assembly_typeinfo_destruct (slang_assembly_typeinfo *);\r
+GLboolean slang_assembly_typeinfo_construct (slang_assembly_typeinfo *);\r
+GLvoid slang_assembly_typeinfo_destruct (slang_assembly_typeinfo *);\r
 \r
 /*\r
-       retrieves type information about an operation\r
-       returns 1 on success\r
-       returns 0 otherwise\r
-*/\r
-int _slang_typeof_operation (slang_operation *, slang_assembly_name_space *,\r
+ * Retrieves type information about an operation.\r
+ * Returns GL_TRUE on success.\r
+ * Returns GL_FALSE otherwise.\r
+ */\r
+GLboolean _slang_typeof_operation (slang_assemble_ctx *, struct slang_operation_ *,\r
+       slang_assembly_typeinfo *);\r
+GLboolean _slang_typeof_operation_ (struct slang_operation_ *, slang_assembly_name_space *,\r
        slang_assembly_typeinfo *, slang_atom_pool *);\r
 \r
 /*\r
-       retrieves type of a function prototype, if one exists\r
-       returns 1 on success, even if the function was not found\r
-       returns 0 otherwise\r
-*/\r
-int _slang_typeof_function (slang_atom a_name, slang_operation *params, unsigned int num_params,\r
-       slang_assembly_name_space *space, slang_type_specifier *spec, int *exists, slang_atom_pool *);\r
-\r
-int _slang_type_is_matrix (slang_type_specifier_type);\r
-int _slang_type_is_vector (slang_type_specifier_type);\r
+ * Retrieves type of a function prototype, if one exists.\r
+ * Returns GL_TRUE on success, even if the function was not found.\r
+ * Returns GL_FALSE otherwise.\r
+ */\r
+GLboolean _slang_typeof_function (slang_atom a_name, struct slang_operation_ *params,\r
+       GLuint num_params, slang_assembly_name_space *, slang_type_specifier *spec, GLboolean *exists,\r
+       slang_atom_pool *);\r
+\r
+GLboolean _slang_type_is_matrix (slang_type_specifier_type);\r
+\r
+GLboolean _slang_type_is_vector (slang_type_specifier_type);\r
+\r
 slang_type_specifier_type _slang_type_base (slang_type_specifier_type);\r
-unsigned int _slang_type_dim (slang_type_specifier_type);\r
+\r
+GLuint _slang_type_dim (slang_type_specifier_type);\r
 \r
 #ifdef __cplusplus\r
 }\r