具有相机表面的OpenGL渲染率(onDrawFrame)

时间:2011-11-30 06:18:32

标签: android opengl-es

我正在用于摄像机实时预览的SurfaceView上编写一个带有GLSurfaceView(OpenGL ES 2.0)的Android应用程序。

使用的Android版本:2.3.3,编译为API级别8。

我扩展了GLSurfaceView.Renderer并测量了 onDrawFrame 调用的速率。在三星Galaxy S上我获得了~55.6fps,在LG G2x~58.9,但在HTC感觉4G上我只有只有~17-22fps

以下实验没有对此费率产生影响:

  • onDrawFrame 中删除所有代码,但非常轻的速率测量代码除外
  • 使用setRenderMode(GLSurfaceView.RENDERMODE_WHEN_DIRTY)并设置一个计时器,每隔17ms调用 requestRender
  • 禁用了我的应用程序执行的大多数其他操作。

我做了两个其他的实验:

  1. 通过注释掉Camera.startPreview()==>来禁用相机预览。 30.3 fps
  2. (1)+将相机预览表面可见性设置为INVISIBLE ==> 59.94 fps
  3. 有没有人见过这样的东西?这是htc设备(硬件)的某种限制吗?关于我可以做些什么来调试这个问题或获得更高的帧速率的任何想法?

    谢谢!

    编辑: 另一条(可能是无用的)信息:当我在我的htc上运行OpenGL Frame Rate Test app时显示60fps ......

0 个答案:

没有答案