Posted on 2008-09-26 12:15
沒畫完的畫 閱讀(1330)
評論(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 是為了支持多任務的網絡游戲而設計的,為了協調速度不同的計算機之間的數據傳遞 (連這點微軟都考慮到了,汗!)
好困,真的該去睡會了~