久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

閑話WPF之四(WPF與Win32)

 joojo 2007-10-16

說(shuō)明:這里的Win32特指Vista操作系統(tǒng)之前的所有圖形系統(tǒng):GDI,、GDI+,、Direct3D,。

 

GDI是當(dāng)今應(yīng)用程序的主流圖形庫(kù),,GDI圖形系統(tǒng)已經(jīng)形成了很多年,。它提供了2D圖形和文本功能,,以及受限的圖像處理功能,。雖然在一些圖形卡上支持部分GDI的加速,,但是與當(dāng)今主流的Direct3D加速相比還是很弱小,。GDI+開(kāi)始出現(xiàn)是在2001年,,它引入了2D圖形的反走樣,浮點(diǎn)數(shù)坐標(biāo),,漸變以及單個(gè)象素的Alpha支持,,還支持多種圖像格式。但是,,GDI+沒(méi)有任何的加速功能(全部是用軟件實(shí)現(xiàn)),。

 

當(dāng)前版本的WPF中,對(duì)一些Win32功能還沒(méi)有很好的支持,,比如WMF/EMF文件,,單個(gè)象素寬度的線條等等。對(duì)于這些需求還需要使用GDI/GDI+來(lái)實(shí)現(xiàn),。

 

Windows Vista中,,GDIGDI+仍然支持,它們與WPF并行存在,,但是基本上沒(méi)有任何功能性的改進(jìn),。對(duì)GDIGDI+的改進(jìn)主要集中在安全性和客戶相關(guān)問(wèn)題上。WPF的所有提交都不依賴于GDIGDI+,,而是Direct3D,。并且所有的Primitive都是通過(guò)Direct3D的本地接口實(shí)現(xiàn)的。還記得我前面隨筆中提到過(guò)的Milcore嗎,?它就是和Direct3D交互的非托管代碼組件,。由于WPF的大部分代碼都是以托管代碼的形式存在的,,所以WPF中有很多托管、非托管的交互,。當(dāng)然,,在一些圖形卡不支持WPF所需要的功能時(shí),WPF也提供了稍微低效的軟件實(shí)現(xiàn),,以此來(lái)支持在某些PC上運(yùn)行WPF應(yīng)用程序,。

 

Windows Vista中,Direct3D的關(guān)鍵改進(jìn)就是引入了新的顯示驅(qū)動(dòng)模型,。VDDM驅(qū)動(dòng)模型虛擬化了顯卡上的資源(主要是顯示內(nèi)存),,提供了一個(gè)調(diào)度程序,因此多個(gè)基于Direct3D的應(yīng)用程序可以共享顯卡(比如WPF應(yīng)用程序和基于WPFWindows Vista桌面窗口管理),。VDDM的健壯性,、穩(wěn)定性也得到了提高,大量的驅(qū)動(dòng)操作從內(nèi)核(Kernel)模式移動(dòng)到了用戶(User)模式,,這樣提高了安全性,,也簡(jiǎn)化了顯示驅(qū)動(dòng)的開(kāi)發(fā)過(guò)程,。

 

Windows Vista中存在兩個(gè)版本的Direct3DDirect3D 9Direct3D 10,。WPF依賴于Direct3D 9,這樣能更廣泛的解決兼容性問(wèn)題,。另外一個(gè)非常重要的原因就是為Vista的服務(wù)器版本提高方便,,因?yàn)榉?wù)器版本的Vista對(duì)顯卡和Direct3D基本上沒(méi)有任何的要求。同時(shí)WPF也支持Direct3D 10,。Direct3D 10依賴與VDDM,,只能在Windows Vista上使用。由于Windows XP沒(méi)有VDDM,,雖然Microsoft做了很大的努力來(lái)改善XPDirect3D 9相關(guān)驅(qū)動(dòng),,提高內(nèi)容的顯示質(zhì)量,但是由于XP中沒(méi)有對(duì)顯卡資源的虛擬化,,強(qiáng)制所有的應(yīng)用程序都用軟件提交,。


WPF對(duì)某些多媒體的功能支持還需要依賴?yán)系募夹g(shù),比如DirectShow,。當(dāng)我們進(jìn)行音頻視頻的捕捉或者其它任務(wù)時(shí),,只能直接用DirectShow實(shí)現(xiàn),然后再用HwndHost嵌入到WPF內(nèi)容當(dāng)中,。

 

利用類似的技術(shù),,我們可以在WPF應(yīng)用程序中顯示自定義格式的內(nèi)容。通過(guò)提供自定義的DirectShow CODEC,,然后用Media元素實(shí)現(xiàn)和WPF內(nèi)容毫無(wú)限制的集成,。

 

另外,,WPF對(duì)XPS等文檔的打印輸出也得到了極大的改善。XPS文檔本身的規(guī)范也極大的提高了其打印的質(zhì)量,,XPS文檔的規(guī)范可以參考MSDN的資料,。除了打印,Vista操作系統(tǒng)中對(duì)遠(yuǎn)程的改進(jìn)也部分依賴于WPF,,比如有遠(yuǎn)程協(xié)助,、遠(yuǎn)程桌面和終端服務(wù)等等。它們的實(shí)現(xiàn)過(guò)程是通過(guò)發(fā)送一系列的“遠(yuǎn)程”命名到客戶端,,客戶根據(jù)自己PC的性能和命名進(jìn)行顯示,,這樣顯示的質(zhì)量能得到極大的提高。

 

WPF中,,對(duì)Direct3D進(jìn)行各種封裝,。當(dāng)然,如果你本身對(duì)Direct3D/OpenGL很熟悉,,也可以直接在WPF中使用,。封裝后的Direct3D更容易使用。并且在Web應(yīng)用程序(XBAP)也可以使用Direct3D,。在WPF中使用的Direct3D,,沒(méi)有直接用非托管代碼控制所擁有的靈活性,也不能直接對(duì)硬件進(jìn)行底層控制,。

 

WPF中所有的提交都是矢量形式的,,我們可以對(duì)圖像或窗口進(jìn)行任意級(jí)的放縮,而圖像的質(zhì)量不會(huì)有任何的損耗,。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多