You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

88 lines
5.6 KiB

  1. #ifndef LIB_SHADER_FILE_H
  2. #define LIB_SHADER_FILE_H
  3. #include <stdint.h>
  4. #define LSF_LOGLEVEL_DEBUG 0
  5. #define LSF_LOGLEVEL_INFO 1
  6. #define LSF_LOGLEVEL_WARNING 2
  7. #define LSF_LOGLEVEL_ERROR 3
  8. #define LSF_ERR_NONE 0x00000000
  9. #define LSF_ERR_NOT_INIT 0x00000001
  10. #define LSF_ERR_INVALID_HANDLE_SHADER_FILE 0x00000010
  11. #define LSF_ERR_INVALID_HANDLE_SHADER_GENERATOR 0x00000011
  12. #define LSF_ERR_INVALID_GENERATOR_NAME 0x00000020
  13. #define LSF_ERR_INVALID_PROPERTY_INDEX 0x00000021
  14. #define LSF_ERR_INVALID_PROPERTY_NAME 0x00000022
  15. #define LSF_ERR_UNKNOWN_IDENTFIFIER 0x00001000
  16. #define LSF_ERR_DUPLICATE_IDENTIFIER 0x00001001
  17. #define LSF_ERR_OUT_OF_RANGE 0x00001002
  18. #define LSF_ERR_INVALID_IDENTIFIER 0x00001003
  19. #define LSF_ERR_INVALID_PARAMTER_COUNT 0x00001004
  20. #define LSF_ERR_INVALID_PARAMTER 0x00001005
  21. #define LSF_ERR_UNEXPECTED_TOKEN 0x00001006
  22. #define LSF_ERR_INVALID_TOKEN 0x00001007
  23. #define LSF_ERR_EXPRESSION_INTERNAL 0x00001008
  24. #define LSF_ERR_EXPRESSION 0x00001009
  25. #define LSF_ERR_SHADER_PART_INTERNAL 0x0000100A
  26. #define LSF_ERR_SHADER_PART 0x0000100B
  27. #define LSF_ERR_INVALID_LIBRARY_NAME 0x00002000
  28. #define LSF_ERR_INVALID_LIBRARY_HANDLE 0x00002001
  29. #define LSF_ERR_INVALID_METHOD_NAME 0x00002002
  30. #define LSF_ERR_UNKNOWN 0xFFFFFFFF
  31. #define WINAPI __stdcall
  32. typedef uint32_t lsf_error_code_t;
  33. typedef uint32_t lsf_log_level_t;
  34. typedef void* lsf_shader_file_handle_t;
  35. typedef void* lsf_shader_generator_handle_t;
  36. typedef void (*lsf_shader_file_log_callback_t)(const lsf_log_level_t loglevel, const char* msg, const void* userargs);
  37. typedef lsf_shader_file_handle_t (WINAPI *lsf_shader_file_create_t) ();
  38. 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);
  39. typedef lsf_error_code_t (WINAPI *lsf_shader_file_load_from_file_t) (const lsf_shader_file_handle_t handle, const char* filename);
  40. typedef lsf_error_code_t (WINAPI *lsf_shader_file_save_to_file_t) (const lsf_shader_file_handle_t handle, const char* filename);
  41. typedef const char* (WINAPI *lsf_shader_file_get_generator_names_t) (const lsf_shader_file_handle_t handle);
  42. typedef lsf_error_code_t (WINAPI *lsf_shader_file_destroy_t) (const lsf_shader_file_handle_t handle);
  43. typedef lsf_shader_generator_handle_t (WINAPI *lsf_generator_create_t) (const lsf_shader_file_handle_t handle, const char* name);
  44. typedef const char* (WINAPI *lsf_generator_get_property_names_t) (const lsf_shader_generator_handle_t handle);
  45. typedef const char* (WINAPI *lsf_generator_get_property_t) (const lsf_shader_generator_handle_t handle, const int index);
  46. typedef const char* (WINAPI *lsf_generator_get_property_by_name_t) (const lsf_shader_generator_handle_t handle, const char* name);
  47. typedef lsf_error_code_t (WINAPI *lsf_generator_set_property_t) (const lsf_shader_generator_handle_t handle, const int index, const char* value);
  48. 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);
  49. typedef const char* (WINAPI *lsf_generator_generate_code_t) (const lsf_shader_generator_handle_t handle);
  50. typedef lsf_error_code_t (WINAPI *lsf_generator_destroy_t) (const lsf_shader_generator_handle_t handle);
  51. typedef lsf_error_code_t (WINAPI *lsf_init_t) ();
  52. typedef lsf_error_code_t (WINAPI *lsf_get_last_error_code_t) ();
  53. typedef const char* (WINAPI *lsf_get_last_error_msg_t) ();
  54. typedef const char* (WINAPI *lsf_get_last_error_trace_t) ();
  55. typedef lsf_error_code_t (WINAPI *lsf_finish_t) ();
  56. lsf_shader_file_create_t lsf_shader_file_create;
  57. lsf_shader_file_set_log_callback_t lsf_shader_file_set_log_callback;
  58. lsf_shader_file_load_from_file_t lsf_shader_file_load_from_file;
  59. lsf_shader_file_save_to_file_t lsf_shader_file_save_to_file;
  60. lsf_shader_file_get_generator_names_t lsf_shader_file_get_generator_names;
  61. lsf_shader_file_destroy_t lsf_shader_file_destroy;
  62. lsf_generator_create_t lsf_generator_create;
  63. lsf_generator_get_property_names_t lsf_generator_get_property_names;
  64. lsf_generator_get_property_t lsf_generator_get_property;
  65. lsf_generator_get_property_by_name_t lsf_generator_get_property_by_name;
  66. lsf_generator_set_property_t lsf_generator_set_property;
  67. lsf_generator_set_property_by_name_t lsf_generator_set_property_by_name;
  68. lsf_generator_generate_code_t lsf_generator_generate_code;
  69. lsf_generator_destroy_t lsf_generator_destroy;
  70. lsf_get_last_error_code_t lsf_get_last_error_code;
  71. lsf_get_last_error_msg_t lsf_get_last_error_msg;
  72. lsf_get_last_error_trace_t lsf_get_last_error_trace;
  73. int lsf_init(const char* libname);
  74. int lsf_finish(void);
  75. #endif /* LIB_SHADER_FILE_H */