There are several one-to-one and one-to-many relationships here:
- 1 IDirectFB (top-level) <--> N Screens
- 1 Screen <--> N Layers
- 1 Layer <--> 1 Primary Surface
- 1 Layer <--> N Windows
- 1 Window <--> 1 Window Surface
- 1 Surface <--> N Subsurfaces
The most common case is one screen with one display layer, but DFB supports multiple instances of each.
Layers and Screens
Each screen can have one or more layers. Usually, a screen will have only one, but system that support overlays may have multiple layers with the hardware letting one layer show through another.
Screens and Windows
A screen cannot directly create a window, but you can ask a screen for the ID of its primary layer, then ask the IDirectFB interface to give you an interface to that layer, then use that interface to create a window.
Surfaces and Windows
Each window has a surface associated with it; drawing to that surface isn't immediately visible on the screen, as the window manager is responsible for compositing the surfaces of the windows to the primary surface based on their update regions and the stacking order, and the window manager is notified of changes by using the Flip() method of the surface.
Surfaces and Layers
A layer also has a surface associated with it; this surface is a direct representation of the layer's screen memory. You can only access this surface when you're in exclusive mode, otherwise you need to create a window and have the window manager draw to the surface.
本文介绍了DirectFB图形子系统的架构特点,包括其支持的一对一及一对多的关系,并详细阐述了屏幕(Screen)、图层(Layer)、窗口(Window)以及表面(Surface)之间的关联方式。DirectFB能够支持多个实例,使得系统能灵活地处理不同类型的显示需求。
23万+

被折叠的 条评论
为什么被折叠?



