lv_opengl_shader_internal.h

Typedefs

typedef struct lv_opengl_shader_cache_struct lv_opengl_shader_manager_t
typedef void (*lv_opengl_shader_program_update_uniformi_t)(struct _lv_shader_program*, const char*, int)
typedef void (*lv_opengl_shader_program_update_uniformf_t)(struct _lv_shader_program*, const char*, float)
typedef struct _lv_shader_program lv_opengl_shader_program_t

Functions

lv_opengl_shader_program_t *lv_opengl_shader_program_create(uint32_t id)
void lv_opengl_shader_program_destroy(lv_opengl_shader_program_t *program)
GLuint lv_opengl_shader_program_get_id(lv_opengl_shader_program_t *program)
lv_opengl_shader_manager_t *lv_opengl_shader_manager_create(const lv_opengl_shader_t *sources, size_t len, const char *vert_src, const char *frag_src)
void lv_opengl_shader_manager_destroy(lv_opengl_shader_manager_t *manager)
uint32_t lv_opengl_shader_hash(const char *value)
GLuint lv_opengl_shader_manager_get_texture(lv_opengl_shader_manager_t *manager, uint32_t hash)
void lv_opengl_shader_manager_store_texture(lv_opengl_shader_manager_t *manager, uint32_t hash, GLuint id)
uint32_t lv_opengl_shader_manager_select_shader(lv_opengl_shader_manager_t *shader, const char *shader_identifier, const lv_opengl_shader_define_t *permutations, size_t permutations_len)
lv_opengl_shader_program_t *lv_opengl_shader_manager_get_program(lv_opengl_shader_manager_t *manager, uint32_t fragment_shader_hash, uint32_t vertex_shader_hash)
struct lv_opengl_shader_t

Public Members

const char *name
const char *source
struct lv_opengl_shader_define_t

Public Members

const char *name
const char *value
bool value_allocated
struct lv_opengl_shader_source_t

Public Members

lv_opengl_shader_t data
bool src_allocated
struct lv_opengl_compiled_shader_t

Public Members

uint32_t hash
GLuint id
struct lv_opengl_shader_cache_struct

Public Members

lv_rb_t sources_map
lv_rb_t textures_map
lv_rb_t compiled_shaders_map
lv_rb_t programs_map
GLuint bg_index_buf
GLuint bg_vertex_buf
GLuint bg_program
GLuint bg_vao
struct _lv_shader_program

Public Members

lv_opengl_shader_program_update_uniformi_t update_uniform_1i
lv_opengl_shader_program_update_uniformf_t update_uniform_1f
uint32_t id