updated some printfs, added comment about sched_yield
[mesa.git] / src / mesa / shader / slang / slang_assemble_typeinfo.h
index 9f32b4c6456c350ef64d829783c26ef16e190ebd..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
        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
 GLboolean slang_assembly_typeinfo_construct (slang_assembly_typeinfo *);\r
@@ -49,7 +86,9 @@ GLvoid slang_assembly_typeinfo_destruct (slang_assembly_typeinfo *);
  * Returns GL_TRUE on success.\r
  * Returns GL_FALSE otherwise.\r
  */\r
-GLboolean _slang_typeof_operation (slang_operation *, slang_assembly_name_space *,\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
@@ -57,8 +96,9 @@ GLboolean _slang_typeof_operation (slang_operation *, slang_assembly_name_space
  * 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, slang_operation *params, GLuint num_params,\r
-       slang_assembly_name_space *, slang_type_specifier *spec, GLboolean *exists, slang_atom_pool *);\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