層(Layers)
表示一塊兒獨立的圖像緩沖區。大多數的嵌入式設備都有多個層。他們由硬件使用合適的alpha值來blending,然后顯示。
表面 (Surface)
用來保存像素數據的保留內存區域。DirectFB的Drawing和blitting操作最終都是作用於表面(surfaces)上.表面的內存可以從顯存(video memory)得到,也可以從系統內存(system meomroy)得到,這由給定的限制決定。
主層 (Primary Surface)
表示特定層的frame buffer的特殊表面。如果主表面是單緩沖的,任何作用到這個主層的操作,都會直接在屏幕上見到。
他們之間的關系主要是一些一對一或是一對多的關系:
- 1 IDirectFB (頂層) <--> N 屏幕(Screens)
- 1 屏幕(Screen) <--> N 層(Layers)
- 1 層(Layer) <--> 1 主表面(Primary Surface)
- 1 層(Layer) <--> N 窗口(Windows)
- 1 窗口(Window) <--> 1 窗口表面(Window Surface)
- 1 表面(Surface) <--> N 子表面(Subsurfaces)
層(Layers)和屏幕( Screens)
每一個屏幕可以有一個或是多個層,通常,一個屏幕只有一個層,但是某些支持overlays的系統,由於硬件支持一層顯示在另一層上面,可以有多層。
屏幕(Screens)和(Windows)
屏幕不能直接創建窗口(Window),但是你能請求得到一個屏幕(Screen)的主層(Primary Layer)的ID,然后請求IDirectFB接口(interface)給你那個層(Layer)的接口,然后通過這個接口來創建窗口。
表面(Surfaces)和(Windows)
每一個窗口有一個和它關聯的表面,畫在表面上的內容並不會馬上顯示在屏幕上,因為窗口管理器會負責將窗口的所有表面組合到主表面上---基於所要刷新的區域和堆棧順序。當有變化的時候,表面的Flip()函數會通知窗口管理器。
表面(Surfaces)和(Layers)
一個層同樣有一個和他關聯的表面;這個表面是這個層的屏幕內存的直接表現,在獨占(exclusive)模式下,你只能訪問這個表面,否則,你只能創建一個窗口,然后用窗口管理器來繪制這個表面