6

これは奇妙なものです。基本的なアプリケーション(ダッシュボードなど)と、3Dオブジェクトとテクスチャを描画するGLSurfaceviewがあります。すべてがきれいに実行されますが、他のアクティビティに戻ると、スクリーンショットは言葉よりも優れています:

これは前のダッシュボードです

前

これはopenglです: opengl

そして、これは私が押し返したときの私のダッシュボードです: ここに画像の説明を入力してください

ご覧のとおり、画像とテキストも表示されていません。私は4.0以降で実行しているので、これはandroidがopenglで要素を描画するためだと思います。これは、2.2デバイスでは描画しないためです。

何がこれを引き起こしているのか考えていますか?テクスチャを使用しないと発生しません。

4

3 に答える 3

6

わかりました、何が悪いのかわかりました。フラグメントを呼び出して、 UI Threadのテクスチャを削除していましたmTextureManager.deleteAllTextures()onPause();

テクスチャを削除することで解決しました

mSurfaceView.queueEvent(new Runnable(){
    //delete all textures here
}

これが他の人に役立つことを願っています...

于 2013-01-26T14:52:06.067 に答える
3

テクスチャと頂点バッファーを使用している場合、ビューから移動するとそれらがクリアされると思います。SurfaceDestoyed または SurfaceCreated 呼び出しを取得している場合は、テクスチャと vbo を再作成して、グラフィック カードに再ロードする必要があると思います。

オープンGLの状態を台無しにするバグを導入したとき、私はかつて同様の問題を抱えていました。その後、別のアクティビティ (ハードウェア アクセラレーション) に行ったとき、そのアクティビティもすべて台無しになりました。私の場合、作成したオープンGLバグを見つけて修正する必要がありました。

于 2013-01-25T23:24:40.917 に答える