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);
我已经检查了 size
和 data
,它们似乎没有问题。我能做些什么来解决这个问题吗?
Mali OpenGL ES SDK 中有一个 ASTC 纹理使用示例:
我是 运行 支持 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);
我已经检查了 size
和 data
,它们似乎没有问题。我能做些什么来解决这个问题吗?
Mali OpenGL ES SDK 中有一个 ASTC 纹理使用示例: