Files
nothoughts/node_modules/pixi.js/lib/utils/browser/isWebGLSupported.js
2025-08-04 18:57:35 +02:00

40 lines
1.2 KiB
JavaScript

'use strict';
var adapter = require('../../environment/adapter.js');
var AbstractRenderer = require('../../rendering/renderers/shared/system/AbstractRenderer.js');
"use strict";
let _isWebGLSupported;
function isWebGLSupported(failIfMajorPerformanceCaveat) {
if (_isWebGLSupported !== void 0)
return _isWebGLSupported;
_isWebGLSupported = (() => {
const contextOptions = {
stencil: true,
failIfMajorPerformanceCaveat: failIfMajorPerformanceCaveat ?? AbstractRenderer.AbstractRenderer.defaultOptions.failIfMajorPerformanceCaveat
};
try {
if (!adapter.DOMAdapter.get().getWebGLRenderingContext()) {
return false;
}
const canvas = adapter.DOMAdapter.get().createCanvas();
let gl = canvas.getContext("webgl", contextOptions);
const success = !!gl?.getContextAttributes()?.stencil;
if (gl) {
const loseContext = gl.getExtension("WEBGL_lose_context");
if (loseContext) {
loseContext.loseContext();
}
}
gl = null;
return success;
} catch (e) {
return false;
}
})();
return _isWebGLSupported;
}
exports.isWebGLSupported = isWebGLSupported;
//# sourceMappingURL=isWebGLSupported.js.map