2

GLSurfaceViewでJPCT-AEを使用して、ライブ壁紙を作成しています。まず、レンダラーがサーフェス上に自由に描画できるようにしました(フレームレートを制限しようとはしませんでした)。明らかに、CPU使用率は90%になりました(ジンジャーブレッドでDefy +を使用-私の壁紙は、照明なしで最大200のポリゴンを含む単一の回転球をレンダリングしました)。

これで、サーフェス上でrenderModeを "RENDERMODE_WHEN_DIRTY"に設定し、ハンドラーによって投稿された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