ios - presentRenderbuffer触发EXC_BAD_ACCESS

时间:2016-10-04 06:20:56

标签: ios opengl-es

我发现当我在ios上使用GL_TEXTURE18上方的纹理(在iOS 10上测试)时,presentRenderbuffer会触发EXC_BAD_ACCESS。有什么理由吗?我不能使用最高GL_TEXTURE31

的纹理

1 个答案:

答案 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或任何其他值,但您需要确保该值为实际上有效。