Skip to content
Permalink
Browse files

Add blank FakeXRDeviceController interface

  • Loading branch information...
Manishearth committed May 29, 2019
1 parent 1c07b0f commit 9a31f6fe7adfa50c66e22a7b456ebe495e6101f5
@@ -0,0 +1,34 @@
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */

/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */

use crate::dom::bindings::codegen::Bindings::FakeXRDeviceControllerBinding;
use crate::dom::bindings::reflector::{reflect_dom_object, Reflector};
use crate::dom::bindings::root::DomRoot;
use crate::dom::globalscope::GlobalScope;
use dom_struct::dom_struct;

#[dom_struct]
pub struct FakeXRDeviceController {
reflector: Reflector,
}

impl FakeXRDeviceController {
pub fn new_inherited() -> FakeXRDeviceController {
FakeXRDeviceController {
reflector: Reflector::new(),
}
}

pub fn new(global: &GlobalScope) -> DomRoot<FakeXRDeviceController> {
reflect_dom_object(
Box::new(FakeXRDeviceController::new_inherited()),
global,
FakeXRDeviceControllerBinding::Wrap,
)
}
}
@@ -301,6 +301,7 @@ pub mod eventsource;
pub mod eventtarget;
pub mod extendableevent;
pub mod extendablemessageevent;
pub mod fakexrdevicecontroller;
pub mod file;
pub mod filelist;
pub mod filereader;
@@ -0,0 +1,49 @@
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */

// https://github.com/immersive-web/webxr-test-api/

[Exposed=Window, Pref="dom.webxr.test"]
interface FakeXRDeviceController {
// Creates and attaches a XRFrameOfReference of the type specified to the device.
// void setFrameOfReference(XRFrameOfReferenceType, FakeXRFrameOfReferenceInit);

// // Sets the values to be used for subsequent
// // requestAnimationFrame() callbacks.
// void setViews(Array<FakeXRViewInit> views);

// void setViewerOrigin(FakeXRRigidTransform origin);

// Simulates the user activating the reset pose on a device.
// void simulateResetPose();

// Simulates the platform ending the sessions.
// void simulateForcedEndSessions();

// Simulates devices focusing and blurring sessions.
// void simulateBlurSession(XRSession);
// void simulateFocusSession(XRSession);

// void setBoundsGeometry(Array<FakeXRBoundsPoint> boundsCoodinates)l

// Promise<FakeXRInputSourceController>
// simulateInputSourceConnection(FakeXRInputSourceInit);
};

dictionary FakeXRViewInit {
required XREye eye;
// https://immersive-web.github.io/webxr/#view-projection-matrix
required sequence<float> projectionMatrix;
// https://immersive-web.github.io/webxr/#view-offset
required FakeXRRigidTransform viewOffset;
};

dictionary FakeXRBoundsPoint {
double x; double z;
};

dictionary FakeXRRigidTransform {
required sequence<float> position;
required sequence<float> orientation;
};

0 comments on commit 9a31f6f

Please sign in to comment.
You can’t perform that action at this time.