作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我今天通过 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 header 中均不可用。对该函数的大量调用是否还有其他原因,或者我是否应该使用不同的纹理格式?
编辑:我应该提到我正在使用 OpenGL ES 2.0。
最佳答案
我不知道我的问题/解决方案是否真的与您的相关。但您未回答的问题是谷歌在调查我的问题时发现的第一个结果。
虽然我使用 OpenGL ES 1.1 并且不使用纹理,但我也注意到我的应用程序大约 23% 的时间花在函数 glgConvertTo_32() 上。
在 eaglLayer.drawableProperties 中将 kEAGLDrawablePropertyColorFormat 的值从 kEAGLColorFormatRGBA8 更改为 kEAGLColorFormatRGB565 后,不再调用函数 glgConvertTo_32()。该应用程序感觉更快,而且我没有看到视觉差异。
关于iphone - iPhone 上的 glgConvertTo_32,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7184998/
我是一名优秀的程序员,十分优秀!