mic*_*x5d 1 android opengl-es background-process
对于应用程序,即使当前未显示该应用程序,我也希望在后台渲染事物。官方文档写过通过GLSurfaceView打开GLcontext。对于不显示图形并渲染到另一个目标中,似乎不是一个真正的解决方案。
那么问题是如何在Android中创建没有GLSurfaceView的GL上下文?
用例:录制视频并将当前时间作为文本直接添加到视频中。为此,基于CPU的图像处理只会减慢实时执行的速度。至少在录制时还应该显示视频。OpenGL可以将所有内容简单地渲染到Framebuffer / Renderbuffer中。
您不必使用GLSurfaceViewOpenGL渲染。如果您查看源代码,则可以看到它仅使用公开可用的API。它只是一个便利类,它使在Android下使用OpenGL的最常见用法(使用OpenGL绘制视图的内容)非常容易。如果您的用例不同,那么您就...不要使用它。
用于直接创建上下文和渲染表面的API是EGL。Android Java框架中有两个版本可用:EGL10和EGL14。EGL10很老,我强烈建议您使用EGL14。
EGL调用并未真正记录在Android SDK文档中,但是您可以使用www.khronos.org上的手册页查看调用说明。
直接使用EGL,您可以创建上下文和屏幕外渲染表面,从而无需使用任何视图即可使用OpenGL。
我在此处的上一个答案中发布了完整的代码,显示了如何使用屏幕外渲染表面创建上下文:GLES10.glGetIntegerv仅在Lollipop中返回0。
| 归档时间: |
|
| 查看次数: |
2249 次 |
| 最近记录: |