首页 > 解决方案 > 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 更新中断。我们如何解决这个问题?

标签: macossafaripixi.js

解决方案


原来我们不得不强制使用 webGL1。感谢 PIXI 论坛的 Exca

const isSafari = window.safari !== undefined;
if(isSafari){
    PIXI.settings.PREFER_ENV = PIXI.ENV.WEBGL;
}

推荐阅读