Uniform blocks

In order to construct a uniform block, Relinquish provides a API to query the shader about the size and content of each uniform block.


void r_shader_uniform_data_set(RShader *shader, void *data, uint block_id);

Description: Over writes the shaders internal storage of unifoms for a block with data provided. Is potentialy significantly faster the individualy setting the values.


void r_shader_uniform_matrix_set(RShader *shader, uint8 *uniform_data, uint block_id, RMatrix *matrix);

Description: If a memory block contains any of the predefined matrix uniforms, this function can automaticly sett the current uniform data state in to a user provided memory block.


uint64 r_shader_uniform_texture_pointer_get(uint texture_id);

Description: Allows the user to converta texture id in to a 64 bit value that can be set directly in to a memory block.