2012-09-21 62 views
0

我該如何編寫gnustep的windowserver?我正在閱讀gnustep的來源,但不知道這是如何工作的。有人能解釋從NSApplicationMain()到圖形用戶界面的工作原理嗎?實現一個非常基本的WindowServer需要什麼?我知道這是一個相當大的話題。如何編寫窗口服務器?

感謝, 湯米

回答

0

GNUstep的使用自己的半抽象類在了AppKit叫GSDisplayServer實現一個包裝圍繞現有窗口系統像X11或WIN32。這也取決於你的WindowServer的設計,但主要有兩件事要做,首先是實現你自己的WindowServer,它提供你需要的API(如果存在,是不是Quartz APIs?)和一個實現後端(子類GSDisplayServer和NSGraphicsContext)。但是,據我所知,在OSX上獲得窗口的唯一方法是需要使用NSWindow中的Objective-C,因爲沒有支持的API來在OSX上創建窗口而無需Objective-C(請在此處糾正我,因爲我的知識僅限於GNUstep方面)。所以我認爲爲GNUstep實現一個WindowServer並沒有多大意義,而是將它包裝在系統上的任何現有的窗口系統中。但是,嚴重的是,X11並不壞,我強烈建議你使用它。至少在xcb中重寫GNUstep的x11後端。發明一個新的窗口系統會浪費大量時間。如果你在其他領域投入時間,GNUstep將會受益更多。但是,如果您只想將GNUstep移植到您的窗口系統中,只需查看現有的後端即可。

+0

感謝您的回答! :)您的信息:我想編程一個ZUI窗口服務器。 – thomasguenzel

+0

這不就像製作一個在OpenGL中管理窗口的X11窗口管理器嗎?除非您打算在縮放時執行鎖定字體大小等操作。如果沒有,你可以在X11中實現它。 –