12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- var Utils = {
- createLocateRewrite: function(execName) {
- function rw(path) {
- if (path.endsWith('.worker.js')) {
- return execName + '.worker.js';
- } else if (path.endsWith('.js')) {
- return execName + '.js';
- } else if (path.endsWith('.wasm')) {
- return execName + '.wasm';
- }
- }
- return rw;
- },
- createInstantiatePromise: function(wasmLoader) {
- function instantiateWasm(imports, onSuccess) {
- wasmLoader.then(function(xhr) {
- WebAssembly.instantiate(xhr.response, imports).then(function(result) {
- onSuccess(result['instance'], result['module']);
- });
- });
- wasmLoader = null;
- return {};
- };
- return instantiateWasm;
- },
- findCanvas: function() {
- var nodes = document.getElementsByTagName('canvas');
- if (nodes.length && nodes[0] instanceof HTMLCanvasElement) {
- return nodes[0];
- }
- throw new Error("No canvas found");
- },
- isWebGLAvailable: function(majorVersion = 1) {
- var testContext = false;
- try {
- var testCanvas = document.createElement('canvas');
- if (majorVersion === 1) {
- testContext = testCanvas.getContext('webgl') || testCanvas.getContext('experimental-webgl');
- } else if (majorVersion === 2) {
- testContext = testCanvas.getContext('webgl2') || testCanvas.getContext('experimental-webgl2');
- }
- } catch (e) {}
- return !!testContext;
- }
- };
|