mirror of
https://github.com/servo/servo.git
synced 2025-08-10 16:05:43 +01:00
Update web-platform-tests to revision bf42dca1ce568ce559d5a4cad507239035b91dcb
This commit is contained in:
parent
91d2bd3d64
commit
20e57b5c74
81 changed files with 3616 additions and 289 deletions
|
@ -282,8 +282,21 @@ class MockRuntime {
|
|||
}
|
||||
|
||||
simulateVisibilityChange(visibilityState) {
|
||||
// TODO(https://crbug.com/982099): Chrome currently does not have a way for
|
||||
// devices to bubble up any form of visibilityChange.
|
||||
let mojoState = null;
|
||||
switch(visibilityState) {
|
||||
case "visible":
|
||||
mojoState = device.mojom.XRVisibilityState.VISIBLE;
|
||||
break;
|
||||
case "visible-blurred":
|
||||
mojoState = device.mojom.XRVisibilityState.VISIBLE_BLURRED;
|
||||
break;
|
||||
case "hidden":
|
||||
mojoState = device.mojom.XRVisibilityState.HIDDEN;
|
||||
break;
|
||||
}
|
||||
if (mojoState) {
|
||||
this.sessionClient_.onVisibilityStateChanged(mojoState);
|
||||
}
|
||||
}
|
||||
|
||||
setBoundsGeometry(bounds) {
|
||||
|
@ -403,28 +416,37 @@ class MockRuntime {
|
|||
// This function converts between the matrix provided by the WebXR test API
|
||||
// and the internal data representation.
|
||||
getEye(fakeXRViewInit) {
|
||||
let m = fakeXRViewInit.projectionMatrix;
|
||||
let fov = null;
|
||||
|
||||
function toDegrees(tan) {
|
||||
return Math.atan(tan) * 180 / Math.PI;
|
||||
}
|
||||
if (fakeXRViewInit.fieldOfView) {
|
||||
fov = {
|
||||
upDegrees: fakeXRViewInit.fieldOfView.upDegrees,
|
||||
downDegrees: fakeXRViewInit.fieldOfView.downDegrees,
|
||||
leftDegrees: fakeXRViewInit.fieldOfView.leftDegrees,
|
||||
rightDegrees: fakeXRViewInit.fieldOfView.rightDegrees
|
||||
};
|
||||
} else {
|
||||
let m = fakeXRViewInit.projectionMatrix;
|
||||
|
||||
let xScale = m[0];
|
||||
let yScale = m[5];
|
||||
let near = m[14] / (m[10] - 1);
|
||||
let far = m[14] / (m[10] - 1);
|
||||
let leftTan = (1 - m[8]) / m[0];
|
||||
let rightTan = (1 + m[8]) / m[0];
|
||||
let upTan = (1 + m[9]) / m[5];
|
||||
let downTan = (1 - m[9]) / m[5];
|
||||
function toDegrees(tan) {
|
||||
return Math.atan(tan) * 180 / Math.PI;
|
||||
}
|
||||
|
||||
return {
|
||||
fieldOfView: {
|
||||
let leftTan = (1 - m[8]) / m[0];
|
||||
let rightTan = (1 + m[8]) / m[0];
|
||||
let upTan = (1 + m[9]) / m[5];
|
||||
let downTan = (1 - m[9]) / m[5];
|
||||
|
||||
fov = {
|
||||
upDegrees: toDegrees(upTan),
|
||||
downDegrees: toDegrees(downTan),
|
||||
leftDegrees: toDegrees(leftTan),
|
||||
rightDegrees: toDegrees(rightTan)
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
return {
|
||||
fieldOfView: fov,
|
||||
headFromEye: composeGFXTransform(fakeXRViewInit.viewOffset),
|
||||
renderWidth: fakeXRViewInit.resolution.width,
|
||||
renderHeight: fakeXRViewInit.resolution.height
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue