はじめまして。開発スタッフjooonsです。よろしくです。
さっそくですが開発メモを書きます。
☆;+;。・゚・。;+;☆;+;。・゚・。;+;
Android のOpenGL ESを使っていて、画面を遷移したり、ホームに戻って再度起動するとテクスチャが真っ白になることがあります。マシンにならない場合もありますが、Lynx3Dほか、一部の機種で確認されています。
どうやら画面遷移を行った場合に、サーフェスが再初期化されるか、再利用されるかは環境に依存するようです。
GLSurfaceView.Rendererを使っている場合は
public void onSurfaceCreated(GL10 gl, EGLConfig arg1)
がページ遷移の時に再度呼ばれますので、改めてテクスチャのロード等を行えば解決します。
(追記)
最初期化されると、GL10などのインスタンス自体が変わるため、テクスチャロード時のGL10インスタンスを保持して、描画時にインスタンスを比較(!=などで)して、異なる場合には再度初期化してもうまくいくようです。正しいアプローチかは分かりませんが。。
☆;+;。・゚・。;+;☆;+;。・゚・。;+;
以上、メモでした
さっそくですが開発メモを書きます。
☆;+;。・゚・。;+;☆;+;。・゚・。;+;
Android のOpenGL ESを使っていて、画面を遷移したり、ホームに戻って再度起動するとテクスチャが真っ白になることがあります。マシンにならない場合もありますが、Lynx3Dほか、一部の機種で確認されています。
どうやら画面遷移を行った場合に、サーフェスが再初期化されるか、再利用されるかは環境に依存するようです。
GLSurfaceView.Rendererを使っている場合は
public void onSurfaceCreated(GL10 gl, EGLConfig arg1)
がページ遷移の時に再度呼ばれますので、改めてテクスチャのロード等を行えば解決します。
(追記)
最初期化されると、GL10などのインスタンス自体が変わるため、テクスチャロード時のGL10インスタンスを保持して、描画時にインスタンスを比較(!=などで)して、異なる場合には再度初期化してもうまくいくようです。正しいアプローチかは分かりませんが。。
☆;+;。・゚・。;+;☆;+;。・゚・。;+;
以上、メモでした