为了账号安全,请及时绑定邮箱和手机立即绑定

【SylixOS】Qt 基于FrameBuffer渲染界面

标签:
C++


简介 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所示

【SylixOS】Qt 基于FrameBuffer渲染界面

图 2.1 插件初始化

2.2窗口绘制

在SylixOSFBScreen中通过打开fb0设备获取屏幕信息,再通过mmap内存映射,刷新屏幕像素值。如图 2.2所示

【SylixOS】Qt 基于FrameBuffer渲染界面

图 2.2 FrameBuffer读写实现

2.3SylixOSFB的实现

下图是SylixOSFB插件和QtGui层交互流程图。如图 2.3所示

【SylixOS】Qt 基于FrameBuffer渲染界面

图 2.3 SylixOSFB交互流程

©著作权归作者所有:来自51CTO博客作者suokin的原创作品,如需转载,请注明出处,否则将追究法律责任


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消