[Tip]iOS上的OpenGLES无显示问题

Haoxiang Li bio photo By Haoxiang Li

最近的项目用到了OpenGLES。 两个很容易出问题的地方,容易造成很难找到的Bug。

一个是EAGLLayer的大小,必须是32的倍数。否则用OpenGL画出来的东西,统统不会被显示。 Apple的文档:In iOS 4.2 and later, the performance of Core Animation rotations of renderbuffers have been significantly improved, and are now the preferred way to rotate content between landscape and portrait mode. For best performance, ensure the renderbuffer’s height and width are each a multiple of 32 pixels. Apple Document

另一个是纹理的大小,必须是2的次方。 也就是说,如果使用一张图片来生成纹理,那么图片的长和宽的长度都必须是2的次方,否则加载纹理失败。