49 lines
2.7 KiB
JavaScript
49 lines
2.7 KiB
JavaScript
shadow$provide.module$node_modules$pixi_DOT_js$lib$rendering$renderers$autoDetectRenderer = function(global, require, module, exports) {
|
|
var isWebGLSupported = require("module$node_modules$pixi_DOT_js$lib$utils$browser$isWebGLSupported"), isWebGPUSupported = require("module$node_modules$pixi_DOT_js$lib$utils$browser$isWebGPUSupported"), AbstractRenderer = require("module$node_modules$pixi_DOT_js$lib$rendering$renderers$shared$system$AbstractRenderer");
|
|
"use strict";
|
|
const renderPriority = ["webgl", "webgpu", "canvas"];
|
|
exports.autoDetectRenderer = async function(options) {
|
|
let preferredOrder = [];
|
|
options.preference ? Array.isArray(options.preference) ? preferredOrder = options.preference.slice() : (preferredOrder.push(options.preference), renderPriority.forEach(item => {
|
|
item !== options.preference && preferredOrder.push(item);
|
|
})) : preferredOrder = renderPriority.slice();
|
|
var finalOptions = {};
|
|
for (let i = 0; i < preferredOrder.length; i++) {
|
|
const rendererType = preferredOrder[i];
|
|
if ("webgpu" === rendererType && await isWebGPUSupported.isWebGPUSupported()) {
|
|
({WebGPURenderer:finalOptions} = await Promise.resolve().then(function() {
|
|
return require("module$node_modules$pixi_DOT_js$lib$rendering$renderers$gpu$WebGPURenderer");
|
|
}));
|
|
var RendererClass = finalOptions;
|
|
finalOptions = {...options, ...options.webgpu};
|
|
break;
|
|
} else if ("webgl" === rendererType && isWebGLSupported.isWebGLSupported(options.failIfMajorPerformanceCaveat ?? AbstractRenderer.AbstractRenderer.defaultOptions.failIfMajorPerformanceCaveat)) {
|
|
({WebGLRenderer:finalOptions} = await Promise.resolve().then(function() {
|
|
return require("module$node_modules$pixi_DOT_js$lib$rendering$renderers$gl$WebGLRenderer");
|
|
}));
|
|
RendererClass = finalOptions;
|
|
finalOptions = {...options, ...options.webgl};
|
|
break;
|
|
} else if ("canvas" === rendererType) {
|
|
({CanvasRenderer:finalOptions} = await Promise.resolve().then(function() {
|
|
return require("module$node_modules$pixi_DOT_js$lib$rendering$renderers$canvas$CanvasRenderer");
|
|
}));
|
|
RendererClass = finalOptions;
|
|
finalOptions = {...options, ...options.canvasOptions};
|
|
break;
|
|
}
|
|
}
|
|
delete finalOptions.webgpu;
|
|
delete finalOptions.webgl;
|
|
delete finalOptions.canvasOptions;
|
|
if (!RendererClass) {
|
|
throw Error("No available renderer for the current environment");
|
|
}
|
|
RendererClass = new RendererClass();
|
|
await RendererClass.init(finalOptions);
|
|
return RendererClass;
|
|
};
|
|
};
|
|
|
|
//# sourceMappingURL=module$node_modules$pixi_DOT_js$lib$rendering$renderers$autoDetectRenderer.js.map
|