# opengl-function-loader Defines a struct holding OpenGL function pointers as well as the corresponding functions. Designed for no_std use (with `default-features = false`). You are responsible for loading the functions yourself: ```rust fn main() { /// ... wglMakeContextCurrent(hDC, hRC); let context = GenericGlContext { glAccum: wglGetProcAddress("glAccum"), glActiveTexture: wglGetProcAddress("glActiveTexture"), glAlphaFunc: wglGetProcAddress("glAlphaFunc"), glAreTexturesResident: wglGetProcAddress("glAreTexturesResident"), ... }; // function provided by this library - also available on no_std! context.clear_color(0.0, 0.0, 0.0, 0.0); context.flush(); wglMakeContextCurrent(NULL, NULL); } ``` If a function pointer is set to `0x00000` (i.e. the function is not loaded), this library will return a "default" value without panicking (i.e. `Vec::new()`, `String::new()` or `0`). With stdlib support it will print a "missing function: X" to stdout before returning. **If stdlib support is enabled, `GenericGlContext` implements `gleam::Gl`!**. The point of this is to make it possible to integrate crates that use `gleam::Gl` with custom OpenGL function pointer loaders while using custom loaders on `no_std`. ## License The code is somewhat copied from servo/gleam, so it retains the original Apache/MIT license.