macos - PIXI.autoDetectRenderer TypeError:gl.getInternalformatParameter 不是函数
问题描述
尝试在 Safari 14.1 中运行 PIXI.autoDetectRenderer 时,我们收到以下错误
[Error] Unhandled Promise Rejection: TypeError: gl.getInternalformatParameter is not a function. (In 'gl.getInternalformatParameter(gl.RENDERBUFFER, gl.RGBA8, gl.SAMPLES)', 'gl.getInternalformatParameter' is undefined)
(anonymous function) (main.c39d6dcf.js:27763)
(anonymous function) (main.c39d6dcf.js:21272)
(anonymous function) (main.c39d6dcf.js:27454)
(anonymous function) (main.c39d6dcf.js:27467)
Renderer (main.c39d6dcf.js:33069)
(anonymous function)) (main.c39d6dcf.js:33104)
PixiWorld (main.c39d6dcf.js:92750)
init (main.c39d6dcf.js:94076)
init
active (main.c39d6dcf.js:56402)
K (main.c39d6dcf.js:56314:675)
na (main.c39d6dcf.js:56317:376)
(anonymous function) (main.c39d6dcf.js:56316:788)
(anonymous function)
(anonymous function)) (main.c39d6dcf.js:56314:1641)
promiseReactionJob
这是我们使用的代码
this.renderer = PIXI.autoDetectRenderer(
{width: App.WIDTH,
height: App.HEIGHT,
backgroundColor: 0x0b3a21,
view:document.getElementsByTagName("canvas")[0] as HTMLCanvasElement | undefined}
);
我们使用了 pixi 5.3.3
这曾经工作正常,但与最新的 safari 更新中断。我们如何解决这个问题?
解决方案
原来我们不得不强制使用 webGL1。感谢 PIXI 论坛的 Exca
const isSafari = window.safari !== undefined;
if(isSafari){
PIXI.settings.PREFER_ENV = PIXI.ENV.WEBGL;
}
推荐阅读
- c++ - 如何仅替换 regex_search 的第一个匹配项?
- javascript - 我怎样才能检测到“去”到同一条路线?
- sql - 在临时表中创建动态查询,而不是硬编码联合语句
- angular - CORS 配置 Flask、Angular 和 NGINX
- python - 条件numpy乘法的向量化实现
- r - 在ggplot条形图中每个x轴内的多个条形之间添加显着性星号
- html - 元素的额外高度从何而来?
- google-smart-home - 如何为不同的项目使用相同的特征
- python - 使用 Pymoo 重新启动解决方案失败
- windows - Windows 10 C# 应用程序将无法运行说 CLRWrapper 缺少依赖项