2017-06-14 263 views
1

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

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

看着浏览器统计,我看到的桌面版Chrome拥有16384 MAX_TEXTURE_SIZE相比,Android版Chrome只有4096

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

+0

@NikolaLukic不幸的是,设置宽度和高度256倍的回报'glCopyTexSubImage2D:坏dimension'错误。我尝试了其他尺寸,但仍然看到相同的错误和行为 – pedalpete

+1

您需要找到具有cesiumjs背景的人。它是从canvas2d到glTexture的吗? webGL的移动版本仍然是冰山一角...把'cesiumjs'像这个问题的标签。 –

回答

0

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