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

    作者: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渲染和绘制的效率。
     
     
     
  • 相关阅读:
    Android——继续深造——从安装Android Studio 2.0开始(详)
    PHP——安装wampserver丢失MSVCR110.dll
    Marza Gift for GDC 2016
    Retrieve OpenGL Context from Qt 5.5 on OSX
    Space Time Varying Color Palette
    Screen Space Depth Varying Glow based on Heat Diffusion
    Visualization of Detail Point Set by Local Algebraic Sphere Fitting
    Glass Dragon
    Jump Flood Algorithms for Centroidal Voronoi Tessellation
    京都之行
  • 原文地址:https://www.cnblogs.com/findumars/p/5697120.html
Copyright © 2011-2022 走看看