iPhone上的glgConvertTo_32

时间:2011-08-25 04:01:44

标签: iphone opengl-es textures

我今天通过仪器运行我的应用程序并发现在“glgConvertTo_32”功能中花费了过多的时间。我在别处读到这是因为Apple的纹理格式使用“GL_BGRA和GL_UNSIGNED_INT_8_8_8_8_REV”,而我的代码使用GL_RGBA。

我正在使用glTexture2D如下:

glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, textureData);

然而,GL的GL标题中既没有GL_BGRA也没有GL_UNSIGNED_INT_8_8_8_8_REV。是否有其他原因需要大量调用该函数,或者我应该使用不同的纹理格式?

修改 我应该提一下,我正在使用OpenGL ES 2.0。

1 个答案:

答案 0 :(得分:1)

我不知道我的问题/解决方案是否真的与您的相关。但你未解决的问题是谷歌在调查我的问题时发现的第一个结果。

虽然我使用OpenGL ES 1.1并且不使用Textures,但我也注意到了我的应用程序 在函数glgConvertTo_32()中花费大约23%的时间。

在eaglLayer.drawableProperties中将kEAGLDrawablePropertyColorFormat的值从kEAGLColorFormatRGBA8更改为kEAGLColorFormatRGB565后,不再调用函数glgConvertTo_32()。应用程序感觉更快,我没有看到视觉差异。