pub use crate::core::engine::acces_hardware::display::{BackendEvent, NativeWindow};
#[cfg(target_os = "linux")]
pub use linux_offscreen::{DesktopOffscreenContext, desktop_offscreen_context};
#[cfg(target_os = "linux")]
mod linux_offscreen {
use core::ffi::c_void;
use crate::core::engine::acces_hardware::display::linux::glx::{
OffscreenContext, create_offscreen_context,
};
pub struct DesktopOffscreenContext {
inner: OffscreenContext,
}
impl DesktopOffscreenContext {
pub fn width(&self) -> u32 {
self.inner.width
}
pub fn height(&self) -> u32 {
self.inner.height
}
pub fn make_current(&self) -> bool {
self.inner.make_current()
}
pub fn gl_get_proc(&self, name: &[u8]) -> *mut c_void {
self.inner.get_proc(name)
}
}
pub fn desktop_offscreen_context(
width: u32,
height: u32,
major: i32,
minor: i32,
) -> Option<DesktopOffscreenContext> {
create_offscreen_context(width, height, major, minor)
.map(|inner| DesktopOffscreenContext { inner })
}
}