1
我发现当我在iOS上使用GL_TEXTURE18
以上的纹理(在iOS 10上测试)时,presentRenderbuffer
触发EXC_BAD_ACCESS
。这有什么理由吗?我可以不使用纹理达到GL_TEXTURE31
ios - presentRenderbuffer触发器EXC_BAD_ACCESS
我发现当我在iOS上使用GL_TEXTURE18
以上的纹理(在iOS 10上测试)时,presentRenderbuffer
触发EXC_BAD_ACCESS
。这有什么理由吗?我可以不使用纹理达到GL_TEXTURE31
ios - presentRenderbuffer触发器EXC_BAD_ACCESS
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
或任何其他值,但您确实需要确保该值实际上是有效的。
很清楚,谢谢! – Guig