我使用Cesiumjs获得了一个应用程序,允许用户将图像或文本(转换为图像)添加到画布。
在桌面环境中一切都很好,但在移动设备上我收到以下错误:WebGL: INVALID_VALUE: texImage2D: width or height out of range
研究指出,这是由于画布没有定义宽度或高度。但是,当然,我不知道画布的高度或宽度,因为我接受了用户的内容。
查看浏览器统计信息,我发现桌面Chrome的MAX_TEXTURE_SIZE
为16384,而Android上的Chrome只有4096。
如何使用此信息来解决问题,并为画布提供正确的高度和宽度(如果需要的话),这不会截断图像,但是会在MAX_TEXTURE_SIZE范围内?
答案 0 :(得分:0)
为了在移动设备上获得可接受的尺寸,我不得不使用
width = img.width \ Cesium.defaultValue(window.devicePixelRatio, 1.0);