Posted on 2008-09-26 12:15
沒畫完的畫 閱讀(1330)
評(píng)論(0) 編輯 收藏 引用 所屬分類:
DirectX
在 WIndows 的操作系統(tǒng)中,應(yīng)用層它不讓你直接訪問顯卡的內(nèi)存,只能是通過它提供的接口來操作,
操作方式是對(duì)一個(gè) DC 進(jìn)行操作,Bitblt, TextOut, DrawText……等等的API
但如果是視頻播放采用這樣的API,那么……
我試過用 Bitblt 來完成一個(gè)動(dòng)畫,結(jié)果發(fā)現(xiàn)CPU占用是 100% 的,(難道 這些 DC 的API需要經(jīng)過N層后,才最終寫到顯卡的內(nèi)存???)
為了提高效率,微軟公司于是就提供了一個(gè)可以直接讀寫顯卡內(nèi)存的接口,
這個(gè)接口繞過了系統(tǒng)的API,
它就是傳說中的 DirectX 了
而且在 Windows 下它已經(jīng)成為一種標(biāo)準(zhǔn),
不同的硬件產(chǎn)商都是根據(jù) DirectX 的標(biāo)準(zhǔn)來編寫驅(qū)動(dòng),
所以我們只需要跟 DirectX 接口打交道,
不需要理會(huì)具體硬件操作(這一切,DirectX 都封裝好了……)
DirectX 博大精深,可以媲美易筋經(jīng),它的內(nèi)容不是一兩本枕頭般的書就可以把它說完。
所以,汗一下吧?。。。?br>
Begin 廢話 -------------------------------------------------
最初的 DirectX 只提供了 C++ 的開發(fā)庫,
后來才提供了VB的開發(fā)庫
它現(xiàn)在是以一個(gè)COM的形式存在的,
所以,想學(xué) DirectX 前最好還是先了解下COM的相關(guān)東東……
End 廢話 -------------------------------------------------
DirectX 包含了以下幾個(gè)對(duì)象
1. DirectDraw 表面繪圖對(duì)象,主要用來畫2D的東西,封裝了對(duì)顯卡內(nèi)存的直接操作,只要鎖定 DirectDraw 對(duì)象后,操作
圖像數(shù)據(jù)就像操作一個(gè)數(shù)組那樣簡單
2. Direct3D 三維繪畫的接口,想做3D游戲,就靠它了
3. DirectSound wave音頻對(duì)象,直接設(shè)備訪部,聲音捕捉和回放……
4. DirectMusic 音樂數(shù)據(jù)文件操作對(duì)象
5. DirectInput 游戲控制器對(duì)象,它在系統(tǒng)與 輸入輸出設(shè)備 之間提供一系列接口,你不用擔(dān)心用戶的輸入輸出設(shè)備是鼠標(biāo),鍵盤,還是游戲桿,它里面都封裝好了。
6. DirectPlay 是為了支持多任務(wù)的網(wǎng)絡(luò)游戲而設(shè)計(jì)的,為了協(xié)調(diào)速度不同的計(jì)算機(jī)之間的數(shù)據(jù)傳遞 (連這點(diǎn)微軟都考慮到了,汗!)
好困,真的該去睡會(huì)了~