[−][src]Crate gles30
Global GLES loader and bindings for GLES 3.0.
- Unlike with the
gl
crate, all GLES functions and constants provided here are given under their official names, without an intended module prefix.- In other words, for the function
glClearColor
thegl
crate exposes it asClearColor
so that you call it withgl::ClearColor
. This crate just uses the real name ofglClearColor
. - Similarly, for a constant such as
GL_BLEND
, thegl
crate exposes it asBLEND
and then you use it asgl::BLEND
. This crate just gives youGL_BLEND
.
- In other words, for the function
- Loading of all functions can be performed with a single call to
load_gles_with
. You provide a function pointer lookup function and it loads all the individual functions. If a function can't be loaded under the main name, the loader will attempt to use fallback names when possible. - At your option, you can load individual functions. Each function named
glFoo
actually has a moduleFoo
which containspub fn is_loaded() -> bool
, allowing you to check the loaded status of that function, andpub unsafe fn load_with<F>(mut load_fn: F)
which works just likeload_gles_with
except for only that one function.- These modules are all hidden from the normal documentation because you shouldn't ever need to use them and it clogs up the docs.
- On all functions with documentation, I have attempted to give a link to
the correct khronos.org documentation page.
- Doc links started as auto-generated links to the page with the same function name, but Kronos sorts the "overloaded" functions into a single page with all the variants. I've tried to correct this by hand. If you find any remaining bad links please file a bug about it.
ⓘThis example is not tested
use gles30::*; load_gles_with(|ptr| SDL_GL_GetProcAddress(ptr)); glClearColor(0.5, 0.5, 0.5, 1.0);
This crate only loads GLES 3.0, not any other version of GLES.
Features
There's some features you can turn on for debugging assistance.
debug_trace_messages
: If enabled, immediately before a call to a GL function it'll print the name of the function about to be called. I expect that you'll keep this off most of the time, but if you're getting segfaults it makes it a snap to tell what you called before the segfault happened.debug_error_checks
: If enabled, immediately after all calls to GL there's an additional call toglGetError
. If the error value is something other thanGL_NO_ERROR
you'll get an error message printed showing the name of the function you called, the arguments you passed, and the error code.
Unfortunately, the glDebugMessageCallback
function didn't become part of
GLES until 3.2, so we got some silly macros.
no_std
Support
This library is no_std
friendly. It's just bindings and loader callbacks
after all.
However, having either of the above features for message printing enabled
will cause the crate to link to the std
crate whenever
debug_assertions
are on. It's the price we pay for debugging messages.
Modules
consts | |
functions | |
types |
Enums
__GLsync | |
_cl_context | |
_cl_event | |
c_void | Equivalent to C's |