EGL从android原生活动回到Java

时间:2015-08-31 16:04:23

标签: android opengl-es android-ndk egl

我想解决一个小问题。

基本上我用NDK创建一个类似于此的EGL上下文:http://developer.android.com/reference/android/app/NativeActivity.html

在android中如果扩展# $Id: makefile,v 1.1 2002/07/10 23:05:26 pcharles Exp $ # # package net.sourceforge.jpcap.tutorial.example15 # PKG = net.sourceforge.jpcap.tutorial.example15 PKG_DIR = $(subst .,/, $(PKG)) REL = ../../../../.. include ${MAKE_HOME}/os.makefile include ${MAKE_HOME}/rules.makefile JAVA = \ Example15 JAVA_SOURCE = $(addsuffix .java, $(JAVA)) JAVA_CLASSES = $(addsuffix .class, $(JAVA)) all: $(JAVA_CLASSES) include ${MAKE_HOME}/targets.makefile include ${MAKE_HOME}/depend.makefile ,它还会在surfaceview.renderer&之后的幕后创建一个EGL上下文。 onCreated来电。您可以在此处查看更多内容:http://developer.android.com/reference/android/opengl/GLSurfaceView.Renderer.html

我的问题是,因为我在本机Activity中创建了我的EGL上下文,但我需要从Java端访问一些生命周期函数。是否可以从本机Activity传递我的EGL上下文并使用它来设置android onSurfaceChange,然后使用surfaceview.renderer通过JNI调用回调本机?

1 个答案:

答案 0 :(得分:2)

你以错误的方式去做。

GLSurfaceView的目的是将SurfaceView与一些代码相结合,为您处理EGL上下文和线程管理。如果您正在进行自己的EGL设置,并且不介意处理线程问题,那么就没有理由使用GLSurfaceView - 这样做会使事情变得更复杂。

如果要创建和管理自己的EGL上下文,请使用普通的SurfaceView。从SurfaceView的Surface创建一个EGLSurface。

如果您更喜欢GLSurfaceView,请不要创建单独的EGL上下文。只需使用GLSurfaceView为您创建的那个。了解当Activity暂停时它将被销毁并重新创建。

相关问题