mirror of
https://github.com/servo/servo.git
synced 2025-08-03 12:40:06 +01:00
Allow setting near/far clip planes
This commit is contained in:
parent
17f423723c
commit
0d79b2beaf
2 changed files with 14 additions and 3 deletions
|
@ -175,7 +175,7 @@ impl XRSession {
|
|||
}
|
||||
|
||||
/// https://immersive-web.github.io/webxr/#xr-animation-frame
|
||||
fn raf_callback(&self, (time, frame): (f64, Frame)) {
|
||||
fn raf_callback(&self, (time, mut frame): (f64, Frame)) {
|
||||
// Step 1
|
||||
if let Some(pending) = self.pending_render_state.take() {
|
||||
// https://immersive-web.github.io/webxr/#apply-the-pending-render-state
|
||||
|
@ -200,6 +200,10 @@ impl XRSession {
|
|||
}
|
||||
}
|
||||
|
||||
for event in frame.events.drain(..) {
|
||||
self.session.borrow_mut().apply_event(event)
|
||||
}
|
||||
|
||||
// Step 2
|
||||
let base_layer = match self.active_render_state.get().GetBaseLayer() {
|
||||
Some(layer) => layer,
|
||||
|
@ -279,6 +283,12 @@ impl XRSessionMethods for XRSession {
|
|||
if let Some(ref layer) = init.baseLayer {
|
||||
pending.set_layer(Some(&layer))
|
||||
}
|
||||
|
||||
if init.depthFar.is_some() || init.depthNear.is_some() {
|
||||
self.session
|
||||
.borrow_mut()
|
||||
.update_clip_planes(*pending.DepthNear() as f32, *pending.DepthFar() as f32);
|
||||
}
|
||||
// XXXManishearth handle inlineVerticalFieldOfView
|
||||
Ok(())
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue