Relinquish
Relinquish is a convinence wrapper around OpenGL to simply drawing. Relinquish irons out the differences between OpoenGHL and OpenGL ES. As OpenGL has moved over to a programmable model, it has gooten more complicated to draw simple things such as plain colored tiriangles and lines, something that is often very useful for interfaces and debugging. OpenGL also provides a very large degree of indirection (example: Sampler name -> uniform location -> tewxture unit) that is easy to get wrong. Another major problem with OpenGL is state leakage. Relinquish tries to solve these things by automaticaly assign samplers and attributes in the order they are specifyed in the shader, create built in basic shaders, and encapsulate state in to objects that are easier to switch. Relinquish provides the same flexibility as OpenGL but the added flexibility isnt as clumbersome to the developer as it tries to assigne resonable default values. To make sure to maximize compatibility Relinquish makes use of the following OpenGL Extenciuons beyond OpenGL 1.2
GL_ARB_vertex_buffer_object - Optional
GL_EXT_texture3D - Optional
GL_ARB_draw_buffers - Optional
GL_EXT_framebuffer_object - Optional
GL_ARB_shading_language_100 - Required
r_init
void r_init(void *(*glGetProcAddr)(const char* proc));
Description: Initializes relinquish. Takes as argument a function poiunter to a getProc function fort reading out extensions.r_extension_test
boolean r_extension_test(const char *string);
Description: Tests is a etension is suported.r_extension_get_address
void *r_extension_get_address(const char* proc);
Description: Returns the functiuon pointer to an extension function.