web-dev-qa-db-ja.com

Android OpenGLデモ "構成が選択されていません"

私はグーグルの Android用のOpenGLデモ で本当の問題を抱えています。 Eclipseで設定しましたが、実行できません。問題なくビルドされますが、開く直前に_"Java.lang.IllegalArgumentException: No config chosen"_で停止します。私は解決策なしでグーグル検索とスタックスレッドを上下しました。

私はここでリードだと思ったものを見つけました: Android用のOpenGL ES 2.0サポート?

コマンドgLSurfaceView.setEGLConfigChooser(8 , 8, 8, 8, 16, 0);を使用しますが、残念ながら、私はAndroidのOpenGLを初めて使用し、どこに配置すればよいかわかりません...

どんな助けでも大歓迎です。最新のAndroid SDKでEclipseJunoを実行しています。GPUハードウェアが有効になっている4.2JellyBeanエミュレーターでこれをテストしています。

24
Stuartsoft

解決策は、MyGLSurfaceViewクラス内のsuper.setEGLConfigChooser(8 , 8, 8, 8, 16, 0);行の直前にsetRenderer(new MyGLRenderer());を配置することでした。

50
Stuartsoft

これは今ではかなり古いですが、人々がまだこれを行う必要がある理由を疑問に思っている場合に備えて....

setEGLConfigChooser(int redSize, int greenSize, int blueSize, int alphaSize, 
                    int depthSize, int stencilSize)

パラメータは、カラービットに割り当てるビット数です。

8ビット= 25516ビット= 65535

したがって、以下の構成は基本的にこれを設定しています。

setEGLConfigChooser(8, 8, 8, 8, 16, 0);

r,g,b,a = 0-255,0-255,0-255,0-255

depth = 0-65535

stencil = 0

これで混乱が解消されることを願っています:D

6

Android StudioでEGLチューザーを設定するための私のコードを参照してください。GLSurfaceViewのコンストラクターを呼び出した直後に追加してください。

コード:

public class MainActivity extends ActionBarActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        GLSurfaceView view = new GLSurfaceView(this);

        //Chose EGL Config Here To Set Element Size For RGB data Alpha,  
        // Depth, Stencil, See The Documentation...
        view.setEGLConfigChooser(8, 8, 8, 8, 16, 0);

        view.setRenderer(new OpenGLRenderer());
        setContentView(view);

        //setContentView(R.layout.activity_main);
    }

    //....additional methods for activity

}
2
Steve Webster