DirectX初探
由于要做一个虚拟声音实验,涉及到DirectSound API,所以研究了一下什么是DirectX。
DirectX是由微软创建的多媒体编程接口,仅可用于微软自家平台(如Windows、Xbox等)。既然是多媒体编程接口,就涉及对图像、声音等多媒体信息的操作。因此,DirectX并不是一个单纯的图形API,而是一个用途广泛的API,提供了一整套多媒体接口方案,只是其在3D图形方面的表现尤为突出,因此常被作为图形接口而被大家记住。
DirectX本质上是一组低级的应用程序接口(API),Windows应用程序通过它来访问显卡与声卡等多媒体设备,从而获得高性能的硬件加速多媒体支持。同时,DirectX也是屏蔽硬件差异,提高应用程序适配性的重要桥梁。
DirectX的分类:
DirectX是由许多API组成的,主要分为四部分:显示部分、声音部分、输入部分和网络部分。
显示部分主要包括DirectDraw和Direct3D;
声音部分的主要API是DirectSound;
输入部分的主要API是DirectInput,用于支持多种游戏输入设备;
网络部分的DirectPlay主要为了具有网络功能的游戏而开发的,提供TCP\IP、IPX、Modem、串口等多种连接方式。
DirectX的目的:
旨在使基于Windows的计算机成为运行和显示具有丰富多媒体元素的应用程序的理想平台。
DirectX向开发人员提供了一个共同的硬件驱动标准,使得开发者不用针对每一品牌的硬件编写不同的驱动程序,也降低了用户安装和配置硬件的复杂度。
举例来说,以前在DOS下玩游戏时,并不是安装上了就可以玩了,玩家往往首先要设置声卡的品牌和型号,然后还要设置IRQ、IO、DMA等,有一个地方设置的不对,游戏声音就发不出来。为了让游戏能够在众多电脑上正确运行,开发者必须在游戏制作之初,就把市面上所有声卡硬件数据都收集过来,根据其不同的API写不同的驱动程序。为了解决这个难题,微软推出了公共应用程序接口——DirectX。游戏开发者只需要面向DirectX编写游戏,而显卡、声卡的硬件厂商只需要提供支持DirectX的驱动程序即可。