mirror of
https://github.com/servo/servo.git
synced 2025-08-03 04:30:10 +01:00
Move viewports to being per-session, not per-frame
This commit is contained in:
parent
eaad692c0b
commit
794624b42b
5 changed files with 44 additions and 23 deletions
|
@ -21,6 +21,7 @@ pub struct XRView {
|
|||
reflector_: Reflector,
|
||||
session: Dom<XRSession>,
|
||||
eye: XREye,
|
||||
viewport_index: usize,
|
||||
#[ignore_malloc_size_of = "mozjs"]
|
||||
proj: Heap<*mut JSObject>,
|
||||
#[ignore_malloc_size_of = "defined in rust-webxr"]
|
||||
|
@ -33,27 +34,26 @@ impl XRView {
|
|||
session: &XRSession,
|
||||
transform: &XRRigidTransform,
|
||||
eye: XREye,
|
||||
viewport_index: usize,
|
||||
view: View<ApiSpace>,
|
||||
) -> XRView {
|
||||
XRView {
|
||||
reflector_: Reflector::new(),
|
||||
session: Dom::from_ref(session),
|
||||
eye,
|
||||
viewport_index,
|
||||
proj: Heap::default(),
|
||||
view,
|
||||
transform: Dom::from_ref(transform),
|
||||
}
|
||||
}
|
||||
|
||||
pub fn view(&self) -> &View<ApiSpace> {
|
||||
&self.view
|
||||
}
|
||||
|
||||
pub fn new<V: Copy>(
|
||||
global: &GlobalScope,
|
||||
session: &XRSession,
|
||||
view: &View<V>,
|
||||
eye: XREye,
|
||||
viewport_index: usize,
|
||||
pose: &ApiViewerPose,
|
||||
) -> DomRoot<XRView> {
|
||||
// XXXManishearth compute and cache projection matrices on the Display
|
||||
|
@ -70,6 +70,7 @@ impl XRView {
|
|||
session,
|
||||
&transform,
|
||||
eye,
|
||||
viewport_index,
|
||||
view.cast_unit(),
|
||||
)),
|
||||
global,
|
||||
|
@ -79,6 +80,10 @@ impl XRView {
|
|||
pub fn session(&self) -> &XRSession {
|
||||
&self.session
|
||||
}
|
||||
|
||||
pub fn viewport_index(&self) -> usize {
|
||||
self.viewport_index
|
||||
}
|
||||
}
|
||||
|
||||
impl XRViewMethods for XRView {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue