gdi是什么意思 GDI 和opengl,DirecX,vulkan是并列的東西么?
GDI 和opengl,DirecX,vulkan是并列的東西么?請(qǐng)問(wèn)C 的圖形庫(kù)都是基于Windows提供的GDI函數(shù)實(shí)現(xiàn)的嗎?首先,我們來(lái)談?wù)剤D形庫(kù)的概念。圖形庫(kù)分為二維圖形矢量庫(kù)和三維圖形庫(kù)。
GDI 和opengl,DirecX,vulkan是并列的東西么?
請(qǐng)問(wèn)C 的圖形庫(kù)都是基于Windows提供的GDI函數(shù)實(shí)現(xiàn)的嗎?
首先,我們來(lái)談?wù)剤D形庫(kù)的概念。圖形庫(kù)分為二維圖形矢量庫(kù)和三維圖形庫(kù)。與2D一樣,在windows上通常是GDI、gdiplus和direct2d。還有跨平臺(tái)Cairo和AGG,可以在Linux和MacOS上使用。
它還包括軟件實(shí)現(xiàn)和硬件加速。例如,GDI和gdiplus由CPU執(zhí)行,這是一種純軟件方式。而且,GDI長(zhǎng)時(shí)間沒(méi)有抗混疊,繪制效果很差。但在早期的windows系統(tǒng)中,它被用來(lái)驅(qū)動(dòng)2D界面。現(xiàn)在基本上是D3D加D2D,GDI plus是一個(gè)讓GDI支持反走樣的產(chǎn)品,但是它的效率不能直接看出來(lái)。
現(xiàn)在我們?cè)趙indows中看到的許多應(yīng)用程序都是用QT制作的,而且許多應(yīng)用程序是用directui框架制作的。QQ是用自己的directui框架制作的。也就是說(shuō),QT不是一個(gè)圖形庫(kù),這是很多人無(wú)法分辨的。QT是一個(gè)跨平臺(tái)的接口框架。接口框架不僅包括圖形抽象層,還包括許多控制實(shí)現(xiàn)、邏輯處理和消息處理。它的底層圖形庫(kù)是根據(jù)不同的平臺(tái)抽象出來(lái)的,現(xiàn)在也支持OpenGL的渲染。
通用2D圖形庫(kù)僅由軟件實(shí)現(xiàn),由CPU執(zhí)行?,F(xiàn)在更好的是谷歌的skia,它是Android底層的渲染圖形庫(kù)。
對(duì)于GDI,它只能在windows下使用。雖然現(xiàn)在仍然有很多老的應(yīng)用程序使用GDI,windows以前也增加了GDI硬件加速,但是現(xiàn)在應(yīng)該用Direct3D和2D來(lái)代替,這是一個(gè)趨勢(shì)。新技術(shù)正在取代舊技術(shù)。
在未來(lái),它肯定是3D庫(kù)。二維庫(kù)應(yīng)該是一個(gè)副產(chǎn)品,但二維庫(kù)將存在,因?yàn)樗苋菀桌L制界面。