我找到了一些关于图形堆栈android的信息,并看到了这张图片:

但我不明白为什么会有两次使用OpenGL?是否可以在openGl之后使用SurfaceFlinger一次?在这张图片中EGL库执行了什么之后?
发布于 2014-04-29 00:35:06
OpenGLES可用于绘制当前系统中的二维和三维形状。在您所显示的图片中,在应用程序堆栈中,GL可用于由应用程序呈现对象。比方说,这个输出进入缓冲区"B“。可以有很多这样的应用程序,所以它们都会创建缓冲区,比如B1、B2、B3。现在,需要有一个框架,该框架负责决定在显示屏幕上显示哪些缓冲区,或者显示哪些缓冲区组合。这被俗称为“作曲家”。在排序器中,再次使用GL来显示要显示的内容。
因此,GL既可以用于应用程序,也可以用于组合程序,这就是上面的堆栈中所显示的。
EGL是一个API (来自Khronos,如OpenGL、OpenGLES),用于与窗口系统进行接口,在本例中是Android系统。它创建应用程序可以进入的缓冲区B1、B2等,以及最终的显示缓冲区。
因此,EGL创建/管理缓冲区/显示,GL是一个独立于平台的API,负责2D/3D绘图。希望这能有所帮助。
https://stackoverflow.com/questions/23353056
复制相似问题