24

我在使用 Google 的OpenGL 演示 for Android时遇到了真正的问题。我在 Eclipse 中进行了设置,但无法执行。它构建没有问题,但"java.lang.IllegalArgumentException: No config chosen"在它打开之前就停止了。我一直在谷歌搜索和堆栈线程上上下波动,但没有解决方案。

我确实在这里找到了我认为的线索:OpenGL ES 2.0 Support for Android?

它使用一个命令gLSurfaceView.setEGLConfigChooser(8 , 8, 8, 8, 16, 0); ,但唉,我是 OpenGL 的新手,不知道把它放在哪里......

任何帮助将不胜感激。我正在使用最新的 android sdk 运行 Eclipse Juno。我正在启用 GPU 硬件的 4.2 Jelly Bean 模拟器上对此进行测试。

4

3 回答 3

50

解决方案只是super.setEGLConfigChooser(8 , 8, 8, 8, 16, 0);在行之前放置在 MyGLSurfaceView 类中setRenderer(new MyGLRenderer());

于 2013-01-05T00:55:39.287 回答
6

现在这已经很老了,但以防万一人们仍然想知道为什么需要这样做......

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

参数是您分配给颜色位的位数

8 位 = 255 16 位 = 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

于 2015-10-31T09:19:18.290 回答
2

请参阅我的代码以使用 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

}
于 2015-01-24T04:55:25.140 回答