我发现当我在ios上使用GL_TEXTURE18
上方的纹理(在iOS 10上测试)时,presentRenderbuffer
会触发EXC_BAD_ACCESS
。有什么理由吗?我不能使用最高GL_TEXTURE31
答案 0 :(得分:1)
GL_TEXTUREX
只是一些定义的值,定义了枚举。在您的情况下,GPU是定义支持纹理的实际数量的GPU,您有责任检查这些限制是什么。
您可以使用glGet
之类的内容:
GLint max_combined_texture_image_units;
glGetIntegerv(GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS, &max_combined_texture_image_units);
尝试this主题。
请注意,这些定义/枚举仅用于帮助您,并不意味着它们实际上是有效的或受支持的。 openGL API主要是通过传递整数值typedef uint32_t GLenum;
来设计的,因此就API而言,您可以将GL_TEXTURE0
替换为1200
或任何其他值,但您需要确保该值为实际上有效。