当前位置: 首页 > news >正文

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)模式下,你只能访问这个表面,否则,你只能创建一个窗口,然后用窗口管理器来绘制这个表面

相关文章:

  • 复杂recyclerView封装库
  • js文件、图片上传(原生方法和jquery的ajax两种都有)
  • 浮点数网络传输
  • 第199天:js---扩充内置对象功能总结
  • 1.6-1.7 centos7-配置ip
  • Maven学习笔记四(坐标和依赖)
  • java 泛型中classT 和T的区别是什么?
  • django性能优化缓存view详解
  • thymeleaf 引入js css 无效
  • 【JS第13期】变量、作用域、内存等问题
  • 在CentOS6.8下安装Docker
  • Codepen 每日精选(2018-3-25)
  • Laravel核心解读--Facades
  • 学习rsyslog总结
  • 中国电信携手 Orange Business Services 扩大战略合作 为企业提供无缝物联网体验
  • 实现windows 窗体的自己画,网上摘抄的,学习了
  • 【Amaple教程】5. 插件
  • 77. Combinations
  • Github访问慢解决办法
  • HTTP那些事
  • Idea+maven+scala构建包并在spark on yarn 运行
  • Java 多线程编程之:notify 和 wait 用法
  • macOS 中 shell 创建文件夹及文件并 VS Code 打开
  • SQL 难点解决:记录的引用
  • 多线程事务回滚
  • 工作踩坑系列——https访问遇到“已阻止载入混合活动内容”
  • 函数式编程与面向对象编程[4]:Scala的类型关联Type Alias
  • 基于游标的分页接口实现
  • 理解在java “”i=i++;”所发生的事情
  • 聊聊springcloud的EurekaClientAutoConfiguration
  • 盘点那些不知名却常用的 Git 操作
  • 前言-如何学习区块链
  • 鱼骨图 - 如何绘制?
  • scrapy中间件源码分析及常用中间件大全
  • 阿里云ACE认证学习知识点梳理
  • #Z0458. 树的中心2
  • (14)Hive调优——合并小文件
  • (3)Dubbo启动时qos-server can not bind localhost22222错误解决
  • (done) 两个矩阵 “相似” 是什么意思?
  • (JS基础)String 类型
  • (二)构建dubbo分布式平台-平台功能导图
  • (附源码)springboot金融新闻信息服务系统 毕业设计651450
  • (简单有案例)前端实现主题切换、动态换肤的两种简单方式
  • (接口封装)
  • (十五)Flask覆写wsgi_app函数实现自定义中间件
  • (转)shell调试方法
  • (转)人的集合论——移山之道
  • (转载)CentOS查看系统信息|CentOS查看命令
  • . ./ bash dash source 这五种执行shell脚本方式 区别
  • .MyFile@waifu.club.wis.mkp勒索病毒数据怎么处理|数据解密恢复
  • .mysql secret在哪_MySQL如何使用索引
  • .Net Redis的秒杀Dome和异步执行
  • .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例
  • .net开源工作流引擎ccflow表单数据返回值Pop分组模式和表格模式对比
  • .NET企业级应用架构设计系列之技术选型