Skip to content

Commit

Permalink
StageParameters must be updated after a ResetPose and display change …
Browse files Browse the repository at this point in the history
…events
  • Loading branch information
MortimerGoro committed Nov 29, 2016
1 parent 45081d4 commit 1c8505d
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 2 deletions.
13 changes: 12 additions & 1 deletion components/script/dom/vrdisplay.rs
Original file line number Diff line number Diff line change
Expand Up @@ -391,7 +391,18 @@ impl VRDisplay {
}

pub fn update_display(&self, display: &webvr::VRDisplayData) {
self.display.borrow_mut().0 = display.clone()
self.display.borrow_mut().0 = display.clone();
if let Some(ref stage) = display.stage_parameters {
if self.stage_params.get().is_none() {
let params = Some(VRStageParameters::new(&stage, &self.global()));
self.stage_params.set(params.as_ref().map(|v| v.deref()));
} else {
self.stage_params.get().unwrap().update(&stage);
}
} else {
self.stage_params.set(None);
}

}

pub fn handle_webvr_event(&self, event: &webvr::VRDisplayEvent) {
Expand Down
10 changes: 9 additions & 1 deletion components/script/dom/vrstageparameters.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ use core::nonzero::NonZero;
use dom::bindings::cell::DOMRefCell;
use dom::bindings::codegen::Bindings::VRStageParametersBinding;
use dom::bindings::codegen::Bindings::VRStageParametersBinding::VRStageParametersMethods;
use dom::bindings::conversions::slice_to_array_buffer_view;
use dom::bindings::conversions::{slice_to_array_buffer_view, update_array_buffer_view};
use dom::bindings::js::Root;
use dom::bindings::reflector::{Reflector, reflect_dom_object};
use dom::bindings::num::Finite;
Expand Down Expand Up @@ -46,6 +46,14 @@ impl VRStageParameters {
global,
VRStageParametersBinding::Wrap)
}

#[allow(unsafe_code)]
pub fn update(&self, parameters: &webvr::VRStageParameters) {
unsafe {
update_array_buffer_view(self.transform.get(), &parameters.sitting_to_standing_transform);
}
self.parameters.borrow_mut().0 = parameters.clone();
}
}

impl VRStageParametersMethods for VRStageParameters {
Expand Down

0 comments on commit 1c8505d

Please sign in to comment.