relinquish

Relinquish is a Rendering library that wraps arround OpenGL. It is intended to smooth out some of the roughness of OpenGL. Instead of beeing a state machine, it has a object model where state is encapsulated in to objects and then boud. This counteracts the common problems of state leaks. Reliqush also provides many convinient features such as shader parsing and a matrix stack.

Reliquish is written to create a base line of hardware abstraction that allows the user to write portable graphics code that is backwards compatible and should run on any OpenGL 2.0 / DX9 level hardware. It also fully supports OpenGL ES 2.0 so any code written using Relinqush should easily be portable to mobile/embedded devices. The future plan is to port Reliqush over to Vulcan once it becomes available.

If you are writing a high-end 3D engine, Reliquish may not provide all the functionality one would need. Relinquish has been designed to be used for things like UIs and tools where it is important to have a strong foundation of stabillity, portability and long therm compatibility rather then access the the latest hardware features. To facilitate the mixing and matching of Relinqush dependent code and other OpenGL code the library has the abillity to reset and restore its state, in order to play nice with other code.

Contents:

Initialization
r_init
r_extension_test
r_extension_get_address
Array data
r_array_vertex_size
r_array_allocate
r_array_allocate_from_shader
r_array_free
r_array_defrag
r_array_section_allocate_vertex
r_array_section_allocate_reference
r_array_section_free
r_array_load_vertex
r_array_load_reference
r_array_get_size
r_array_get_used
r_array_get_left
r_array_get_vertex_size
r_array_section_get_vertex_count
r_array_debug_print_out
Draw calls
r_array_draw
r_array_sections_draw
r_array_references_draw
r_array_vertex_render
r_array_section_draw
r_array_reference_draw
Matrix management
r_matrix_identity
r_matrix_push
r_matrix_pop
r_matrix_matrix_mult
r_matrix_rotate
r_matrix_scale
r_matrix_translate
r_matrix_normalize_scale
r_matrix_frustum
r_matrix_ortho
r_matrix_set
r_matrix_get
r_matrix_projection_screend
r_matrix_projection_screenf
r_matrix_projection_worldf
r_matrix_projection_vertexd
r_matrix_projection_vertexf
r_matrix_projection_surfacef
r_matrix_projection_axisf
r_matrix_projection_vectorf
r_viewport
Shader management
r_shader_create
r_shader_create_simple
r_shader_create_from_file
r_shader_destroy
r_shader_set
r_shader_texture_set
Uniform query
r_shader_uniform_block_count
r_shader_uniform_block_size
r_shader_uniform_block_member_count
r_shader_uniform_block_member_name
r_shader_uniform_block_member_type
r_shader_uniform_block_member_offset
r_shader_uniform_block_location
Uniform blocks
r_shader_uniform_data_set
r_shader_uniform_matrix_set
r_shader_uniform_texture_pointer_get
Uniform State
r_shader_uniform_location
r_shader_uniform_texture_set
r_shader_mat2v_set
r_shader_mat3v_set
r_shader_mat4v_set
r_shader_vec4_set
r_shader_vec3_set
r_shader_vec2_set
r_shader_float_set
r_shader_int_set
r_shader_int2_set
r_shader_int3_set
r_shader_int4_set
r_shader_input_fomat_components_get
r_shader_input_fomat_count_get
r_shader_output_fomat_components_get
r_shader_output_fomat_count_get
Shader state
r_shader_state_set_depth_test
r_shader_state_set_cull_face
r_shader_state_set_blend_mode
r_shader_state_set_offset
r_shader_state_set_alpha_to_coverage
r_shader_state_set_mask
Shader Debugging
r_shader_debug_print_shader
r_shader_debug_print_uniform_buffer
Draw primitives
r_shader_presets_get
Surface primitives
r_primitive_surface
r_primitive_image
Line primitives
r_primitive_line_3d
r_primitive_line_2d
r_primitive_line_fade_3d
r_primitive_line_fade_2d
r_primitive_line_flush
r_primitive_line_clear
Sprite primitives
r_primitive_sprite
r_primitive_sprite_uv
r_primitive_sprite_flush
Image and texture API
r_texture_allocate
r_texture_free
Frame buffer objects
r_framebuffer_allocate
r_framebuffer_free
r_framebuffer_bind
r_framebuffer_clear
Defines