shader.h 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. /**
  2. *** :: Shader ::
  3. ***
  4. *** GLSL shader program.
  5. ***
  6. **/
  7. #ifndef shader_h
  8. #define shader_h
  9. #include "cengine.h"
  10. #include "casset.h"
  11. typedef GLuint shader;
  12. typedef GLuint shader_program;
  13. shader* vs_load_file(char* filename);
  14. shader* fs_load_file(char* filename);
  15. shader* gs_load_file(char* filename);
  16. shader* tcs_load_file(char* filename);
  17. shader* tes_load_file(char* filename);
  18. void shader_delete(shader* s);
  19. void shader_print_log(shader* s);
  20. GLuint shader_handle(shader* s);
  21. shader_program* shader_program_new();
  22. void shader_program_delete(shader_program* p);
  23. bool shader_program_has_shader(shader_program* p, shader* s);
  24. void shader_program_attach_shader(shader_program* p, shader* s);
  25. void shader_program_link(shader_program* p);
  26. void shader_program_print_info(shader_program* p);
  27. void shader_program_print_log(shader_program* p);
  28. GLuint shader_program_handle(shader_program* p);
  29. GLint shader_program_get_attribute(shader_program* p, char* name);
  30. void shader_program_enable(shader_program* p);
  31. void shader_program_disable(shader_program* p);
  32. void shader_program_set_int(shader_program* p, char* name, int val);
  33. void shader_program_set_float(shader_program* p, char* name, float val);
  34. void shader_program_set_vec2(shader_program* p, char* name, vec2 val);
  35. void shader_program_set_vec3(shader_program* p, char* name, vec3 val);
  36. void shader_program_set_vec4(shader_program* p, char* name, vec4 val);
  37. void shader_program_set_mat3(shader_program* p, char* name, mat3 val);
  38. void shader_program_set_mat4(shader_program* p, char* name, mat4 val);
  39. void shader_program_set_float_array(shader_program* p, char* name, float* vals, int count);
  40. void shader_program_set_vec2_array(shader_program* p, char* name, vec2* vals, int count);
  41. void shader_program_set_vec3_array(shader_program* p, char* name, vec3* vals, int count);
  42. void shader_program_set_vec4_array(shader_program* p, char* name, vec4* vals, int count);
  43. void shader_program_set_mat4_array(shader_program* p, char* name, mat4* vals, int count);
  44. void shader_program_set_texture(shader_program* p, char* name, int index, asset_hndl t);
  45. void shader_program_set_texture_id(shader_program* p, char* name, int index, GLint t);
  46. void shader_program_enable_attribute(shader_program* p, char* name, int count, int stride, void* ptr);
  47. void shader_program_enable_attribute_instance(shader_program* p, char* name, int count, int stride, void* ptr);
  48. void shader_program_disable_attribute(shader_program* p, char* name);
  49. void shader_program_enable_attribute_instance_matrix(shader_program* p, char* name, void* ptr);
  50. void shader_program_disable_attribute_matrix(shader_program* p, char* name);
  51. #endif