iPhone 上的 glgConvertTo_32
我今天通过 Instruments 运行我的应用程序,注意到“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_BGRA 和 GL_UNSIGNED_INT_8_8_8_8_REV 在 iPhone 的 GL 标头中均不可用。对该函数的大量调用是否还有其他原因,或者我是否应该使用不同的纹理格式?
编辑: 我应该提到我正在使用 OpenGL ES 2.0。
I ran my app through Instruments today and noticed that an excessively high amount of time was being spent in the "glgConvertTo_32" function. I read elsewhere that this is because Apple uses "GL_BGRA and GL_UNSIGNED_INT_8_8_8_8_REV" for it's texture format, and my code uses GL_RGBA.
I'm using glTexture2D as follows:
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, textureData);
Neither GL_BGRA nor GL_UNSIGNED_INT_8_8_8_8_REV are available in the GL headers for iPhone, however. Is there another reason for the high volume of calls to that function, or is there possibly a different texture format I should be using?
EDIT:
I should mention that I'm using OpenGL ES 2.0.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我不知道我的问题/解决方案是否真的与你的相关。但你未回答的问题是谷歌在调查我的问题时发现的第一个结果。
虽然我使用 OpenGL ES 1.1 并且不使用纹理,但我也注意到我的应用程序
大约 23% 的时间花在函数 glgConvertTo_32() 上。
在 eaglLayer.drawableProperties 中将 kEAGLDrawablePropertyColorFormat 的值从 kEAGLColorFormatRGBA8 更改为 kEAGLColorFormatRGB565 后,不再调用函数 glgConvertTo_32() 。该应用程序感觉更快,而且我没有看到视觉上的差异。
I don't know if my problem/solution is really related to yours. But your unanswered question was the first result google found while investigating my problem.
Although I use OpenGL ES 1.1 and don't use Textures I also noticed that my app
spends about 23% of time in the function glgConvertTo_32().
After changing the value of kEAGLDrawablePropertyColorFormat from kEAGLColorFormatRGBA8 to kEAGLColorFormatRGB565 in eaglLayer.drawableProperties the function glgConvertTo_32() is not called anymore. The app feels faster and I don't see a visual difference.