webGL图像画布在移动设备上超出范围错误

时间:2017-06-14 19:02:15

标签: canvas webgl cesium

我使用Cesiumjs获得了一个应用程序,允许用户将图像或文本(转换为图像)添加到画布。 在桌面环境中一切都很好,但在移动设备上我收到以下错误:WebGL: INVALID_VALUE: texImage2D: width or height out of range

研究指出,这是由于画布没有定义宽度或高度。但是,当然,我不知道画布的高度或宽度,因为我接受了用户的内容。

查看浏览器统计信息,我发现桌面Chrome的MAX_TEXTURE_SIZE为16384,而Android上的Chrome只有4096。

如何使用此信息来解决问题,并为画布提供正确的高度和宽度(如果需要的话),这不会截断图像,但是会在MAX_TEXTURE_SIZE范围内?

1 个答案:

答案 0 :(得分:0)

为了在移动设备上获得可接受的尺寸,我不得不使用 width = img.width \ Cesium.defaultValue(window.devicePixelRatio, 1.0);