2017-06-14 266 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);