Skip to content

Commit 6293d1c

Browse files
authored
Merge pull request #2472 from FezVrasta/patch-2
perf: attach webglcontextlost/webglcontextrestored only once
2 parents 2f13cf3 + 0a755eb commit 6293d1c

File tree

1 file changed

+21
-19
lines changed
  • Sources/Rendering/OpenGL/RenderWindow

1 file changed

+21
-19
lines changed

Sources/Rendering/OpenGL/RenderWindow/index.js

Lines changed: 21 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,26 @@ function vtkOpenGLRenderWindow(publicAPI, model) {
9292

9393
publicAPI.getViewNodeFactory = () => model.myFactory;
9494

95+
// prevent default context lost handler
96+
model.canvas.addEventListener(
97+
'webglcontextlost',
98+
(event) => {
99+
event.preventDefault();
100+
},
101+
false
102+
);
103+
104+
model.canvas.addEventListener(
105+
'webglcontextrestored',
106+
publicAPI.restoreContext,
107+
false
108+
);
109+
110+
// Cache the value here as calling it on each frame is expensive
111+
const isImmersiveVrSupported =
112+
navigator.xr !== undefined &&
113+
navigator.xr.isSessionSupported('immersive-vr');
114+
95115
// Auto update style
96116
const previousSize = [0, 0];
97117
function updateWindow() {
@@ -244,10 +264,7 @@ function vtkOpenGLRenderWindow(publicAPI, model) {
244264
let result = null;
245265

246266
// Do we have webxr support
247-
if (
248-
navigator.xr !== undefined &&
249-
navigator.xr.isSessionSupported('immersive-vr')
250-
) {
267+
if (isImmersiveVrSupported) {
251268
publicAPI.invokeHaveVRDisplay();
252269
}
253270

@@ -267,21 +284,6 @@ function vtkOpenGLRenderWindow(publicAPI, model) {
267284
model.canvas.getContext('experimental-webgl', options);
268285
}
269286

270-
// prevent default context lost handler
271-
model.canvas.addEventListener(
272-
'webglcontextlost',
273-
(event) => {
274-
event.preventDefault();
275-
},
276-
false
277-
);
278-
279-
model.canvas.addEventListener(
280-
'webglcontextrestored',
281-
publicAPI.restoreContext,
282-
false
283-
);
284-
285287
return result;
286288
};
287289

0 commit comments

Comments
 (0)