2

我在 GLSurfaceView 上使用 JPCT-AE 来创建动态壁纸。首先,我让渲染器在表面上自由绘制(不试图以任何方式限制帧速率)。显然,cpu 使用率达到了 90%(使用 Defy+ 和姜饼——我的壁纸渲染了一个包含约 200 个多边形的旋转球体,没有照明)。

现在我在表面上将 renderMode 设置为“RENDERMODE_WHEN_DIRTY”,并使用 Handler 发布的 Runnable 请求渲染每 33 毫秒绘制帧:

glSurfaceView.setRenderer(renderer);
glSurfaceView.setRenderMode(GLSurfaceView.RENDERMODE_WHEN_DIRTY);

final Handler handler = new Handler();
handler.postDelayed(new Runnable(){
    public void run() {
        glSurfaceView.requestRender();      
        handler.postDelayed(this, 30);
    }
}, 40);

它将 cpu 使用率降低到 1% - 10% 之间,这很好,但现在我想知道这是否是最好的方法。

有没有更好的方法来提高 GLSurfaceView 的渲染性能?我使用的这种方法在技术上是正确的还是以后会让我有些头疼?

谢谢你。

4

0 回答 0