Как я могу использовать несколько компонентов GLSurfaceView в одном макете?

Я пишу API визуализации информации для Android и столкнулся с проблемой, пытаясь разместить две единицы пользовательского GLSurfaceView в макете. Пользовательский GLSurfaceView на данный момент является просто расширением GLSurfaceView для устранения возможных ошибок, вызванных пользовательскими методами.

Когда я добавляю оба компонента в макет и запускаю приложение, он бежит. Но ничего не прорисовывается, вроде заходит в бесконечный цикл. потому что отладочные сообщения внутри рендереров печатаются в LogCat. Однако он отлично работает, если я использую только один из настраиваемых компонентов GLSurfaceView .

Я читал, что есть проблема с использованием GLSurfaceView в нескольких действиях, и я полагаю, что это также применимо при использовании двух из этих компонентов одновременно. Я пробовал обходное решение, опубликованное здесь , но, похоже, оно тоже не работает.

Буду признателен за любую помощь. Я предпочитаю использовать openGL для повышения производительности, но если я не могу использовать несколько компонентов одновременно, думаю, мне придется вместо этого использовать Canvas.

Манифест выглядит следующим образом:



    

    


    

    

        

    


Из Activity код выглядит следующим образом :

@Override
public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.main);

    mSurfaceView = (VisualizationView) findViewById(R.id.glview);
    mSurfaceView2 = (VisualizationView) findViewById(R.id.glview2);

    //Enables debug flags for Errors
    //mSurfaceView.setDebugFlags(GLSurfaceView.DEBUG_CHECK_GL_ERROR);   
    //mSurfaceView2.setDebugFlags(GLSurfaceView.DEBUG_CHECK_GL_ERROR);  

    mSurfaceView.setRenderer(new CoordinateSystemRenderer());
    mSurfaceView2.setRenderer(new CoordinateSystemRenderer());

}

@Override
protected void onPause() {
    // TODO Auto-generated method stub
    super.onPause();
    mSurfaceView.onPause();
    mSurfaceView2.onPause();
}

@Override
protected void onResume() {
    // TODO Auto-generated method stub
    super.onResume();
    mSurfaceView.onResume();
    mSurfaceView2.onResume();
}

Я упустил что-то очевидное? Или кто-нибудь может объяснить, почему не работает?

23
задан genpfault 18 January 2012 в 16:57
поделиться