Direct2D简介(原ZDD)


1.Direct2D是什么?

Direct2D是一套高性能的硬件加速API(代码运行在GPU),用于渲染几何图形,图片和文本,并且可以与Direct3D,GDI,GDI+交互。

简而言之是一个2D图形API,可以提供高性能,高质量的2D渲染。在过去,3D世界是OpenGL与DirectX二分天下,但是由于OpenGL发展十分滞后,而且没有一个像微软这样强大的后台支柱,所以逐渐被DirectX所超越。回过头来说2D,过去Windows上的2D程序还主要基于GDI和GDI+,遗憾的是这两者都是软件实现,而Direct2D则不同,它基于Direct3D,所以能够使用硬件加速(通俗的理解:

硬件加速是用显卡的GPU解码视频,几乎不占用CPU,在播放高清视频时如果你的CPU不给力就会卡,不卡也会占用率很高,开启硬件加速就是让显卡分担了CPU的解码工作,所以你可以再开别的程序也不会卡
)功能,能更大程度的发挥硬件特性,创建高性能,高质量的2D图形,这些图形包括几何图形,如矩形,椭圆等。还有位图,文本。而且更方便的是,Direct2D与GDI,GDI+和D3D都是可以交互的。

2Direct2D使用人员:

Direct2D 主要供以下几类开发人员使用:

    • 大型企业级本机应用程序开发人员。
    • 创建供下游开发人员使用的控件工具包和库的开发人员。
    • 需要对二维图形进行服务器端呈现的开发人员。
    • 使用 Direct3D 图形,并且需要在菜单、用户界面 (UI) 元素和抬头显示器 (HUD) 中使用高性能的简单二维和文本呈现的开发人员。

 

3D2D的架构:


Direct2D是基于Direct3D 10.1 API构建的,由上图可以看出,Direct2D还自带了一个软件实现(Software rasterizer),这是因为如果显卡不支持硬件加速,那么Direct2D可以使用软件方式渲染,即使这样,效果还是要优于GDI的。上图中在Direct3D下面还有一个层叫DXGI,其全称是:DirectX Graphics(图像,图形) Infrastructure(基础设施),DXGI从Direct3D 10中才开始存在,主要是为了将一些与3D图形无关的工作从原本的runtime中分离处理,这些工作多是一些底层的操作,比如枚举设备,显示帧缓冲,gamma控制,管理全屏等,在Direct3D 10以前的版本中,这些操作全部集成到了Direct3D的API中,现在分离处理单独成为一个component,就是DXGI。

补:  什么是runtime:runtime就是程序运行时的状态
还有一个compiletime,就是编译时代状态
程序设计中要避免runtime的错误,compiletime的错误由编译器检测。

运行时rumtime就是程序运行的时候

运行时库就是程序运行的时候所需要依赖的库。

运行的时候指的是指令加载到内存并由CPU执行的时候。
C代码编译成可执行文件的时候,指令没有被CPU执行,这个时候算是编译时,就是编译的时候
4交互性

 
 
D2D如果要输出文字,可以使用是DirectWrite。
如果要输出图片,可以使用WIC(Windows Image Compennet)。
几何图形自己可以直接输出。
 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值