2011-09-05 19 views
1

任何人都知道哪個系統調用是用於GUI編程的,以便我們可以在屏幕上繪製各種圖片?x86-64(linux)上的GUI編程相關的系統調用是什麼?

我沒有找到一個here ..

GUI需要內核支持,對不對?

+2

Linux內核不知道圖形輸出。 X服務器負責管理Linux上的顯示。根據您的編程語言和需求,最好的選擇是使用GUI編程框架,如Qt,GTK +,wxWidgets或Tk。 –

回答

4

您可以通過將X11協議與系統的Xserver交談來繪製屏幕。 (涉及的系統調用通常是用於通過套接字進行通信的,因此它們不提供信息。)通常,您使用庫來執行此操作。通常使用的基本庫是X11庫(libX11),通常由GTK或Qt(或wxWindows或Tk或...)等工具包庫包裝。還有一些低級庫(xcb,它是X協議的一個更薄的層)和更高級的庫(Gnome,KDE)。您也可以使用OpenGL庫,這是一種完全不同的方法。

有關於如何做到這一點的整本書籍。


Xserver本身使用內存映射設備,它在非常低的層次上與圖形硬件通信。它不是一個比圖形驅動程序更高層次的東西,而且它是一個非常有特權的過程。 (如果您要與Windows進行比較,您需要知道事物分割的確切級別不同,但是 libX11的級別與Win API的大部分級別非常相似。)

+0

xserver如何在沒有內核支持的情況下工作? – x86

+2

@ x86:簡短的回答:它很複雜且非常特定於設備。如果你在意Xserver的RTFSource,但我從來沒有真正想過要學習那麼多細節。 –

相關問題