![]() |
LibGame v0.4.0
The LG Game Engine - Copyright (C) 2024-2026 ETMSoftware
|
Functions | |
| LG_ShaderProg | LG_ShaderProg_create (const char **vertex_shader_code, const char **fragment_shader_code, const char **geometry_shader_code, LG_VAP_params *params) |
| void | LG_ShaderProg_delete (LG_ShaderProg *shader_prog) |
| void | LG_ShaderProg_use (LG_ShaderProg *shader_prog, zboolean gl_checking) |
| char * | LG_ShaderProg_load_src_from_file (const char *path) |
| int | LG_ShaderProg_get_attrib_loc (LG_ShaderProg *shader_prog, const char *attrib_name) |
| int | LG_ShaderProg_get_uniform_loc (LG_ShaderProg *shader_prog, const char *uniform_name) |
| uint32_t | lg_compile_shader (int type, const char **shader_code) |
| void | lg_shader_info_log (uint32_t shader) |
| void | lg_shader_program_info_log (uint32_t shader_prog_id) |
| const char * | lg_shader_get_string_from_type (int type) |
=== Wrapper functions to more easily create and manage shader progs === LG_VAP_params = Vertex Attrib Pointer params
| LG_ShaderProg LG_ShaderProg_create | ( | const char ** | vertex_shader_code, |
| const char ** | fragment_shader_code, | ||
| const char ** | geometry_shader_code, | ||
| LG_VAP_params * | params | ||
| ) |
Create shader prog from vertex and fragment shader source code
Also set vertex attrib pointer params if params != NULL
Shader prog id set to LG_INVALID_SHADER_PROG_ID on error
| vertex_shader_code | GLSL source code |
| fragment_shader_code | GLSL source code |
| geometry_shader_code | GLSL source code, may be NULL |
| params | An array of LG_VAP_params, may be NULL - VAP stands for Vertex Attrib Pointer |
Example code:
| void LG_ShaderProg_delete | ( | LG_ShaderProg * | shader_prog | ) |
Delete shader prog
| shader_prog | Addr of shader prog |
| void LG_ShaderProg_use | ( | LG_ShaderProg * | shader_prog, |
| zboolean | gl_checking | ||
| ) |
Use shader prog
| shader_prog | Addr of shader prog |
| gl_checking | Enable (TRUE) / disable (FALSE) GL checking |
| char * LG_ShaderProg_load_src_from_file | ( | const char * | path | ) |
Load shader source code (GLSL) from file
Path should be inside assets/
If not NULL, returned string must be freed afterwards
Example use:
| path | GLSL file name, inside assets/ |
| int LG_ShaderProg_get_attrib_loc | ( | LG_ShaderProg * | shader_prog, |
| const char * | attrib_name | ||
| ) |
Get the location of an attribute variable in the shader prog
Return -1 on error
| shader_prog | |
| attrib_name |
| int LG_ShaderProg_get_uniform_loc | ( | LG_ShaderProg * | shader_prog, |
| const char * | uniform_name | ||
| ) |
Get the location of a uniform variable in the shader prog
Return -1 on error
| shader_prog | |
| uniform_name |
| uint32_t lg_compile_shader | ( | int | type, |
| const char ** | shader_code | ||
| ) |
Load and compile shader from source
| type | GL_VERTEX_SHADER, GL_FRAGMENT_SHADER, or GL_GEOMETRY_SHADER_OES |
| shader_code | GLSL source code |
| void lg_shader_info_log | ( | uint32_t | shader | ) |
Print out shader compilation log
| shader |
| void lg_shader_program_info_log | ( | uint32_t | shader_prog_id | ) |
Print out shader prog linking log
| shader_prog_id |
| const char * lg_shader_get_string_from_type | ( | int | type | ) |
Get shader string from type, ie
| type |