Skip to content

Commit 7044f57

Browse files
fix(ViewService): Workaround for webvr polyfill behavior when using multiple layers
Changed _webvrRequestPresentHMD to pass only a single layer to vrDisplay.requestPresent
1 parent 84661e8 commit 7044f57

File tree

5 files changed

+21
-11
lines changed

5 files changed

+21
-11
lines changed

dist/argon.core.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18086,6 +18086,7 @@ $__System.register('1', ['2', '3', '3d', '4', '9', '10', 'a', '1d', '35', '2d',
1808618086
* Automatically publish the viewport of the element during PresentationMode.EMBEDDED
1808718087
*/
1808818088
this.autoPublishEmbeddedMode = true;
18089+
this._layers = [];
1808918090
this._subviews = [];
1809018091
this._subviewPose = [];
1809118092
this._subviewFrustum = [];
@@ -18318,7 +18319,7 @@ $__System.register('1', ['2', '3', '3d', '4', '9', '10', 'a', '1d', '35', '2d',
1831818319
ViewService.prototype._updateViewport = function (viewport) {
1831918320
var _this = this;
1832018321
var viewportJSON = JSON.stringify(viewport);
18321-
if (this.layers && this.autoStyleLayerElements) {
18322+
if (this._layers.length && this.autoStyleLayerElements) {
1832218323
requestAnimationFrame(function () {
1832318324
var zIndex = -_this._layers.length;
1832418325
for (var _i = 0, _a = _this._layers; _i < _a.length; _i++) {
@@ -18914,7 +18915,9 @@ $__System.register('1', ['2', '3', '3d', '4', '9', '10', 'a', '1d', '35', '2d',
1891418915
DeviceService.prototype._webvrRequestPresentHMD = function () {
1891518916
if (this._vrDisplay) {
1891618917
var element = this.viewService.element;
18917-
var layers = this.viewService.layers || [{ source: element.querySelector('canvas') || element.lastElementChild }];
18918+
var layers = [{
18919+
source: this.viewService.layers[0] && this.viewService.layers[0].source || element.querySelector('canvas') || element.lastElementChild
18920+
}];
1891818921
return this._vrDisplay.requestPresent(layers).catch(function (e) {
1891918922
throw e;
1892018923
});

dist/argon.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23666,6 +23666,7 @@ $__System.register('1', ['2', '3', '3d', '4', '9', '10', 'a', '1d', '35', '2d',
2366623666
* Automatically publish the viewport of the element during PresentationMode.EMBEDDED
2366723667
*/
2366823668
this.autoPublishEmbeddedMode = true;
23669+
this._layers = [];
2366923670
this._subviews = [];
2367023671
this._subviewPose = [];
2367123672
this._subviewFrustum = [];
@@ -23898,7 +23899,7 @@ $__System.register('1', ['2', '3', '3d', '4', '9', '10', 'a', '1d', '35', '2d',
2389823899
ViewService.prototype._updateViewport = function (viewport) {
2389923900
var _this = this;
2390023901
var viewportJSON = JSON.stringify(viewport);
23901-
if (this.layers && this.autoStyleLayerElements) {
23902+
if (this._layers.length && this.autoStyleLayerElements) {
2390223903
requestAnimationFrame(function () {
2390323904
var zIndex = -_this._layers.length;
2390423905
for (var _i = 0, _a = _this._layers; _i < _a.length; _i++) {
@@ -24494,7 +24495,9 @@ $__System.register('1', ['2', '3', '3d', '4', '9', '10', 'a', '1d', '35', '2d',
2449424495
DeviceService.prototype._webvrRequestPresentHMD = function () {
2449524496
if (this._vrDisplay) {
2449624497
var element = this.viewService.element;
24497-
var layers = this.viewService.layers || [{ source: element.querySelector('canvas') || element.lastElementChild }];
24498+
var layers = [{
24499+
source: this.viewService.layers[0] && this.viewService.layers[0].source || element.querySelector('canvas') || element.lastElementChild
24500+
}];
2449824501
return this._vrDisplay.requestPresent(layers).catch(function (e) {
2449924502
throw e;
2450024503
});

dist/argon.min.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/device.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -564,8 +564,12 @@ export class DeviceService {
564564
if (this._vrDisplay) {
565565
const element = this.viewService.element;
566566
const layers:VRLayer&{}[] =
567-
this.viewService.layers ||
568-
[{source:element.querySelector('canvas') || <HTMLCanvasElement>element.lastElementChild}];
567+
[{
568+
source:
569+
this.viewService.layers[0] && this.viewService.layers[0].source ||
570+
element.querySelector('canvas') ||
571+
<HTMLCanvasElement>element.lastElementChild
572+
}];
569573
return this._vrDisplay.requestPresent(layers).catch((e)=>{
570574
throw e;
571575
});

src/view.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,7 @@ export class ViewService {
212212
});
213213
}
214214

215-
private _layers:{source:HTMLElement}[]
215+
private _layers:{source:HTMLElement}[] = [];
216216

217217
public setLayers(layers:{source:HTMLElement}[]) {
218218
if (this._layers) {
@@ -337,8 +337,8 @@ export class ViewService {
337337
// Updates the element, if necessary, and raise a view change event
338338
private _updateViewport(viewport:CanvasViewport) {
339339
const viewportJSON = JSON.stringify(viewport);
340-
341-
if (this.layers && this.autoStyleLayerElements) {
340+
341+
if (this._layers.length && this.autoStyleLayerElements) {
342342
requestAnimationFrame(() => {
343343
let zIndex = -this._layers.length;
344344
for (const layer of this._layers) {

0 commit comments

Comments
 (0)