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
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
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