我在支持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
,看起来没问题。我有什么办法可以解决这个问题吗?
答案 0 :(得分:1)
Mali OpenGL ES SDK中有一个ASTC纹理使用示例: