Я пишу 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();
}
Я упустил что-то очевидное? Или кто-нибудь может объяснить, почему не работает?