回覆列表
-
1 # 流雲訴往事
-
2 # TonyDeng
圖形庫是與平臺有關的,不由語言提供,都是第三方庫。實際上,即使是語言標準庫,也是針對平臺提供的,原始碼層面上有共同點和可移植性,但庫是單獨編譯的,這就是C/C++程式換平臺必須重新編譯的原因,連結進來的標準庫不同實現的。
本質上,C語言是不配帶庫的純語言,尤其是IO函式(從C標準庫有形形色色不同輸入輸出函式方式來看即知),入門第一個printf()函式正是最變態的外接函式。之所以有標準庫,是語言供應商根據市場情況編寫好贈送給使用者(程式設計師)的,C++還好,是標準委員會指導甚至親自指定,C根本沒有(早期的C編譯器庫五花八門,過來人都知道)。
圖形與平臺密切相關,Windows有圖形API,然而Linux之類沒有,所以圖形庫不可移植,除非使用自身可移植的第三方圖形庫。本質上,C/C++直接對硬體程式設計,自己向顯示記憶體寫資料做輸出,文字和圖形均如此。任何庫,都封裝了現成的函式而已,語言從來沒說規定要怎麼實現!
-
3 # 散居獵人
程式語言提供語言要素完成演算法模型和過程描述,如C。
開發平臺提供庫函式介面或演算法實現,如vc6。
作業系統提供函式實現和介面,如windows API,還有Bios呼叫和外設驅動程式。
OPENGL是與windowsAPI平行的圖形庫,為開發平臺提供三維模型實現。
-
4 # 三袋大菠蘿
C++的圖形庫多了去了,有GDI,還有QT,還有libSkia, 還有CoreGraphic。
不同作業系統用的圖形API大多不同。
但無論那種圖形庫實現,輸出最終都會呼叫GPU,只有經過GPU,才能最終顯示在顯示器上。
延伸閱讀
- 為什麼說鴻蒙系統不會重蹈Windows Phone覆轍?
- Chrome OS:遊戲辦公兩不誤 體驗FydeOS 四平臺合一的超級系統
- 被微軟收購“幹掉”的一款優質蘋果APP,至今都沒有更佳的替代者
- 遠端辦公Win10搜尋框失效?360安全衛士極速上線免費修復工具
- Win10搜尋崩了?全球近七成使用者遭遇“死亡黑框”
- Windows 12凌空出現!號稱可以完美取代Win10
- 微軟也頭疼!"Win12Lite"新系統震撼來襲:號稱已完美消滅Win10槽點
- Win10X越來越近了,趕緊Get這些新知識
- Win 7徹底放棄了?Win 10大失所望,網友:Win 12 Lite已釋出
- 《Electron實戰》中文版:構建應用程式選單及上下文選單
首先,先講一下圖形庫的概念,圖形庫分為2D圖形向量庫和3D圖形庫,像2D的一般在windows上就是GDI、GDIplus、Direct2D。跨平臺的還有Cairo和AGG等等,可以在Linux、MacOs上使用。
其中還要分軟體實現和硬體加速的實現,像gdi和gdiplus那都是用cpu執行的,是純軟體的方式,而且年代久遠,GDI是沒有抗鋸齒的,畫出來的效果也很差,但在很早的windows系統裡就是靠它來驅動2d介面的。現在基本都是D3D加D2D,而GDIplus是為了讓GDI支援抗鋸齒的產物,但它的效率簡直不忍直視。
現在我們在windows看到的許多應用,都是用qt做的,還有很多是用directui框架做的,qq就是用自己的directui框架做的。這也就是說qt它不是一個圖形庫,這一點許多人都分不清,qt是一個跨平臺的介面框架。介面框架不僅僅包含了圖形抽象層,還包含許多控制元件實現,邏輯處理,訊息處理。它的底層圖形庫都是根據不同的平臺來做抽象的,現在也支援用opengl來渲染了。
一般的2d圖形庫只是用軟體實現的,就是用cpu執行的,現在做的比較不錯的是谷歌的skia,它就是安卓底層的渲染圖形庫。
至於GDI,它只能在Windows下用,雖然還是有不少的舊應用使用了GDI,之前Windows也增加了GDI的硬體加速,但現在應該都被Direct3D和2D取代了,這是趨勢,新的技術就是拿來替代舊的技術。
未來肯定都是趨向3D庫了,2D庫應該都會成為附帶產物,但2D庫是一定會存在的,因為它很容易用來繪製介面。