From ad860c5938aa6167d839c7661523b7a499afa069 Mon Sep 17 00:00:00 2001 From: ArthurSonzogni Date: Wed, 17 Dec 2025 10:41:10 +0100 Subject: [PATCH] Fix webgl addons. --- examples/index.mjs | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/examples/index.mjs b/examples/index.mjs index bd96a70a3..1b157d126 100644 --- a/examples/index.mjs +++ b/examples/index.mjs @@ -9,6 +9,16 @@ if ("serviceWorker" in navigator && !window.crossOriginIsolated) { window.location.reload(); // Reload to ensure the COOP/COEP headers are set. } +const webgl_support = () => { + try { + var canvas = document.createElement('canvas'); + return !!window.WebGLRenderingContext && + (canvas.getContext('webgl') || canvas.getContext('experimental-webgl')); + } catch(e) { + return false; + } +}; + const example_list = "@EXAMPLES@".split(";"); const url_search_params = new URLSearchParams(window.location.search); @@ -31,10 +41,13 @@ const term = new xterm.Terminal(); term.options.scrollback = 0; term.open(term_element); const fit_addon = new xterm_addon_fit.FitAddon(); -const webgl_addon = new xterm_addon_webgl.WebglAddon(); -term.loadAddon(webgl_addon); term.loadAddon(fit_addon); +if (webgl_support()) { + const webgl_addon = new xterm_addon_webgl.WebglAddon(); + term.loadAddon(webgl_addon); +} + const stdin_buffer = []; const stdout_buffer = []; const stderr_buffer = [];