检测 WebGL 是否可用
const canvas = document.getElementById("GameCanvas");const contexts = ["webgl2", "webgl", "experimental-webgl"];let gl = null;
for (const type of contexts) { gl = canvas.getContext(type); if (gl) break;}
if (!gl) { console.log("该浏览器不支持WebGL");}
监听 WebGL webglcontextlost
const canvas = document.getElementById("GameCanvas");canvas.addEventListener( "webglcontextlost", function (e) { console.log("webglcontextlost", e); }, false);
模拟 WebGL lost
const canvas = document.getElementById("GameCanvas");const contexts = ["webgl2", "webgl", "experimental-webgl"];let gl = null;
for (const type of contexts) { gl = canvas.getContext(type); if (gl) break;}
if (!gl) { console.log("该浏览器不支持WebGL");} else { var lose_context = gl.getExtension("WEBGL_lose_context"); // 使用 var 变量提升 lose_context.loseContext();}
监听 webglcontextrestored
const canvas = document.getElementById("GameCanvas");canvas.addEventListener( "webglcontextrestored", (e) => { console.log("webglcontextrestored", e); }, false);
模拟 WebGL restored
// 必须先使用前面模拟webgl lost方法lose_context.restoreContext();