Skip to content

Commit a9ad12a

Browse files
committed
docs(webxr): update WebXR examples for refactored XR rendering approach
Updates WebXR examples for refactoring to `vtkWebXRRenderWindowHelper`.
1 parent a08344a commit a9ad12a

File tree

9 files changed

+71
-63
lines changed

9 files changed

+71
-63
lines changed

Examples/Applications/GeometryViewer/index.js

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,12 @@ import vtkScalarBarActor from '@kitware/vtk.js/Rendering/Core/ScalarBarActor';
1414
import vtkColorMaps from '@kitware/vtk.js/Rendering/Core/ColorTransferFunction/ColorMaps';
1515
import vtkColorTransferFunction from '@kitware/vtk.js/Rendering/Core/ColorTransferFunction';
1616
import vtkFullScreenRenderWindow from '@kitware/vtk.js/Rendering/Misc/FullScreenRenderWindow';
17+
import vtkWebXRRenderWindowHelper from '@kitware/vtk.js/Rendering/WebXR/RenderWindowHelper';
1718
import vtkMapper from '@kitware/vtk.js/Rendering/Core/Mapper';
1819
import vtkURLExtract from '@kitware/vtk.js/Common/Core/URLExtract';
1920
import vtkXMLPolyDataReader from '@kitware/vtk.js/IO/XML/XMLPolyDataReader';
2021
import vtkFPSMonitor from '@kitware/vtk.js/Interaction/UI/FPSMonitor';
21-
import { XrSessionTypes } from '@kitware/vtk.js/Rendering/OpenGL/RenderWindow/Constants';
22+
import { XrSessionTypes } from '@kitware/vtk.js/Rendering/WebXR/RenderWindowHelper/Constants';
2223

2324
// Force DataAccessHelper to have access to various data source
2425
import '@kitware/vtk.js/IO/Core/DataAccessHelper/HtmlDataAccessHelper';
@@ -36,6 +37,7 @@ let autoInit = true;
3637
let background = [0, 0, 0];
3738
let fullScreenRenderWindow;
3839
let renderWindow;
40+
let xrRenderWindowHelper;
3941
let renderer;
4042
let scalarBarActor;
4143

@@ -162,6 +164,9 @@ function createViewer(container) {
162164
});
163165
renderer = fullScreenRenderWindow.getRenderer();
164166
renderWindow = fullScreenRenderWindow.getRenderWindow();
167+
xrRenderWindowHelper = vtkWebXRRenderWindowHelper.newInstance({
168+
renderWindow: fullScreenRenderWindow.getApiSpecificRenderWindow(),
169+
});
165170
renderWindow.getInteractor().setDesiredUpdateRate(15);
166171

167172
container.appendChild(rootControllerContainer);
@@ -252,7 +257,7 @@ function createPipeline(fileName, fileContents) {
252257

253258
if (
254259
navigator.xr !== undefined &&
255-
fullScreenRenderWindow.getApiSpecificRenderWindow().getXrSupported() &&
260+
xrRenderWindowHelper.getXrSupported() &&
256261
requestedXrSessionType !== null
257262
) {
258263
controlContainer.appendChild(immersionSelector);
@@ -431,17 +436,15 @@ function createPipeline(fileName, fileContents) {
431436

432437
function toggleXR() {
433438
if (immersionSelector.textContent.startsWith('Start')) {
434-
fullScreenRenderWindow
435-
.getApiSpecificRenderWindow()
436-
.startXR(requestedXrSessionType);
439+
xrRenderWindowHelper.startXR(requestedXrSessionType);
437440
immersionSelector.textContent = [
438441
XrSessionTypes.HmdAR,
439442
XrSessionTypes.MobileAR,
440443
].includes(requestedXrSessionType)
441444
? 'Exit AR'
442445
: 'Exit VR';
443446
} else {
444-
fullScreenRenderWindow.getApiSpecificRenderWindow().stopXR();
447+
xrRenderWindowHelper.stopXR();
445448
immersionSelector.textContent = [
446449
XrSessionTypes.HmdAR,
447450
XrSessionTypes.MobileAR,

Examples/Applications/SkyboxViewer/index.js

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,11 @@ import HttpDataAccessHelper from '@kitware/vtk.js/IO/Core/DataAccessHelper/HttpD
1010
import macro from '@kitware/vtk.js/macros';
1111
import vtkDeviceOrientationToCamera from '@kitware/vtk.js/Interaction/Misc/DeviceOrientationToCamera';
1212
import vtkFullScreenRenderWindow from '@kitware/vtk.js/Rendering/Misc/FullScreenRenderWindow';
13+
import vtkWebXRRenderWindowHelper from '@kitware/vtk.js/Rendering/WebXR/RenderWindowHelper';
1314
import vtkSkybox from '@kitware/vtk.js/Rendering/Core/Skybox';
1415
import vtkSkyboxReader from '@kitware/vtk.js/IO/Misc/SkyboxReader';
1516
import vtkURLExtract from '@kitware/vtk.js/Common/Core/URLExtract';
16-
import { XrSessionTypes } from '@kitware/vtk.js/Rendering/OpenGL/RenderWindow/Constants';
17+
import { XrSessionTypes } from '@kitware/vtk.js/Rendering/WebXR/RenderWindowHelper/Constants';
1718

1819
// Force DataAccessHelper to have access to various data source
1920
import '@kitware/vtk.js/IO/Core/DataAccessHelper/HtmlDataAccessHelper';
@@ -157,6 +158,9 @@ function createVisualization(container, mapReader) {
157158
containerStyle: { height: '100%', width: '100%', position: 'absolute' },
158159
});
159160
const renderWindow = fullScreenRenderer.getRenderWindow();
161+
const xrRenderWindowHelper = vtkWebXRRenderWindowHelper.newInstance({
162+
renderWindow: fullScreenRenderer.getApiSpecificRenderWindow(),
163+
});
160164
const mainRenderer = fullScreenRenderer.getRenderer();
161165
const interactor = fullScreenRenderer.getInteractor();
162166
const actor = vtkSkybox.newInstance();
@@ -202,6 +206,7 @@ function createVisualization(container, mapReader) {
202206
// add vr option button if supported
203207
if (
204208
navigator.xr !== undefined &&
209+
xrRenderWindowHelper.getXrSupported() &&
205210
navigator.xr.isSessionSupported('immersive-vr')
206211
) {
207212
const button = document.createElement('button');
@@ -213,12 +218,10 @@ function createVisualization(container, mapReader) {
213218
document.querySelector('body').appendChild(button);
214219
button.addEventListener('click', () => {
215220
if (button.textContent === 'Send To VR') {
216-
fullScreenRenderer
217-
.getApiSpecificRenderWindow()
218-
.startXR(XrSessionTypes.HmdVR);
221+
xrRenderWindowHelper.startXR(XrSessionTypes.HmdVR);
219222
button.textContent = 'Return From VR';
220223
} else {
221-
fullScreenRenderer.getApiSpecificRenderWindow().stopXR();
224+
xrRenderWindowHelper.stopXR();
222225
button.textContent = 'Send To VR';
223226
}
224227
});

Examples/Geometry/AR/index.js

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,12 @@ import vtkActor from '@kitware/vtk.js/Rendering/Core/Actor';
77
import vtkCalculator from '@kitware/vtk.js/Filters/General/Calculator';
88
import vtkConeSource from '@kitware/vtk.js/Filters/Sources/ConeSource';
99
import vtkFullScreenRenderWindow from '@kitware/vtk.js/Rendering/Misc/FullScreenRenderWindow';
10+
import vtkWebXRRenderWindowHelper from '@kitware/vtk.js/Rendering/WebXR/RenderWindowHelper';
1011
import vtkMapper from '@kitware/vtk.js/Rendering/Core/Mapper';
1112
import vtkURLExtract from '@kitware/vtk.js/Common/Core/URLExtract';
1213
import { AttributeTypes } from '@kitware/vtk.js/Common/DataModel/DataSetAttributes/Constants';
1314
import { FieldDataTypes } from '@kitware/vtk.js/Common/DataModel/DataSet/Constants';
14-
import { XrSessionTypes } from '@kitware/vtk.js/Rendering/OpenGL/RenderWindow/Constants';
15+
import { XrSessionTypes } from '@kitware/vtk.js/Rendering/WebXR/RenderWindowHelper/Constants';
1516

1617
// Force DataAccessHelper to have access to various data source
1718
import '@kitware/vtk.js/IO/Core/DataAccessHelper/HtmlDataAccessHelper';
@@ -36,6 +37,9 @@ const fullScreenRenderer = vtkFullScreenRenderWindow.newInstance({
3637
});
3738
const renderer = fullScreenRenderer.getRenderer();
3839
const renderWindow = fullScreenRenderer.getRenderWindow();
40+
const xrRenderWindowHelper = vtkWebXRRenderWindowHelper.newInstance({
41+
renderWindow: fullScreenRenderer.getApiSpecificRenderWindow(),
42+
});
3943

4044
// ----------------------------------------------------------------------------
4145
// Example code
@@ -87,18 +91,14 @@ renderWindow.render();
8791

8892
fullScreenRenderer.addController(controlPanel);
8993
const arbutton = document.querySelector('.arbutton');
90-
arbutton.disabled = !fullScreenRenderer
91-
.getApiSpecificRenderWindow()
92-
.getXrSupported();
94+
arbutton.disabled = !xrRenderWindowHelper.getXrSupported();
9395

9496
arbutton.addEventListener('click', (e) => {
9597
if (arbutton.textContent === 'Start AR') {
96-
fullScreenRenderer
97-
.getApiSpecificRenderWindow()
98-
.startXR(requestedXrSessionType);
98+
xrRenderWindowHelper.startXR(requestedXrSessionType);
9999
arbutton.textContent = 'Exit AR';
100100
} else {
101-
fullScreenRenderer.getApiSpecificRenderWindow().stopXR();
101+
xrRenderWindowHelper.stopXR();
102102
arbutton.textContent = 'Start AR';
103103
}
104104
});

Examples/Geometry/LookingGlass/index.js

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,11 @@ import vtkActor from '@kitware/vtk.js/Rendering/Core/Actor';
1010
import vtkCalculator from '@kitware/vtk.js/Filters/General/Calculator';
1111
import vtkConeSource from '@kitware/vtk.js/Filters/Sources/ConeSource';
1212
import vtkFullScreenRenderWindow from '@kitware/vtk.js/Rendering/Misc/FullScreenRenderWindow';
13+
import vtkWebXRRenderWindowHelper from '@kitware/vtk.js/Rendering/WebXR/RenderWindowHelper';
1314
import vtkMapper from '@kitware/vtk.js/Rendering/Core/Mapper';
1415
import { AttributeTypes } from '@kitware/vtk.js/Common/DataModel/DataSetAttributes/Constants';
1516
import { FieldDataTypes } from '@kitware/vtk.js/Common/DataModel/DataSet/Constants';
16-
import { XrSessionTypes } from 'vtk.js/Sources/Rendering/OpenGL/RenderWindow/Constants';
17+
import { XrSessionTypes } from '@kitware/vtk.js/Rendering/WebXR/RenderWindowHelper/Constants';
1718

1819
// Force DataAccessHelper to have access to various data source
1920
import '@kitware/vtk.js/IO/Core/DataAccessHelper/HtmlDataAccessHelper';
@@ -42,6 +43,9 @@ const fullScreenRenderer = vtkFullScreenRenderWindow.newInstance({
4243
});
4344
const renderer = fullScreenRenderer.getRenderer();
4445
const renderWindow = fullScreenRenderer.getRenderWindow();
46+
const xrRenderWindowHelper = vtkWebXRRenderWindowHelper.newInstance({
47+
renderWindow: fullScreenRenderer.getApiSpecificRenderWindow(),
48+
});
4549

4650
// ----------------------------------------------------------------------------
4751
// Example code
@@ -110,12 +114,10 @@ resolutionChange.addEventListener('input', (e) => {
110114

111115
vrbutton.addEventListener('click', (e) => {
112116
if (vrbutton.textContent === 'Send To Looking Glass') {
113-
fullScreenRenderer
114-
.getApiSpecificRenderWindow()
115-
.startXR(XrSessionTypes.LookingGlassVR);
117+
xrRenderWindowHelper.startXR(XrSessionTypes.LookingGlassVR);
116118
vrbutton.textContent = 'Return From Looking Glass';
117119
} else {
118-
fullScreenRenderer.getApiSpecificRenderWindow().stopXR();
120+
xrRenderWindowHelper.stopXR();
119121
vrbutton.textContent = 'Send To Looking Glass';
120122
}
121123
});

Examples/Geometry/VR/index.js

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,11 @@ import vtkActor from '@kitware/vtk.js/Rendering/Core/Actor';
1010
import vtkCalculator from '@kitware/vtk.js/Filters/General/Calculator';
1111
import vtkConeSource from '@kitware/vtk.js/Filters/Sources/ConeSource';
1212
import vtkFullScreenRenderWindow from '@kitware/vtk.js/Rendering/Misc/FullScreenRenderWindow';
13+
import vtkWebXRRenderWindowHelper from '@kitware/vtk.js/Rendering/WebXR/RenderWindowHelper';
1314
import vtkMapper from '@kitware/vtk.js/Rendering/Core/Mapper';
1415
import { AttributeTypes } from '@kitware/vtk.js/Common/DataModel/DataSetAttributes/Constants';
1516
import { FieldDataTypes } from '@kitware/vtk.js/Common/DataModel/DataSet/Constants';
16-
import { XrSessionTypes } from '@kitware/vtk.js/Rendering/OpenGL/RenderWindow/Constants';
17+
import { XrSessionTypes } from '@kitware/vtk.js/Rendering/WebXR/RenderWindowHelper/Constants';
1718

1819
// Force DataAccessHelper to have access to various data source
1920
import '@kitware/vtk.js/IO/Core/DataAccessHelper/HtmlDataAccessHelper';
@@ -46,6 +47,9 @@ const fullScreenRenderer = vtkFullScreenRenderWindow.newInstance({
4647
});
4748
const renderer = fullScreenRenderer.getRenderer();
4849
const renderWindow = fullScreenRenderer.getRenderWindow();
50+
const XRHelper = vtkWebXRRenderWindowHelper.newInstance({
51+
renderWindow: fullScreenRenderer.getApiSpecificRenderWindow(),
52+
});
4953

5054
// ----------------------------------------------------------------------------
5155
// Example code
@@ -114,12 +118,10 @@ resolutionChange.addEventListener('input', (e) => {
114118

115119
vrbutton.addEventListener('click', (e) => {
116120
if (vrbutton.textContent === 'Send To VR') {
117-
fullScreenRenderer
118-
.getApiSpecificRenderWindow()
119-
.startXR(XrSessionTypes.HmdVR);
121+
XRHelper.startXR(XrSessionTypes.HmdVR);
120122
vrbutton.textContent = 'Return From VR';
121123
} else {
122-
fullScreenRenderer.getApiSpecificRenderWindow().stopXR();
124+
XRHelper.stopXR();
123125
vrbutton.textContent = 'Send To VR';
124126
}
125127
});

Examples/Volume/WebXRChestCTBlendedCVR/index.js

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import '@kitware/vtk.js/IO/Core/DataAccessHelper/JSZipDataAccessHelper';
1010

1111
import vtkColorTransferFunction from '@kitware/vtk.js/Rendering/Core/ColorTransferFunction';
1212
import vtkFullScreenRenderWindow from '@kitware/vtk.js/Rendering/Misc/FullScreenRenderWindow';
13+
import vtkWebXRRenderWindowHelper from '@kitware/vtk.js/Rendering/WebXR/RenderWindowHelper';
1314
import HttpDataAccessHelper from '@kitware/vtk.js/IO/Core/DataAccessHelper/HttpDataAccessHelper';
1415
import vtkPiecewiseFunction from '@kitware/vtk.js/Common/DataModel/PiecewiseFunction';
1516
import vtkURLExtract from '@kitware/vtk.js/Common/Core/URLExtract';
@@ -18,7 +19,7 @@ import vtkVolumeMapper from '@kitware/vtk.js/Rendering/Core/VolumeMapper';
1819
import vtkXMLImageDataReader from '@kitware/vtk.js/IO/XML/XMLImageDataReader';
1920
import vtkImageReslice from '@kitware/vtk.js/Imaging/Core/ImageReslice';
2021
import vtkMath from '@kitware/vtk.js/Common/Core/Math';
21-
import { XrSessionTypes } from '@kitware/vtk.js/Rendering/OpenGL/RenderWindow/Constants';
22+
import { XrSessionTypes } from '@kitware/vtk.js/Rendering/WebXR/RenderWindowHelper/Constants';
2223

2324
import './WebXRVolume.module.css';
2425

@@ -32,6 +33,9 @@ const fullScreenRenderer = vtkFullScreenRenderWindow.newInstance({
3233
});
3334
const renderer = fullScreenRenderer.getRenderer();
3435
const renderWindow = fullScreenRenderer.getRenderWindow();
36+
const xrRenderWindowHelper = vtkWebXRRenderWindowHelper.newInstance({
37+
renderWindow: fullScreenRenderer.getApiSpecificRenderWindow(),
38+
});
3539

3640
// ----------------------------------------------------------------------------
3741
// Set up pipeline objects
@@ -118,10 +122,7 @@ HttpDataAccessHelper.fetchBinary(fileURL).then((fileContents) => {
118122
let enterText = 'XR not available!';
119123
const exitText = 'Exit XR';
120124
xrButton.textContent = enterText;
121-
if (
122-
navigator.xr !== undefined &&
123-
fullScreenRenderer.getApiSpecificRenderWindow().getXrSupported()
124-
) {
125+
if (navigator.xr !== undefined && xrRenderWindowHelper.getXrSupported()) {
125126
navigator.xr.isSessionSupported('immersive-ar').then((arSupported) => {
126127
if (arSupported) {
127128
xrSessionType = XrSessionTypes.MobileAR;
@@ -140,10 +141,10 @@ HttpDataAccessHelper.fetchBinary(fileURL).then((fileContents) => {
140141
}
141142
xrButton.addEventListener('click', () => {
142143
if (xrButton.textContent === enterText) {
143-
fullScreenRenderer.getApiSpecificRenderWindow().startXR(xrSessionType);
144+
xrRenderWindowHelper.startXR(xrSessionType);
144145
xrButton.textContent = exitText;
145146
} else {
146-
fullScreenRenderer.getApiSpecificRenderWindow().stopXR();
147+
xrRenderWindowHelper.stopXR();
147148
xrButton.textContent = enterText;
148149
}
149150
});

Examples/Volume/WebXRHeadFullVolumeCVR/index.js

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import '@kitware/vtk.js/IO/Core/DataAccessHelper/JSZipDataAccessHelper';
1010

1111
import vtkColorTransferFunction from '@kitware/vtk.js/Rendering/Core/ColorTransferFunction';
1212
import vtkFullScreenRenderWindow from '@kitware/vtk.js/Rendering/Misc/FullScreenRenderWindow';
13+
import vtkWebXRRenderWindowHelper from '@kitware/vtk.js/Rendering/WebXR/RenderWindowHelper';
1314
import HttpDataAccessHelper from '@kitware/vtk.js/IO/Core/DataAccessHelper/HttpDataAccessHelper';
1415
import vtkPiecewiseFunction from '@kitware/vtk.js/Common/DataModel/PiecewiseFunction';
1516
import vtkURLExtract from '@kitware/vtk.js/Common/Core/URLExtract';
@@ -18,7 +19,7 @@ import vtkVolumeMapper from '@kitware/vtk.js/Rendering/Core/VolumeMapper';
1819
import vtkXMLImageDataReader from '@kitware/vtk.js/IO/XML/XMLImageDataReader';
1920
import vtkImageReslice from '@kitware/vtk.js/Imaging/Core/ImageReslice';
2021
import vtkMath from '@kitware/vtk.js/Common/Core/Math';
21-
import { XrSessionTypes } from '@kitware/vtk.js/Rendering/OpenGL/RenderWindow/Constants';
22+
import { XrSessionTypes } from '@kitware/vtk.js/Rendering/WebXR/RenderWindowHelper/Constants';
2223

2324
import './WebXRVolume.module.css';
2425

@@ -32,6 +33,9 @@ const fullScreenRenderer = vtkFullScreenRenderWindow.newInstance({
3233
});
3334
const renderer = fullScreenRenderer.getRenderer();
3435
const renderWindow = fullScreenRenderer.getRenderWindow();
36+
const xrRenderWindowHelper = vtkWebXRRenderWindowHelper.newInstance({
37+
renderWindow: fullScreenRenderer.getApiSpecificRenderWindow(),
38+
});
3539

3640
// ----------------------------------------------------------------------------
3741
// Set up pipeline objects
@@ -149,10 +153,7 @@ HttpDataAccessHelper.fetchBinary(fileURL).then((fileContents) => {
149153
let enterText = 'XR not available!';
150154
const exitText = 'Exit XR';
151155
xrButton.textContent = enterText;
152-
if (
153-
navigator.xr !== undefined &&
154-
fullScreenRenderer.getApiSpecificRenderWindow().getXrSupported()
155-
) {
156+
if (navigator.xr !== undefined && xrRenderWindowHelper.getXrSupported()) {
156157
enterText =
157158
requestedXrSessionType === XrSessionTypes.MobileAR
158159
? 'Start AR'
@@ -161,12 +162,10 @@ HttpDataAccessHelper.fetchBinary(fileURL).then((fileContents) => {
161162
}
162163
xrButton.addEventListener('click', () => {
163164
if (xrButton.textContent === enterText) {
164-
fullScreenRenderer
165-
.getApiSpecificRenderWindow()
166-
.startXR(requestedXrSessionType);
165+
xrRenderWindowHelper.startXR(requestedXrSessionType);
167166
xrButton.textContent = exitText;
168167
} else {
169-
fullScreenRenderer.getApiSpecificRenderWindow().stopXR();
168+
xrRenderWindowHelper.stopXR();
170169
xrButton.textContent = enterText;
171170
}
172171
});

Examples/Volume/WebXRHeadGradientCVR/index.js

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import '@kitware/vtk.js/IO/Core/DataAccessHelper/JSZipDataAccessHelper';
1010

1111
import vtkColorTransferFunction from '@kitware/vtk.js/Rendering/Core/ColorTransferFunction';
1212
import vtkFullScreenRenderWindow from '@kitware/vtk.js/Rendering/Misc/FullScreenRenderWindow';
13+
import vtkWebXRRenderWindowHelper from '@kitware/vtk.js/Rendering/WebXR/RenderWindowHelper';
1314
import HttpDataAccessHelper from '@kitware/vtk.js/IO/Core/DataAccessHelper/HttpDataAccessHelper';
1415
import vtkPiecewiseFunction from '@kitware/vtk.js/Common/DataModel/PiecewiseFunction';
1516
import vtkURLExtract from '@kitware/vtk.js/Common/Core/URLExtract';
@@ -18,7 +19,7 @@ import vtkVolumeMapper from '@kitware/vtk.js/Rendering/Core/VolumeMapper';
1819
import vtkXMLImageDataReader from '@kitware/vtk.js/IO/XML/XMLImageDataReader';
1920
import vtkImageReslice from '@kitware/vtk.js/Imaging/Core/ImageReslice';
2021
import vtkMath from '@kitware/vtk.js/Common/Core/Math';
21-
import { XrSessionTypes } from '@kitware/vtk.js/Rendering/OpenGL/RenderWindow/Constants';
22+
import { XrSessionTypes } from '@kitware/vtk.js/Rendering/WebXR/RenderWindowHelper/Constants';
2223

2324
import './WebXRVolume.module.css';
2425

@@ -32,6 +33,9 @@ const fullScreenRenderer = vtkFullScreenRenderWindow.newInstance({
3233
});
3334
const renderer = fullScreenRenderer.getRenderer();
3435
const renderWindow = fullScreenRenderer.getRenderWindow();
36+
const xrRenderWindowHelper = vtkWebXRRenderWindowHelper.newInstance({
37+
renderWindow: fullScreenRenderer.getApiSpecificRenderWindow(),
38+
});
3539

3640
// ----------------------------------------------------------------------------
3741
// Set up pipeline objects
@@ -146,10 +150,7 @@ HttpDataAccessHelper.fetchBinary(fileURL).then((fileContents) => {
146150
let enterText = 'XR not available!';
147151
const exitText = 'Exit XR';
148152
xrButton.textContent = enterText;
149-
if (
150-
navigator.xr !== undefined &&
151-
fullScreenRenderer.getApiSpecificRenderWindow().getXrSupported()
152-
) {
153+
if (navigator.xr !== undefined && xrRenderWindowHelper.getXrSupported()) {
153154
enterText =
154155
requestedXrSessionType === XrSessionTypes.MobileAR
155156
? 'Start AR'
@@ -158,12 +159,10 @@ HttpDataAccessHelper.fetchBinary(fileURL).then((fileContents) => {
158159
}
159160
xrButton.addEventListener('click', () => {
160161
if (xrButton.textContent === enterText) {
161-
fullScreenRenderer
162-
.getApiSpecificRenderWindow()
163-
.startXR(requestedXrSessionType);
162+
xrRenderWindowHelper.startXR(requestedXrSessionType);
164163
xrButton.textContent = exitText;
165164
} else {
166-
fullScreenRenderer.getApiSpecificRenderWindow().stopXR();
165+
xrRenderWindowHelper.stopXR();
167166
xrButton.textContent = enterText;
168167
}
169168
});

0 commit comments

Comments
 (0)