Posted on 2008-09-26 12:15
没画完的画 阅读(1325)
评论(0) 编辑 收藏 引用 所属分类:
DirectX
在 WIndows 的操作系统中,应用层它不让你直接访问显卡的内存,只能是通过它提供的接口来操作,
操作方式是对一个 DC 进行操作,Bitblt, TextOut, DrawText……等等的API
但如果是视频播放采用这样的API,那么……
我试过用 Bitblt 来完成一个动画,结果发现CPU占用是 100% 的,(难道 这些 DC 的API需要经过N层后,才最终写到显卡的内存???)
为了提高效率,微软公司于是就提供了一个可以直接读写显卡内存的接口,
这个接口绕过了系统的API,
它就是传说中的 DirectX 了
而且在 Windows 下它已经成为一种标准,
不同的硬件产商都是根据 DirectX 的标准来编写驱动,
所以我们只需要跟 DirectX 接口打交道,
不需要理会具体硬件操作(这一切,DirectX 都封装好了……)
DirectX 博大精深,可以媲美易筋经,它的内容不是一两本枕头般的书就可以把它说完。
所以,汗一下吧!!!!
Begin 废话 -------------------------------------------------
最初的 DirectX 只提供了 C++ 的开发库,
后来才提供了VB的开发库
它现在是以一个COM的形式存在的,
所以,想学 DirectX 前最好还是先了解下COM的相关东东……
End 废话 -------------------------------------------------
DirectX 包含了以下几个对象
1. DirectDraw 表面绘图对象,主要用来画2D的东西,封装了对显卡内存的直接操作,只要锁定 DirectDraw 对象后,操作
图像数据就像操作一个数组那样简单
2. Direct3D 三维绘画的接口,想做3D游戏,就靠它了
3. DirectSound wave音频对象,直接设备访部,声音捕捉和回放……
4. DirectMusic 音乐数据文件操作对象
5. DirectInput 游戏控制器对象,它在系统与 输入输出设备 之间提供一系列接口,你不用担心用户的输入输出设备是鼠标,键盘,还是游戏杆,它里面都封装好了。
6. DirectPlay 是为了支持多任务的网络游戏而设计的,为了协调速度不同的计算机之间的数据传递 (连这点微软都考虑到了,汗!)
好困,真的该去睡会了~