我在iOS开发中遇到了这样的问题:
我需要使用多个纹理(不只两个),所以GLKView的effect
成员下的texture0
和texture1
已经不够使用了,而且似乎直接用textureOrder
一口气赋个七八个纹理也会出问题。
现在我自己手动管理texture,用glGenTextures()
申请了连续的若干的纹理到_textures
,并分别绑定和上传纹理(第i
个纹理的编号用_textures + i
,并用CGImage将图片读入再用CGContextDrawImage()
将纹理图像的二进制内容抽取出来,然后直接按照RGBA上传),然后在drawInRect()
方法中依次绑定纹理、绘制。(其它的比如什么坐标那些我觉得应该跟原因无关,所以这里就略去没说)
但结果是:屏幕上啥内容都没有。
请问我这里的步骤有什么问题么?
另外有两个问题:
- 似乎iOS上不能使用
glEnble(GL_TEXTURE_2D)
来开启纹理? - 在iOS 8上
CGbitmapContextCreate()
最后的那个参数bitmapInfo
使用kCGImageAlphaPremultipliedLast | kCGBitmapByteOrder32Big
对么?
感觉这像是一种变通而不是期望的做法。