2012-12-10 85 views
1

我對使用C++進行一些獨立遊戲開發很感興趣,並且我想使用OpenGL 3+來做到這一點。我現在面臨的主要問題是如何彌合OpenGL和操作系統之間的差距,因爲我打算在Windows,Linux和Mac上進行所有的開發。我應該編寫自己的頂層,使用平臺特定的代碼進行窗口管理,I/O等。我應該使用跨平臺庫,如SDL還是FreeGLUT?這些會犧牲性能嗎?縮小OpenGL和操作系統之間的差距

作爲一個方面說明,我沒有做很多的Linux編程。 有沒有關於如何在OpenGL中使用X Window Server的教程?

+2

我可以在Windows,OS X和Linux上輕鬆編譯和運行我的引擎。使用GLFW,GLEW,GLM,OpenGL 3.2核心(由於OS X限制而具有一些3.3擴展),用於聲音的BASS或FMOD。只是不要做任何具體的平臺。 OS X通常表現良好,但由於驅動程序錯誤,Linux可能會變得很麻煩。確保你真的有一個mac和linux的盒子來測試你的東西。它需要一些額外的努力。 – Grimmy

+1

此處爲GLFW/GLEW/GLM組合另一票。簡單而有效。 –

回答

1

我使用SFML(C++ SDL),但FreeGLUT和Allegro都很好。它們提供基本的窗口創建,輸入處理等等(取決於您選擇的內容)。我不認爲它們中的任何一個都是天生的跨平臺,但它們對Windows,Mac和Linux有不同的版本。

就性能而言,單獨使用SFML的窗口包(創建窗口並設置openGL上下文)不會降低任何速度。儘管使用它的Graphics包,但我遇到了性能問題。

不能幫你在linux編程自己,但快速谷歌搜索得到了我的結果,如this

0

我應該自己編寫頂層,使用平臺特定的代碼進行窗口管理,I/O等。

不會。如果您沒有這方面的經驗,您不應該這樣做。

我應該使用跨平臺庫,如SDL或FreeGLUT嗎?

當然。

請問這些犧牲性能如何?

不,OpenGL的實現與創建窗口和上下文的方式無關。它看起來和OpenGL實現一樣。

X Window Server with OpenGL?

FTB/Fungus幾年前在X11上發佈了一個簡單的OpenGL。我前段時間擴展了它以支持透明窗口合成。當然,這不是非常便於使用(在沒有X11的情況下使用它,您仍然可以將它移植到Windows,並在Windows上運行的X11服務器上使用它)。

https://github.com/datenwolf/codesamples/tree/master/samples/OpenGL/x11argb_opengl

相關問題