GUI:OpenGLES与EGL

1.Linux内核统一的framebuffer显示驱动
2.android HAL层提供了Gralloc,包括fb和gralloc两个设备。
fb:负责打开内核中的framebuffer,初始化配置,并提供了post和setSwapInterval等操作
gralloc:管理帧缓冲区的分配和释放
这样上层元素只能通过Gralloc来间接访问帧缓冲区,从而保证了系统对FrameBuffer的有序使用和统一管理
Composer:Composer的直接使用者是SurfaceFlinger中的HWComposer,HWComposer除了管理Composer外还负责VSync信号的产生和控制
3.由于OpenGLES是一个通用的函数库,在不同的平台上需要被本地化,这样才能保证在特定平台上的正常工作,FrameBufferWindowNative是负责OpenGLES在android平台上本地化的中介之一,(为OpeglES配置本地窗口的是EGL
4.EGL会读取配置文件,然后根据配置文件来加载libagl或者libhgl
5.SurfaceFlinger持有一个mDisplays数组,该数组用来描述系统支持的显示设备

GUI:OpenGLES与EGL_第1张图片
结构.png

你可能感兴趣的:(GUI:OpenGLES与EGL)