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