码迷,mamicode.com
首页 > 编程语言 > 详细

QML的渲染方式相较于之前的版本也有了重大的更新(CPU线程负责绘制,GPU线程负责渲染),还有好多经常评论 good

时间:2016-07-22 22:40:59      阅读:194      评论:0      收藏:0      [点我收藏+]

标签:

作者:qyvlik
链接:http://www.zhihu.com/question/38867614/answer/78583440
来源:知乎
著作权归作者所有,转载请联系作者获得授权。

做UI啊。如果是桌面应用,QML可以更快速。如果是手机UI,H5绝对占优。


毕竟Qt提供的那一套控件库更适合桌面应用,而当年诺基亚都开发了塞班和米果的QML手机控件库,现在Ubuntu,旗鱼,黑莓都有自己的QML手机控件库。


渲染性能上。QML有绝对统一的接口规范以及渲染机制。(跨平台是这样的)。 H5桌面系统一套,就谷歌做的好。手机WebKit嗯,但是系统对WebKit的支持也不能说表现一样。


接下来我来说说QML吧。 QML的执行引擎是基于Qt的V4引擎,V4最大的改变就是添加了类型。(有关源码分析,请移步qtdeclarative 源码略读)添加了类型让QML的属性绑定相比于之前的版本(Qt4的QtQuick 1.x)有极其大的提升。 属性绑定(数据绑定,表达式绑定)。嗯,在QML中随处可见的属性绑定,虽然有H5中有类似数据绑定的JS库。但QML语法上就支持了。

QML的渲染方式相较于之前的版本也有了重大的更新。 之前的版本(Qt4的QtQuick 1.x)更接近widget,虽然是Griphics/view,但是渲染更多是优先提交给cpu处理。当然,在N9(嗯,第一个完全使用QML构造应用的系统),会使用gpu,有硬件加速嘛。


现在的QML渲染方式更倾向于优先使用显卡。(所以现在使用QML需要良好的显卡支持,例如正确安装显卡驱动)。
简单扯扯现在QML的渲染绘制机制吧。


1. 基于事件的,基于Griphics/secen


2. 有两个线程,一个绘制,一个渲染。


3. cpu负责绘制,gpu负责渲染。


4. 当需要重绘时,绘制线程暂停,渲染线程进行渲染,渲染完毕,绘制线程启动,绘制。


嗯,上面那个我是看Qt英文文档,自己理解的,叙述有出入。 此外,Qt正在开发的Qt3D,类比WebGL,其性能以及可部署性远大于H5的WebGL,嗯,是个重型武器。其实也反应出了QML渲染和绘制的效率。
 
 
 

QML的渲染方式相较于之前的版本也有了重大的更新(CPU线程负责绘制,GPU线程负责渲染),还有好多经常评论 good

标签:

原文地址:http://www.cnblogs.com/findumars/p/5697120.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!