Подтвердить что ты не робот

Android OpenGL демо "Без конфигурации"

У меня настоящая проблема с Google демонстрацией OpenGL для Android. Я установил его в Eclipse, но не могу заставить его выполнить. Он строит без проблем, но затем останавливается на "java.lang.IllegalArgumentException: No config chosen" прямо перед его открытием. Я искал поисковые запросы Google и Stack без решения.

Я нашел то, что я считал ведущим здесь: OpenGL ES 2.0 Поддержка Android?

Он использует команду gLSurfaceView.setEGLConfigChooser(8 , 8, 8, 8, 16, 0); но, увы, я новичок в OpenGL на андроиде и не знаю, куда его поместить...

Любая помощь будет принята с благодарностью. Я запускаю Eclipse Juno с последним Android-железом. Я тестирую это на эмуляторе 4.2 Jelly Bean с включенным оборудованием GPU.

4b9b3361

Ответ 1

Решение состояло в том, чтобы разместить super.setEGLConfigChooser(8 , 8, 8, 8, 16, 0); внутри класса MyGLSurfaceView непосредственно перед линией setRenderer(new MyGLRenderer());.

Ответ 2

Это уже довольно давно, но на всякий случай люди все еще задаются вопросом, почему это нужно сделать....

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

Ответ 3

См. мой код для настройки выбора EGL в Android Studio. Добавьте его сразу после вызова конструктора для вашего 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

}