Skip to content

Commit

Permalink
feat: graphics bindings
Browse files Browse the repository at this point in the history
  • Loading branch information
technobaboo committed Jun 28, 2024
1 parent 155efe0 commit 14ab782
Show file tree
Hide file tree
Showing 2 changed files with 70 additions and 1 deletion.
35 changes: 35 additions & 0 deletions openxr/src/graphics/opengl.rs
Original file line number Diff line number Diff line change
Expand Up @@ -118,6 +118,35 @@ impl Graphics for OpenGL {
))?;
Ok(out)
}
SessionCreateInfo::Egl {
display,
config,
context,
get_proc_address,
} => {
let binding = sys::GraphicsBindingEGLMNDX {
ty: sys::GraphicsBindingEGLMNDX::TYPE,
next: ptr::null(),
display,
config,
context,
get_proc_address: Some(get_proc_address),
};
let info = sys::SessionCreateInfo {
ty: sys::SessionCreateInfo::TYPE,
next: &binding as *const _ as *const _,
create_flags: Default::default(),
system_id: system,
};
let mut out = sys::Session::NULL;
cvt((instance.fp().create_session)(
instance.as_raw(),
&info,
&mut out,
))?;

Ok(out)
}
}
}

Expand Down Expand Up @@ -150,6 +179,12 @@ pub struct Requirements {
}

pub enum SessionCreateInfo {
Egl {
display: EGLDisplay,
config: EGLConfig,
context: EGLContext,
get_proc_address: EglGetProcAddressMNDX,
},
Xlib {
x_display: *mut Display,
visualid: u32,
Expand Down
36 changes: 35 additions & 1 deletion openxr/src/graphics/opengles.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
use std::ptr;

#[cfg(target_os = "android")]
use sys::platform::*;

use crate::*;
Expand Down Expand Up @@ -73,6 +72,35 @@ impl Graphics for OpenGlEs {
&mut out,
))?;

Ok(out)
}
SessionCreateInfo::Egl {
display,
config,
context,
get_proc_address,
} => {
let binding = sys::GraphicsBindingEGLMNDX {
ty: sys::GraphicsBindingEGLMNDX::TYPE,
next: ptr::null(),
display,
config,
context,
get_proc_address: Some(get_proc_address),
};
let info = sys::SessionCreateInfo {
ty: sys::SessionCreateInfo::TYPE,
next: &binding as *const _ as *const _,
create_flags: Default::default(),
system_id: system,
};
let mut out = sys::Session::NULL;
cvt((instance.fp().create_session)(
instance.as_raw(),
&info,
&mut out,
))?;

Ok(out)
}
}
Expand Down Expand Up @@ -113,4 +141,10 @@ pub enum SessionCreateInfo {
config: EGLConfig,
context: EGLContext,
},
Egl {
display: EGLDisplay,
config: EGLConfig,
context: EGLContext,
get_proc_address: EglGetProcAddressMNDX,
},
}

0 comments on commit 14ab782

Please sign in to comment.