2015-08-31 4 views
0

У меня есть небольшая проблема, которую я пытаюсь решить.EGL от родной деятельности android назад к Java

В основном я создаю контекст EGL с NDK что-то похожее на это: http://developer.android.com/reference/android/app/NativeActivity.html

В андроида, если вы расширяете surfaceview.renderer, он также создает контекст EGL за кулисами после того, как onCreated & onSurfaceChange вызовов. Вы можете увидеть больше здесь: http://developer.android.com/reference/android/opengl/GLSurfaceView.Renderer.html

Мой вопрос в том, что я создаю свой контекст EGL в пределах собственной операции, но мне нужно получить доступ к некоторым функциям жизненного цикла со стороны Java. Можно ли передать мой EGL-контекст из native Activity и использовать его для настройки android surfaceview.renderer, а затем использовать glsurfaceview.renderer, чтобы перезвонить на нативный с вызовами JNI?

+0

У вас есть небольшая проблема, но что вы попробовали. Обновите вопрос, добавив код. –

ответ

1

Вы идете по этому пути неправильно.

Точка GLSurfaceView состоит в объединении SurfaceView с некоторым кодом, который заботится о контексте EGL и управлении потоками для вас. Если вы выполняете собственную настройку EGL, и вы не возражаете против проблем с потоками, нет смысла использовать GLSurfaceView - и это усложняет ситуацию.

Если вы хотите создать собственный контекст EGL и управлять им, используйте обычный SurfaceView. Создайте поверхность EGLS с поверхности SurfaceView.

Если вы предпочитаете GLSurfaceView, не создавайте отдельный контекст EGL. Просто используйте тот, который GLSurfaceView создает для вас. Поймите, что он будет уничтожен и воссоздан, когда действие приостановится.