framebuffer

//img-my.csdn.net/uploads/201202/29/0_13304857628E8C.gif

  • SurfaceFlinger是一个服务,主要是负责合成各窗口的Surface,然后通过OpenGLES显示到FrameBuffer上。SurfaceFlinger本身比较重要而且比较复杂,以后专门写一篇吧。
  • DisplayHardware是对显示设备的抽象,包括FrameBuffer和Overlay。它加载FrameBuffer和Overlay插件,并初始化OpenGLES:

FramebufferNativeWindow 是framebuffer 的抽象,它负责加载libgralloc,并打开framebuffer设备。FramebufferNativeWindow并不直接使用 framebuffer,而是自己创建了两个Buffer:

  1. queueBuffer负责显示一个Buffer到屏幕上,它调用fb->post去显示。
  2. dequeueBuffer获取一个空闲的Buffer,用来在后台绘制。
原文地址:https://www.cnblogs.com/chjgongzuo/p/7927560.html