首页 > 其他分享 >2019-3-8-为何使用-DirectComposition

2019-3-8-为何使用-DirectComposition

时间:2024-10-11 12:20:13浏览次数:8  
标签:动画 界面 组合 渲染 2019 为何 DirectComposition DWM

title

author

date

CreateTime

categories

为何使用 DirectComposition

lindexi

2019-3-8 8:56:9 +0800

2018-04-18 09:44:40 +0800

windows DirectComposition

本文主要翻译Why use DirectComposition,介绍 DirectComposition 的功能和优点。

创建更加迷人的界面

虽然界面创建好看是设计师的能力,但是如何可以提高性能,支持更多的动画,这时设计师才可以做出更好的界面。

基于 windows 的软件可以通过 DirectComposition 组合 Visual 和对 Visual 做动画来创建迷人的界面,通过这个技术可以创建独一无二的视觉体验。

虽然看起来很多界面框架都这样说,但是 DirectComposition 从字面看就是 组合的Direct。

流畅丰富的动画

现在的界面如果没有动画,一般是很难做出好的体验。如果有很好的动画,但是性能很差,用户也会觉得程序员可以祭天。如何使用 DirectComposition ,可以获得高性能的位图组合引擎,因为有硬件加速。对于帧率要求高的动画也可以使用 DirectComposition ,可以支持高速绘制、缩放和组合很多动画。

如果使用 DirectComposition ,那么 UI 线程不会因为渲染而 starve ,因为 DirectComposition 是在一个专用的线程运行和程序的 UI 线程分离。所以在做复杂动画不需要担心主线程无法处理。

组合不同的位图

很多的 Windows 程序都组合几个渲染技术,如界面菜单使用 GDI 来画,因为画静态 GDI 性能好。画动画使用 D3D 来画,然后把多个渲染进行组合,显示在一个窗口,这时就可以使用 DirectComposition 来组合位图。

如果使用 DirectComposition 就不需要关注不同渲染框架内容重叠时的处理,可以把不同位图渲染在相同的层级或子窗口。

通过集成 DWM 节省内存

实际 DirectComposition 通过集成 DWM 来创建组合位图和动画显示到屏幕,所以使用 DirectComposition 不需要再安装其他的渲染框架。

需要知道的是 DirectComposition 不是基于 DWM 而是集成,而且 DirectComposition 没有渲染元素的能力而是对渲染完成的位图进行组合。

那么 DWM 是什么作用,DWM 实际作用 Windows 组合引擎或合成程序,需要每个窗口把显示的内容给屏外表面或缓冲区,缓冲区是系统给每个顶层窗口分配的,所有的 GDI、D3D、D2D 到先渲染到这里。然后 DWM 决定如何显示,是组合窗口还是做特效,最后再把缓存放到显卡。

兼容原有代码

如果使用 DirectComposition 需要修改之前的界面代码,那么是一个很大的工作,好在使用 DirectComposition 可以支持以前的界面代码。而且 DirectComposition 可以对之前写的界面代码进行组合和动画,从而做出好看的界面。所以可以通过 DirectComposition 对界面进行美化不需要修改原有的代码。

参见:Why use DirectComposition

注意,在 Windows 8 和以上的系统才能使用 DirectComposition 的 API 包括在 x86 x64 和 ARM 等系统










标签:动画,界面,组合,渲染,2019,为何,DirectComposition,DWM
From: https://blog.51cto.com/u_11283245/12217473

相关文章

  • 2019-9-20-SharpDx-的代替项目
    titleauthordateCreateTimecategoriesSharpDx的代替项目lindexi2019-09-2009:13:59+08002019-09-2009:13:58+0800现在SharpDx已经不维护了,如果还需要在C#使用Dx相关技术,可以使用本文列出的替代项目Vortice.Windowsamerkoleci/Vortice.Windows:WindowsandUWPlibrarie......
  • 学校为何纷纷拥抱国产电路仿真软件?揭秘背后的四大驱动力
    在当今数字化教育飞速发展的时代,学校教学工具的选择正悄然发生着变化。一个显著的趋势是,越来越多的学校开始大量采用国产电路仿真软件,这一转变背后蕴含着多重驱动力。本文将深入探讨学校选择国产电路仿真软件的四大原因,揭示其背后的深刻意义。‌一、信息安全与技术自主可控的......
  • 老年人感冒发热恶寒,服感冒清热颗粒为何丝毫无效? 转载
    女患,61岁,上周突然变天时未能及时加衣服而冻感冒了,当天上午开始头痛、发热、恶寒、身上无汗、裹着床棉被还喊冷,双腿无力,且双脚冰凉;患者平时有些中医药常识,知道自己是风寒感冒导致的发热,于是自购感冒清热颗粒一盒,于上午下午分别两包一起冲服了两次,但直到次日上午,症状无丝毫缓解,遂被......
  • 为何实验室、课题组选择够快云库管理科研资料?
    够快云库提供文件管理服务时,很多高校、科研机构的实验室、课题组选择用够快云库管理组内的文件、资料。和一般团队不同,实验室、课题组的文件以科研文献、实验数据为主,对安全要求高;课题组成员之间文献、实验数据同步、协作需求频繁;还涉及论文的收集、修改……使用中,够快云库......
  • 免费与付费SSL证书:为何差距如此之大?
    SSL证书已经越来越多的使用在网站,小程序和APP上,对于保障网络安全,加密数据信息有至关重要的作用。随着SSL证书市场的发展,各种类型的证书产品也在不断丰富,用户在选择SSL证书时,除了可以购买付费证书,也可以在部分证书平台申请免费SSL证书。出于对成本的考虑,使用免费SSL证书无可厚......
  • 利士策分享,婚姻为何被称为大事?
    利士策分享,婚姻为何被称为大事?在历史的长河中,婚姻一直被视为人生中的头等大事,这一观念跨越时空,深深植根于各种文化和社会结构中。古人为何将婚姻称为“大事”,这背后蕴含着丰富的社会、文化和心理寓意。从社会结构的角度来看,婚姻是连接两个家庭乃至两个家族的纽带。在古代,......
  • [CSP-S 2019 江西] 网格图
    算法暴力建图直接跑Kruskal,显然能通过\(64pts\)的点正解分析Kruskal的复杂度发现比较边权非常的浪费,很显然是不必要的并查集求环路也浪费了网格图的性质考虑优化把每一条边看做一个整体,整体比较只需要\(O((n+m)\log(n+m))\)问题是这样比较之后正确性如......
  • 2019_07_16_01
    this、apply、call、bindthisthis永远指向最后调用它的那个对象apply、call的区别对于apply、call二者而言,作用完全一样,只是接受参数的方式不太一样。例如,有一个函数定义如下:varfunc=function(arg1,arg2){};就可以通过如下方式来调用:使用场景参数明确使用call......
  • A股、港股大涨,看多中国的顶级金融机构为何都选择极狐GitLab?
    疯狂上涨的A股、港股节前一周,上证指数累计上涨超12%,创下2008年11月以来最大单周涨幅;深证成指累计上涨超17%,创下1996年4月最大单周涨幅;创业板指上涨超22%,创下史上最大单周涨幅。过去两周,富时A50指数上涨25.5%、金龙指数上涨38.7%、iShareMSCIChinaETF上涨33.9%、3倍做多富......
  • [CSP-S2019] 括号树
    算法特殊性质显然链的情况就是括号匹配因此显然有代码代码#include<bits/stdc++.h>#defineintlonglongconstintMAXN=5e5+20;intn;std::stringBraket;intfa[MAXN];boolCheck_Special_Quality(){for(inti=2;i<=n;i++){if(f......