zoukankan      html  css  js  c++  java
  • DirectFB、Layer、Window、Surface之间关系

    层(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)
    通常的状况是一个屏幕有一个显示层,但是DFB支持他们每个有多个实例

    层(Layers)和屏幕( Screens)

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

    屏幕(Screens)和(Windows)

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

    表面(Surfaces)和(Windows)

    每一个窗口有一个和它关联的表面,画在表面上的内容并不会马上显示在屏幕上,因为窗口管理器会负责将窗口的所有表面组合到主表面上---基于所要刷新的区域和堆栈顺序。当有变化的时候,表面的Flip()函数会通知窗口管理器。

    表面(Surfaces)和(Layers)

    一个层同样有一个和他关联的表面;这个表面是这个层的屏幕内存的直接表现,在独占(exclusive)模式下,你只能访问这个表面,否则,你只能创建一个窗口,然后用窗口管理器来绘制这个表面

  • 相关阅读:
    [HDU 2089]不要62
    [WC 2011]Xor
    [BJOI 2011]元素
    [NOIp 2014]解方程
    [UVa 1326]Jurassic Remains
    [BZOJ 2152]聪聪可可
    [IOI 2011]Race
    [测试题]打地鼠
    [POJ 2828]Buy Tickets
    [测试题]gene
  • 原文地址:https://www.cnblogs.com/youngerchina/p/5624451.html
Copyright © 2011-2022 走看看