因为窗口管理器会负责将窗口的所有表面组合到主表面上---基于所要刷新的区域和堆栈顺序

时间:2022-04-26 03:25:22

暗示一块儿独立的图像缓冲区。大大都的嵌入式设备都有多个层。他们由硬件使用合适的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)

凡是的状况是一个屏幕有一个显示层,但是DFB撑持他们每个有多个实例

层(Layers)和屏幕( Screens)

每一个屏幕可以有一个或是多个层,凡是,一个屏幕只有一个层,但是某些撑持overlays的系统,由于硬件撑持一层显示在另一层上面,可以有多层。

屏幕(Screens)和(Windows)

屏幕不能直接创建窗口(Window),但是你能请求得到一个屏幕(Screen)的主层(Primary Layer)的ID,然后请求IDirectFB接口(interface)给你阿谁层(Layer)的接口,然后通过这个接口来创建窗口。

外貌(Surfaces)和(Windows)

每一个窗口有一个和它关联的外貌,画在外貌上的内容并不会顿时显示在屏幕上,因为窗口打点器会卖力将窗口的所有外貌组合到主外貌上---基于所要刷新的区域和仓库挨次。当有变革的时候,外貌的Flip()函数会通知窗口打点器。

外貌(Surfaces)和(Layers)

一个层同样有一个和他关联的外貌;这个外貌是这个层的屏幕内存的直接表示,在独有(exclusive)模式下,你只能访谒这个外貌,否则,,你只能创建一个窗口,然后用窗口打点器来绘制这个外貌