initWithData用Texture2D.PixelFormat.I8有的图像不能显示

用Texture2D.initWithData()显示图像,基本的调用方法就是 texture2D.initWithData(data, format, nImageWidth, nImageHeight); 其中data是Uint8Array,长度=nImageWidth * nImageHeight,值是0或255, format=Texture2D.PixelFormat.I8。

结果是有的图像能显示,有的不能显示。不能显示的时候错误是“WebGL: INVALID_OPERATION: texImage2D: ArrayBufferView not big enough for request”。

各图像都是调用同一个函数,主要的差别好像只有图像尺寸不同。比如 14402048 和 20481650 可以正常显示。但 13502048,14652048 就会报错。已确认数据长度,参考日志如下:

请教各位是什么地方的问题?

@panda
@huanxinyin
谢谢!

顶一下,请各位大大看一下。

这个接口提供data大小需要2的幂次方对齐。

请问我用载入的数据渲染出来有这样的色块儿是什么问题?在纯色下会这样,颜色越纯度高了就有这样的色块,如何处理?用的RGBA8888 h264编码

问一下 有的手机 譬如手头的魅族7pro 和 iPhone 6p 用initWithData函数的时候 会<img
这样。
而我华为mate 9 就是
这样的。 正常的
只有手机会出现这种情况 不管是出安卓包合适小游戏的包 都会有
请问能看一下什么情况么

initWithData的时候是用的uint8array