More GLSL code.
[mesa.git] / src / mesa / shader / slang / slang_assemble.h
index 3d5eec210476c83cd97cfda3c2808e7341ec672a..ec273aa308c0c7d2d5f736767b6f08385fc7a5f1 100644 (file)
@@ -54,6 +54,10 @@ typedef enum slang_assembly_type_
        slang_asm_float_log2,\r
        slang_asm_float_floor,\r
        slang_asm_float_ceil,\r
+       slang_asm_float_noise1,\r
+       slang_asm_float_noise2,\r
+       slang_asm_float_noise3,\r
+       slang_asm_float_noise4,\r
        slang_asm_int_copy,\r
        slang_asm_int_move,\r
        slang_asm_int_push,\r
@@ -97,64 +101,59 @@ typedef struct slang_assembly_
 typedef struct slang_assembly_file_\r
 {\r
        slang_assembly *code;\r
-       unsigned int count;\r
-       unsigned int capacity;\r
+       GLuint count;\r
+       GLuint capacity;\r
 } slang_assembly_file;\r
 \r
-int slang_assembly_file_construct (slang_assembly_file *);\r
-void slang_assembly_file_destruct (slang_assembly_file *);\r
-int slang_assembly_file_push (slang_assembly_file *, slang_assembly_type);\r
-int slang_assembly_file_push_label (slang_assembly_file *, slang_assembly_type, GLuint);\r
-int slang_assembly_file_push_label2 (slang_assembly_file *, slang_assembly_type, GLuint, GLuint);\r
-int slang_assembly_file_push_literal (slang_assembly_file *, slang_assembly_type, GLfloat);\r
+GLboolean slang_assembly_file_construct (slang_assembly_file *);\r
+GLvoid slang_assembly_file_destruct (slang_assembly_file *);\r
+GLboolean slang_assembly_file_push (slang_assembly_file *, slang_assembly_type);\r
+GLboolean slang_assembly_file_push_label (slang_assembly_file *, slang_assembly_type, GLuint);\r
+GLboolean slang_assembly_file_push_label2 (slang_assembly_file *, slang_assembly_type, GLuint, GLuint);\r
+GLboolean slang_assembly_file_push_literal (slang_assembly_file *, slang_assembly_type, GLfloat);\r
 \r
 typedef struct slang_assembly_file_restore_point_\r
 {\r
-       unsigned int count;\r
+       GLuint count;\r
 } slang_assembly_file_restore_point;\r
 \r
-int slang_assembly_file_restore_point_save (slang_assembly_file *,\r
+GLboolean slang_assembly_file_restore_point_save (slang_assembly_file *,\r
        slang_assembly_file_restore_point *);\r
-int slang_assembly_file_restore_point_load (slang_assembly_file *,\r
+GLboolean slang_assembly_file_restore_point_load (slang_assembly_file *,\r
        slang_assembly_file_restore_point *);\r
 \r
 typedef struct slang_assembly_flow_control_\r
 {\r
-       unsigned int loop_start;                        /* for "continue" statement */\r
-       unsigned int loop_end;                          /* for "break" statement */\r
-       unsigned int function_end;                      /* for "return" statement */\r
+       GLuint loop_start;                              /* for "continue" statement */\r
+       GLuint loop_end;                                /* for "break" statement */\r
+       GLuint function_end;                    /* for "return" statement */\r
 } slang_assembly_flow_control;\r
 \r
 typedef struct slang_assembly_local_info_\r
 {\r
-       unsigned int ret_size;\r
-       unsigned int addr_tmp;\r
-       unsigned int swizzle_tmp;\r
+       GLuint ret_size;\r
+       GLuint addr_tmp;\r
+       GLuint swizzle_tmp;\r
 } slang_assembly_local_info;\r
 \r
 typedef enum\r
 {\r
        slang_ref_force,\r
-       slang_ref_forbid,\r
-       slang_ref_freelance\r
+       slang_ref_forbid/*,\r
+       slang_ref_freelance*/\r
 } slang_ref_type;\r
 \r
 /*\r
      holds a complete information about vector swizzle - the <swizzle> array contains\r
      vector component sources indices, where 0 is "x", 1 is "y", ...\r
-       example: "xwz" --> { 3, { 0, 3, 2, n/u } }\r
-*/\r
* Holds a complete information about vector swizzle - the <swizzle> array contains\r
* vector component source indices, where 0 is "x", 1 is "y", 2 is "z" and 3 is "w".\r
+ * Example: "xwz" --> { 3, { 0, 3, 2, not used } }.\r
+ */\r
 typedef struct slang_swizzle_\r
 {\r
-       unsigned int num_components;\r
-       unsigned int swizzle[4];\r
+       GLuint num_components;\r
+       GLuint swizzle[4];\r
 } slang_swizzle;\r
 \r
-typedef struct slang_assembly_stack_info_\r
-{\r
-       slang_swizzle swizzle;\r
-} slang_assembly_stack_info;\r
-\r
 typedef struct slang_assembly_name_space_\r
 {\r
        struct slang_function_scope_ *funcs;\r
@@ -171,32 +170,26 @@ typedef struct slang_assemble_ctx_
        slang_assembly_flow_control flow;\r
        slang_assembly_local_info local;\r
        slang_ref_type ref;\r
-       slang_assembly_stack_info swz;\r
+       slang_swizzle swz;\r
 } slang_assemble_ctx;\r
 \r
 slang_function *_slang_locate_function (slang_function_scope *funcs, slang_atom a_name,\r
-       slang_operation *params, unsigned int num_params, slang_assembly_name_space *space,\r
+       slang_operation *params, GLuint num_params, slang_assembly_name_space *space,\r
        slang_atom_pool *);\r
 \r
-int _slang_assemble_function (slang_assemble_ctx *, struct slang_function_ *);\r
+GLboolean _slang_assemble_function (slang_assemble_ctx *, struct slang_function_ *);\r
 \r
-int _slang_cleanup_stack (slang_assembly_file *, slang_operation *, int ref,\r
-       slang_assembly_name_space *, struct slang_machine_ *, slang_atom_pool *);\r
-int _slang_cleanup_stack_ (slang_assemble_ctx *, slang_operation *);\r
+GLboolean _slang_cleanup_stack_ (slang_assemble_ctx *, slang_operation *);\r
 \r
-int _slang_dereference (slang_assembly_file *, slang_operation *, slang_assembly_name_space *,\r
-       slang_assembly_local_info *, struct slang_machine_ *, slang_atom_pool *);\r
+GLboolean _slang_dereference (slang_assemble_ctx *, slang_operation *);\r
 \r
-int _slang_assemble_function_call (slang_assemble_ctx *, slang_function *,\r
-       slang_operation *, GLuint, GLboolean);\r
+GLboolean _slang_assemble_function_call (slang_assemble_ctx *, slang_function *, slang_operation *,\r
+       GLuint, GLboolean);\r
 \r
-int _slang_assemble_function_call_name (slang_assemble_ctx *, const char *,\r
-       slang_operation *, GLuint, GLboolean);\r
+GLboolean _slang_assemble_function_call_name (slang_assemble_ctx *, const char *, slang_operation *,\r
+       GLuint, GLboolean);\r
 \r
-int _slang_assemble_operation (slang_assembly_file *, struct slang_operation_ *, int reference,\r
-       slang_assembly_flow_control *, slang_assembly_name_space *, slang_assembly_local_info *,\r
-       slang_assembly_stack_info *, struct slang_machine_ *, slang_atom_pool *);\r
-int _slang_assemble_operation_ (slang_assemble_ctx *, struct slang_operation_ *, slang_ref_type);\r
+GLboolean _slang_assemble_operation_ (slang_assemble_ctx *, struct slang_operation_ *, slang_ref_type);\r
 \r
 #ifdef __cplusplus\r
 }\r