| Crates.io | gl-context-loader |
| lib.rs | gl-context-loader |
| version | 0.1.8 |
| created_at | 2021-06-29 17:43:25.387873+00 |
| updated_at | 2022-03-10 16:56:54.879992+00 |
| description | Minimal OpenGL function loader for no_std OpenGL contexts |
| homepage | https://azul.rs/ |
| repository | https://github.com/fschutt/gl-context-loader |
| max_upload_size | |
| id | 416267 |
| size | 276,497 |
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:
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.
The code is somewhat copied from servo/gleam, so it retains the original Apache/MIT license.