pub trait NativeGLContextMethods: Sized {
type Handle;
fn get_proc_address(_: &str) -> *const ();
fn current() -> Option<Self>;
fn current_handle() -> Option<Self::Handle>;
fn create_shared(
with: Option<&Self::Handle>,
api_type: &GlType,
api_version: GLVersion
) -> Result<Self, &'static str>;
fn handle(&self) -> Self::Handle;
fn is_current(&self) -> bool;
fn make_current(&self) -> Result<(), &'static str>;
fn unbind(&self) -> Result<(), &'static str>;
fn create_shared_with_dispatcher(
with: Option<&Self::Handle>,
api_type: &GlType,
api_version: GLVersion,
_dispatcher: Option<Box<dyn GLContextDispatcher>>
) -> Result<Self, &'static str> { ... }
fn create_headless(
api_type: &GlType,
api_version: GLVersion
) -> Result<Self, &'static str> { ... }
fn is_osmesa(&self) -> bool { ... }
}
Just a somewhat dirty hack to special-case the handling of context
unbinding on old OSMesa versions.