Android OpenGL demo “No config chosen”

匿名 (未验证) 提交于 2019-12-03 01:05:01

问题:

I'm having a real problem with the Google's OpenGL demo for Android. I set it up in Eclipse but can't get it to execute. It builds with no problems, but then stops at "java.lang.IllegalArgumentException: No config chosen" right before it opens. I've been up and down Google searches and Stack threads with no solution.

I did find what I thought was a lead here: OpenGL ES 2.0 Support for Android?

It uses a command gLSurfaceView.setEGLConfigChooser(8 , 8, 8, 8, 16, 0); but alas, I'm new to OpenGL on android and don't know where to put it...

Any help would be greatly appreciated. I'm running Eclipse Juno with the latest android sdk. I'm testing this on a 4.2 Jelly Bean emulator with GPU hardware enabled.

回答1:

The solution was just to place super.setEGLConfigChooser(8 , 8, 8, 8, 16, 0); inside the MyGLSurfaceView class right before the setRenderer(new MyGLRenderer()); line.



回答2:

This is quite old now, but just in case people are still wondering why this needs to be done....

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

The parameters are the number of bits you assign to the color bits

8 bits = 255 16 bits = 65535

So the below configuration is basically setting this:

setEGLConfigChooser(8, 8, 8, 8, 16, 0);  r,g,b,a = 0-255,0-255,0-255,0-255  depth = 0-65535  stencil = 0

Hope this clears up any confusion :D



回答3:

See my code for setting EGL chooser with Android Studio. Add it right after you call the constructor for your GLSurfaceView:

Code:

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  }


易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!