如何使用OpenGL ES渲染到Surface,没有GLSurfaceRenderer

时间:2013-03-13 13:54:03

标签: opengl-es android-ndk rendering

我需要在Android原生C ++代码中将解码后的视频帧绘制到android.view.Surface对象中。

我知道执行此操作的常用方法是实现GLSurfaceView.Renderer接口并从onDrawFrame()调用本机方法。但我无法使用它,我需要将Surface对象传递给本机方法并从那里开始处理它。

我打算使用OpenGL ES API来完成所有渲染工作,因为它是跨平台的。但我不知道Surface对象在哪里。

我见过几个使用ANativeWindow_fromSurface()的例子。如果我没有被迫使用OpenGL,我想我可以这样做。

那么我在哪里“设置”我的Surface对象在本机代码中,所以我很好地去渲染我的场景帧?

编辑:好的,我想我只是不知道EGL standard,这似乎是我在本案例中所需要的。

但是,我仍在寻找一种方法将android.view.Surface对象“映射”或“转换”为由EGL上下文处理的任何结构,我假设它是EGLNativeWindowType,而无需访问任何特定于Android的API。

提前致谢。

0 个答案:

没有答案