Android NDK: OpenGL рисует вызовы в потоке вне android_main - PullRequest
0 голосов
/ 14 сентября 2011

У меня чисто нативное приложение Android NDK. Основной цикл в

 android_main

в соответствии с android_native_app_glue.h.

Мне нужно визуализировать что-то в отдельном потоке, поэтому через android_main я попробовал:

 pthread_t thread1;
 pthread_create(&thread1, NULL, renderstuff, NULL);

void *renderstuff( void *ptr )
{
  // some opnegl es draw calls
}

Однако это ничего не делает. Если я выполняю те же вызовы отрисовки из android_main (но не создавая новый поток), он прекрасно отрисовывается: S

Ответы [ 3 ]

1 голос
/ 11 октября 2012

Просто из интереса, я видел ваш пост, и вот мои $ 0,02 (у меня текстурирование в фоновых потоках, работающих на Android с использованием общих контекстов):

eglCreateContext должен быть вызван из потока, которому принадлежит контекст для обмена. После вызова на eglCreateContext ваш вызов на eglMakeCurrent (из вновь созданного потока) должен работать.

0 голосов
/ 29 сентября 2011

Я закончил переработку, чтобы гарантировать, что только один поток выполняет рендеринг.

0 голосов
/ 14 сентября 2011

Вы вообще звонили eglMakeCurrent() в своей новой теме? Это необходимо сделать перед вызовом ничьей в новом потоке.

...