|
- #ifndef LIB_SHADER_FILE_H
- #define LIB_SHADER_FILE_H
-
- #include <stdint.h>
-
- #define LSF_LOGLEVEL_DEBUG 0
- #define LSF_LOGLEVEL_INFO 1
- #define LSF_LOGLEVEL_WARNING 2
- #define LSF_LOGLEVEL_ERROR 3
-
- #define LSF_ERR_NONE 0x00000000
- #define LSF_ERR_NOT_INIT 0x00000001
- #define LSF_ERR_INVALID_HANDLE_SHADER_FILE 0x00000010
- #define LSF_ERR_INVALID_HANDLE_SHADER_GENERATOR 0x00000011
- #define LSF_ERR_INVALID_GENERATOR_NAME 0x00000020
- #define LSF_ERR_INVALID_PROPERTY_INDEX 0x00000021
- #define LSF_ERR_INVALID_PROPERTY_NAME 0x00000022
- #define LSF_ERR_UNKNOWN_IDENTFIFIER 0x00001000
- #define LSF_ERR_DUPLICATE_IDENTIFIER 0x00001001
- #define LSF_ERR_OUT_OF_RANGE 0x00001002
- #define LSF_ERR_INVALID_IDENTIFIER 0x00001003
- #define LSF_ERR_INVALID_PARAMTER_COUNT 0x00001004
- #define LSF_ERR_INVALID_PARAMTER 0x00001005
- #define LSF_ERR_UNEXPECTED_TOKEN 0x00001006
- #define LSF_ERR_INVALID_TOKEN 0x00001007
- #define LSF_ERR_EXPRESSION_INTERNAL 0x00001008
- #define LSF_ERR_EXPRESSION 0x00001009
- #define LSF_ERR_SHADER_PART_INTERNAL 0x0000100A
- #define LSF_ERR_SHADER_PART 0x0000100B
- #define LSF_ERR_INVALID_LIBRARY_NAME 0x00002000
- #define LSF_ERR_INVALID_LIBRARY_HANDLE 0x00002001
- #define LSF_ERR_INVALID_METHOD_NAME 0x00002002
- #define LSF_ERR_UNKNOWN 0xFFFFFFFF
-
- #define WINAPI __stdcall
-
- typedef uint32_t lsf_error_code_t;
- typedef uint32_t lsf_log_level_t;
- typedef void* lsf_shader_file_handle_t;
- typedef void* lsf_shader_generator_handle_t;
- typedef void (*lsf_shader_file_log_callback_t)(const lsf_log_level_t loglevel, const char* msg, const void* userargs);
-
- typedef lsf_shader_file_handle_t (WINAPI *lsf_shader_file_create_t) ();
- typedef lsf_error_code_t (WINAPI *lsf_shader_file_set_log_callback_t) (const lsf_shader_file_handle_t handle, const lsf_shader_file_log_callback_t callback, const void* userargs);
- typedef lsf_error_code_t (WINAPI *lsf_shader_file_load_from_file_t) (const lsf_shader_file_handle_t handle, const char* filename);
- typedef lsf_error_code_t (WINAPI *lsf_shader_file_save_to_file_t) (const lsf_shader_file_handle_t handle, const char* filename);
- typedef const char* (WINAPI *lsf_shader_file_get_generator_names_t) (const lsf_shader_file_handle_t handle);
- typedef lsf_error_code_t (WINAPI *lsf_shader_file_destroy_t) (const lsf_shader_file_handle_t handle);
-
- typedef lsf_shader_generator_handle_t (WINAPI *lsf_generator_create_t) (const lsf_shader_file_handle_t handle, const char* name);
- typedef const char* (WINAPI *lsf_generator_get_property_names_t) (const lsf_shader_generator_handle_t handle);
- typedef const char* (WINAPI *lsf_generator_get_property_t) (const lsf_shader_generator_handle_t handle, const int index);
- typedef const char* (WINAPI *lsf_generator_get_property_by_name_t) (const lsf_shader_generator_handle_t handle, const char* name);
- typedef lsf_error_code_t (WINAPI *lsf_generator_set_property_t) (const lsf_shader_generator_handle_t handle, const int index, const char* value);
- typedef lsf_error_code_t (WINAPI *lsf_generator_set_property_by_name_t) (const lsf_shader_generator_handle_t handle, const char* name, const char* value);
- typedef const char* (WINAPI *lsf_generator_generate_code_t) (const lsf_shader_generator_handle_t handle);
- typedef lsf_error_code_t (WINAPI *lsf_generator_destroy_t) (const lsf_shader_generator_handle_t handle);
-
- typedef lsf_error_code_t (WINAPI *lsf_init_t) ();
- typedef lsf_error_code_t (WINAPI *lsf_get_last_error_code_t) ();
- typedef const char* (WINAPI *lsf_get_last_error_msg_t) ();
- typedef const char* (WINAPI *lsf_get_last_error_trace_t) ();
- typedef lsf_error_code_t (WINAPI *lsf_finish_t) ();
-
- lsf_shader_file_create_t lsf_shader_file_create;
- lsf_shader_file_set_log_callback_t lsf_shader_file_set_log_callback;
- lsf_shader_file_load_from_file_t lsf_shader_file_load_from_file;
- lsf_shader_file_save_to_file_t lsf_shader_file_save_to_file;
- lsf_shader_file_get_generator_names_t lsf_shader_file_get_generator_names;
- lsf_shader_file_destroy_t lsf_shader_file_destroy;
-
- lsf_generator_create_t lsf_generator_create;
- lsf_generator_get_property_names_t lsf_generator_get_property_names;
- lsf_generator_get_property_t lsf_generator_get_property;
- lsf_generator_get_property_by_name_t lsf_generator_get_property_by_name;
- lsf_generator_set_property_t lsf_generator_set_property;
- lsf_generator_set_property_by_name_t lsf_generator_set_property_by_name;
- lsf_generator_generate_code_t lsf_generator_generate_code;
- lsf_generator_destroy_t lsf_generator_destroy;
-
- lsf_get_last_error_code_t lsf_get_last_error_code;
- lsf_get_last_error_msg_t lsf_get_last_error_msg;
- lsf_get_last_error_trace_t lsf_get_last_error_trace;
-
- int lsf_init(const char* libname);
- int lsf_finish(void);
-
- #endif /* LIB_SHADER_FILE_H */
|