glCompressedTexImage2D 的分段错误

Segmentation fault with glCompressedTexImage2D

我是 运行 支持 GL_OES_texture_compression_astc 扩展的设备上的 OpenGL ES 应用程序。我有一个 3000x2000 像素的纹理,当我调用 glTexImage2D 时,一切正常。

为了压缩图像,我下载了 ASTC encoder 并执行了以下命令:

./astcenc.exe -c player.png player.astc 6x5 -medium

但是当我在 glCompressedTexImage2D 中使用 player.astc 时,该函数会导致分段错误。这是我的代码:

glActiveTexture(GL_TEXTURE0); glBindTexture(GL_TEXTURE_2D, tids[0]); glCompressedTexImage2D(GL_TEXTURE_2D, 0, GL_COMPRESSED_RGBA_ASTC_6x5_KHR, 3000, 2000, 0, size, data); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glBindTexture(GL_TEXTURE_2D, 0);

我已经检查了 sizedata,它们似乎没有问题。我能做些什么来解决这个问题吗?

Mali OpenGL ES SDK 中有一个 ASTC 纹理使用示例:

http://malideveloper.arm.com/sample-code/astc-textures/