【SylixOS】Qt 基于FrameBuffer渲染界面

  • 简介 1
  • SylixOSFB 1
    2.1 插件的初始化 1
    2.2 窗口绘制 1
    2.3 SylixOSFB的实现 2
  • 1.简介
    Qt是目前一款比较主流的人机交互界面库。它有很强的跨平台能力,可移植性好,被广泛应用在PC端以及嵌入式领域。Qt可大致分为两部分:QtGui和QtCore,QtGui提供开发人员一套完整的开发控件,可以快速开发客户端界面;QtCore则负责底层渲染以及事件驱动等。而本章节主要介绍的是Qt的渲染机制,在Qt5中将底层渲染和窗口管理大致分为:
    SylixOSFB、LinuxFB、KMS、XCB、Wayland。
    SylixOSFB和LinuxFB采用相同的渲染方式:直接往FrameBuffer写像素值,这种方式只支持软件渲染,主要使用CPU读写内存的方式。通过设置环境变量QT_QPA_PLATFORM=sylixosfb:fb=/dev/fb0和在程序启动时添加-platform sylixosfb两种方式运行Qt程序。
    KMS:利用内核配置模式和drm机制,配合egl-device实现的带有GPU加速模式。
    XCB:是在X11窗口管理系统嵌入OpenGL渲染模式
    Wayland:是一套轻量级的窗口管理系统,采用传统的C/S框架,可以实现基于FrameBuffer和OpenGL两种渲染方式。
    2.SylixOSFB
    2.1插件的初始化
    SylixOSFB遵循QPA插件接口规范,在Qt程序初始化时,初始化平台管理窗口、事件分发、鼠标键盘输入管理、Screen屏幕绘制。如图 2.1所示

    图 2.1 插件初始化
    2.2窗口绘制
    在SylixOSFBScreen中通过打开fb0设备获取屏幕信息,再通过mmap内存映射,刷新屏幕像素值。如图 2.2所示

    图 2.2 FrameBuffer读写实现
    2.3SylixOSFB的实现
    下图是SylixOSFB插件和QtGui层交互流程图。如图 2.3所示

    图 2.3 SylixOSFB交互流程

    原文地址:http://blog.51cto.com/9508662/2334714

    时间: 2024-10-10 20:44:03

    【SylixOS】Qt 基于FrameBuffer渲染界面的相关文章

    unity3d 基于物理渲染的问题解决

    [狗刨学习网] 最近1个月做了unity 次世代开发的一些程序方面的支持工作,当然也是基于物理渲染相关的,主要还是skyshop marmoset的使用吧,他算是unity4.x版本 PBR的优秀方案之一了 但在使用以及性能上,还是多少有些坑和不足,这里也是自己的一些心得吧,希望可以其他对这个方案有兴趣的朋友起到一些帮助. 一.遇到了fps降低的BUG 国庆节前的老版本工程和最新的工程版本运行起来没任何区别,但新版本在真机上的的运行效率有问题,只有7.5fps 开发和运行环境, XCode6.1

    Unity3d 基于物理渲染Physically-Based Rendering之最终篇

    前情提要: 讲求基本算法 Unity3d 基于物理渲染Physically-Based Rendering之specular BRDF plus篇 Unity3d 基于物理渲染Physically-Based Rendering之实现 最后我们用fragment shader 实现,加上diffuse漫反射,代码和之前的surface差不多,只是多了reflect方向的计算,reflect方向的计算方法为用CG函数库中函数reflect, float3 reflect(float3 i, flo

    qt学习 (五) 登陆界面之连接按钮

    登陆步骤是比对输入的账号密码与数据库中的表项目是否一致 一样,  跳出mainwidget对话框 不一样,跳出消息错误框 今天就是要进去, 因为进去以后是widget的窗口,所以把用来核对消息的数据库放在MAINwidget.cpp中, 再拿一个用户点击连接的子类 login.cpp, 就在这里面画用户登录账号密码textEdit 1 除了textEdit 基本都是button 慢慢加. 登录界面可以学的东西很多. 2 在widget.h文件中加入数据库所需要的头文件, #include <Qt

    Linux FrameBuffer分析之编写基于FrameBuffer接口的应用程序

    作者:刘昊昱 博客:http://blog.csdn.net/liuhaoyutz 测试环境:Ubuntu 12.04终端模式 在网上找到一个很不错的介绍FrameBuffer相关知识的帖子,原帖网址如下:http://bbs.chinaunix.net/thread-1932291-1-1.html,现把其中测试FrameBuffer的应用程序代码转帖过来,方便分析学习: #include <stdlib.h> #include <unistd.h> #include <s

    基于物理渲染的基础理论

    本篇作为理论的概括介绍,并不涉及公式的部分 基于物理渲染的优点 很容易就可以作出真实和照片级的效果. 同一配置可以适用于在不同HDR光照环境下. 接口简单而直观,都是基于世界真实的参数.(如粗糙度,金属度,等等). 不需要美术去提供经验性的"奇怪"参数和配置. 更容易去解决问题和扩展需求. 基于物理的渲染和和传统区别 有着基于物理规则的光照模式 有着无处不在的fresnel效果 能量守恒“energy conservation”,物体平面的反射光无法超过它所解接受的入射光 基于物体材质

    翻译 基于物理渲染的美术资源设计流程

    基于物理的渲染 相关的系列文章又一篇,原创的总结也马上要发出来 如果要在游戏产品里推行基于物理的渲染,只有程序渲染管线是远远不够的,如何培训美术和设计人员去适应新的方法也是一个重要课题 这篇ppt也是我计划的一系列美术教材中的一篇,希望能对大家起到帮助,ppt里的有一个链接是要FQ的,为了方便,我就在这贴里翻译了 链接 http://pan.baidu.com/s/1mg2xSjY 49kw 原文 http://research.tri-ace.com/Data/cedec2012_FlowFo

    翻译 次世代基于物理渲染的反射模型

    本文是Tri-Ace在cedec2013上发表的次世代基于物理渲染的反射模型的翻译版,时间和能力有限,一些错误或者不好理解的地方也请联系我修正 受到physically-based shading at disney siggraph 2012的影响,很多引擎都对它有所借鉴,3A也是对他们以前的基于物理的Blinn-Phong的改进版模型做了解析后,参考Disney BRDF,设计了新的Model, 同时也在Cook-Torrance的Microfacet BRDF基础上,提出了自己对F ,G,

    SylixOS下基于Zynq-7000加载FPGA程序

    1.概述 本文主要介绍SylixOS下基于Zynq-7000平台加载FPGA程序的方法,该方法使用的是Zynq-7000的devcfg功能模块(Device Configuration Interface),该模块支持系统启动后进行FPGA程序的在线加载. 2.使用方法介绍 2.1 工程所在目录devcfg驱动模块及应用程序位于本地git仓库中,暂不提供源码,如有需要可自行移植. 2.2 使用方法 2.2.1 部署驱动模块及应用程序将驱动模块和应用程序工程分别导入IDE的workspace中并进

    基于SDF渲染字体

    18号字体 18号字体放大15倍 基于sdf渲染字体放大15倍 相比常规的渲染方式,基于SDF渲染文字可无限放大并保持清晰,几乎没有开销就可实现描边,发光,抗锯齿等效果.且它只需要很小的纹理缓存SDF信息即可. 所谓SDF(Signed-distance-field),就是将每个像素存储的颜色值换成距离文字轮廓最短距离,当像素在文字内,则用正数距离,在文字外则用负数距离,文字轮廓距离则是零,因此只要判断像素如果是正数,就输出颜色,否则丢弃颜色即可. 该技术由Valve开发半条命2时提出,当时主要