微软Windows图形接口

1.1.      DWM

桌面窗口管理器(英语:Desktop Window Manager,简称DWM)是微软操作系统Windows Vista的桌面管理工具。在Windows Vista正式推出之前,DWM原来叫作桌面合成引擎(Desktop Compositing Engine)。

现在计算机的图形芯片飞速发展,具有了很强的处理能力,现在它们主要用于游戏等方面。DWM的主要目标就是利用图形芯片的处理能力也给非游戏用户带来尽可能好的体验。因此DWM是基于DirectX,特别是Direct3D。更准备是说,DWM是直接建立在一个称为Milcore(Milcore也是WPF的内核)的层次之上。Milcore又建立在DirectX之上。最终是用Direct3D纹理来表示窗口内容和窗口框架。DWM/Milcore调用适当的Direct3D函数把所有的Direct3D纹理合成为最终的桌面。Vista或Win7桌面就可以理解为一个全屏幕的Direct3D应用程序。

1.2.      GDI

GDI是Graphics Device Interface的缩写,含义是图形设备接口,它的主要任务是负责系统与绘图程序之间的信息交换,处理所有Windows程序的图形输出。

在Windows操作系统下,绝大多数具备图形界面的应用程序都离不开GDI,我们利用GDI所提供的众多函数就可以方便的在屏幕、打印机及其它输出设备上输出图形,文本等操作。GDI的出现使程序员无需要关心硬件设备及设备驱动,就可以将应用程序的输出转化为硬件设备上的输出,实现了程序开发者与硬件设备的隔离,大大方便了开发工作。

GDI具有如下特点:

1. 不允许程序直接访问物理显示硬件,通过称为“设备环境”的抽象接口间接访问显示硬件;

2. 程序需要与显示硬件(显示器、打印机等) 进行通讯时,必须首先获得与特定窗口相关联的设备环境;

3. 用户无需关心具体的物理设备类型;

4. Windows参考设备环境的数据结构完成数据的输出。

1.3.      GDI+

GDI+从Windows XP操作系统开始引入,提供二维的矢量图形,改进旧有的GDI,加强的可视化属性,例如边界,渐变和透明。通过GDI+,能够直接将BMP转成JPG或其它格式的图片,还能够生成SVG、Flash等。GDI+ 使用ARGB的值来表示颜色。GDI+的双缓冲技术可以提高绘图效率,可避免屏幕闪烁。

GDI+号称提供了硬件加速功能,可以直接访问硬件。但这似乎是夸饰的说法,GDI+无法直接使用VGA卡上的GPU来加速绘图的相关计算,因此在绘图性能上远远不及DirectX,只能做到Lock记亿体进行操作。(GDI+只是一组重新封装GDI的API,DirectX则是从COM到底层的显卡驱动程序的组合)

随GDI+推出了加强型EMF,即EMF+,可以同时支持GDI和GDI+。Microsoft .NET通过System.Drawing命名空间提供对GDI+的支持。The GDI+ 的DLL可移植到旧有的Windows版本上。

GDI+在GDI基础之上的新增功能:

1)        渐变的画刷(Gradient Brushes)。

2)        基数样条函数(Cardinal Splines)。

3)        持久路径对象(Persistent Path Objects)。

4)        变形和矩阵对象(Transformations & Matrix Object)。

5)        可伸缩区域(Scalable Regions)。

6)        Alpha Blending(混合)。

7)        多种图像格式支持。

8)        其它,譬如重新着色、颜色校正、元数据、图形容器等。

1.4.      DirectX

DirectX(全称:Direct eXtension,简称DX)是由微软公司创建的多媒体编程接口。由C++编程语言实现,遵循COM。其API包含DirectX Graphics、DirectPlay、DirectSound、DirectInput、DirectSetup等部分(Direct3D 与DirectDraw已集成成DirectX Graphics)、DirectMusic、DirectPlay。被广泛使用于Microsoft Windows、Microsoft Xbox和Microsoft Xbox 360电子游戏开发,并且只能支持这些平台。目前最新版本为DirectX 11,创建在最新的Windows 7及Windows Vista操作系统之上。

1.5.      Managed DirectX

Managed DirectX 实质上是对DirectX进行了一个轻量级的封装,Microsoft在2003年10月初发布了Microsoft DirectX 9.0 SDK Update (Summer 2003),其中就着重改进了Managed DirectX部分。一方面使它能与.NET Framework紧密集成,可供.NET 平台下的其他语言调用 (如C#);另一方面对DirectX程序编写进行了进一步简化,使得DirectX向RAD开发的方向又迈进了一大步,毕竟ASP.NET、 WinForm这些东西是在网络上运行的。

 

1.6.      Direct2D

1.6.1.       介绍

Direct2D是美国微软公司用来取代 DirectDraw 以及GDI, GDI+等新技术,主要提供2D 动画的硬件加速,目前只支援 Windows Vista SP2以及Windows 7以上。

Direct2D技术架构于Direct3D 10.1 API 之上,能够透过硬件加速功能来建立2D图形,而且完全支持透明和Alpha混合。Direct2D 亦支援软件实现(Software rasterizer),亦即在显卡不支持硬件加速情况下,Direct2D 仍可以使用软件方式描绘,且效果仍优于GDI。

Direct2D 可以使用DXGI(DirectX Graphics Infrastructure) 与交互操作,Direct2D还能很好的支持DirectWrite。

Direct2D的支持高品质的渲染,具有以下特点:

支援ClearType 文字的呈现方式(DirectWrite 提供)。

消除原图锯齿状(Per primitive antialiasing)。

几何形状(直线,曲线)和位图绘制和填写。

纯色(Solid color)、线性。

描绘中间层。

多元的几何操作(如unions, intersections, widening, outlining等)。

 

Direct2D的使用设备的独立坐标系统,它可以依照显示屏幕的大小来自动调整GUI的DPI缩放。现在Direct2D 用于Internet Explorer 9及Monzilla FireFox 4。

1.7.      WPF

1.7.1.       介绍

Windows Presentation Foundation(WPF)是美国微软公司推出.NET Framework 3.0的组成部分之一,它是一套基于XML、.NET Framework、矢量绘图技术的展示层开发框架,微软视其为下一代用户界面技术,广泛被用于Windows Vista的界面开发。

WPF使用一种新的XAML(eXtensible Application Markup Language)语言来开发界面,这将把界面开发以及后台逻辑很好的分开,降低了耦合度,使用户界面设计师与程序开发者能更好的合作,降低维护和更新的成本。

WPF/E 是WPF的子集合,全名是:Windows Presentation Foundation Everywhere。在基于XAML与JavaScript之下,可跨越各种平台,目前 WPF/E 已演化为 Microsoft Silverlight,担负微软在 RIA (Rich Interactive Application, Rich Internet Application) 领域,并正面与 Adobe Flash 竞争的产品。

1)        绘图服务

所有的图形皆可由Direct3D产生。

目标在于统一各种显示图形。

Windows可以通过Direct3D 来减轻在绘图任务上的负荷,这项技术乃基于电脑显卡的绘图处理单元(Graphics Processing Unit)。

支持矢量绘图(vector graphic)。

支持3D透视图并且影响2D应用程序。

2)        媒体播放

WPF 针对2D图形提供形状基元(shape primitives),自带笔刷(brushes)、画笔(pens)、几何(geometries)与变形(transforms)。

WPF 以Direct3D提供完整的3D功能。但是,WPF 提供更完整的集成性在于用户界面上(UI)、文件(documents),与媒体(media)。这使得尽可以实现 3D UI, 3D 文件,和 3D 媒体。

支持了大量的图片格式(image formats)。

WPF 支持大量影音格式,如: WMV,MPEG 以及某些 AVI 档。

WPF 支持以时间为基础的动画效果,不同于以帧=>zh-tw:影格=>zh-cn:帧为基础的处理方式。如此动画的速度与系统性能就不会有所关连。

文件的体现支持ClearType,这提供一种次像数(sub-pixel)定位功能,强化其自然风格。WPF 同时支持OpenType字体样式。

1.7.2.       历史

WPF的正式版本随.net framework 3.0一起发布。伴随着.net Fromework的升级,WPF也已经升级到了WPF 4.0。

1.8.      XNA

1.8.1.       介绍

XNA中的X表示能够在WindowsXbox和合作伙伴之间达到跨平台的强大的软件工具。N表示“下一代(Next-generation)”,A表示“架构(Architecture)”。XNA是基于DirectX的游戏开发环境,是微软对于 Managed DirectX 的修正及扩充版本。XNA Game Studio Express 是专业跨平台整合型游戏开发套件XNA Studio的简化版,以Visual C# Express 2005为基础,并针对业余创作者加以改良,提供简易的开发环境与详细的教学文件。

XNA Game Studio Express中将包含以 .NET Framework 2.0 为基础、并加入游戏应用所需之函式库所构成的 XNA Framework;由一系列工具所构成、让开发者能以更简易的方式将3D内容整合到游戏中的 XNA Framework Content Pipeline;以及教导使用者如何进行游戏开发的入门说明教学文件与范例。

1.8.2.       历史

XNA Build。2006年, Microsoft XNA Build March 2006 CTP 在GDC 上被发布。XNA Build 是一工具,允许你管理复杂的编译,类似Msbuild 和Ants,功能更强大。2006年8月30日微软宣布了XNA Game Studio Express Beta1。2006年12月微软又发布了XNA Game Studio Express的正式版,该版本加入了内容管道(Content Pipeline)。

XNA Game Studio。2010年美国当地时间3月15日,微软官方XNA发布了期待已久的XNA 4.0的社区预览版和路线图,包含在Windows Phone Developer Tool CTP中。目前只有英文版本,可以用于编写Silverlight或XNA for Windows Phone游戏,Xbox游戏,PC游戏,没有Zune游戏的开发模版。

XNA Game Studio Express。第一个XNA Game Studio Express 的beta版本首度于2006年8月30日提供下载,2006年11月1日有第二个版本推出。2006年12月11日微软首度提供正式版,2007年4月24日, Microsoft 更新 XNA Game Studio Express 1.0 Refresh。

XNA Game Studio 2.0。XNA Game Studio 2.0 于2007年12月13日推出。 XNA Game Studio 2.0。Visual Studio 2005亦实现有相同的特色与功能 (包括免费的 Visual C# 2005 Express Edition)。

XNA Game Studio 3.0。XNA Game Studio 3.0 (基于Visual Studio 2008) 支持Zune的游戏开发。beta版在2008年9月推出。2008年10月30日推出正式版. XNA Game Studio 3.0 目前可支持 C# 3.0, Visual Studio 2008之上还支持LINQ. 在XNA3.0中,SoundEffect可以不通过XACT也可以做到特效的处理。

XNA Game Studio 3.1。XNA Game Studio 3.1于2009年6月11日推出。可支持 video playback, 并修正了Audio API, 还支持Xbox LIVE Party system 并且可以使用 Xbox 360 Avatars。

XNA Game Studio 4。XNA Game Studio 4 最早2010年3月9日由 "Community Technical Preview" 在 GDC 上发布, 并于2010年9月16日完整推出。XNA 4集成了Visual Studio 2010, 可支持Windows Phone 7 平台 (包括:3D API的硬件加速)。VertexDeclaration 在 XNA Game Studio 4.0中略有改变,另外SpriteBatch.Begin也可以配合pixel shader。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值