2011-11-20 51 views
2

我正在尋找打開OpenGL上下文並在Windows,MacOS,Linux發行版中使用X,android和iOS繪製原生OpenGL的能力。我不想依賴實際的「本機」設備框架UI,我不需要使用本地組件,我只需要一個OpenGL上下文來本地繪製OpenGL。許多像Marmalade和MoSync這樣的跨平臺軟件開發工具包都將重點放在使用本地UI組件和類似的東西上,我所需要的只是一個OpenGl上下文,因爲我打算這樣做,絕對不需要本地UI功能,但是,訪問如果可能的話,還需要像麥克風,攝像頭和其他傳感器等本機硬件功能,以及訪問音頻/視頻/網絡。跨平臺硬件本地OpenGL庫,可能與多媒體?

我不想使用QT,我想要做一些更接近硬件的工作,以在低水平上工作。總體思路是製作一個輕量級的跨平臺硬件加速圖形用戶界面(GUI),它的編寫水平足夠低,足以成爲真正的硬件本地,而不依賴任何本地軟件框架。我知道對於android來說,我可能不得不使用java包裝器來啓動本地代碼,但是想法是將這個包裝器最小化,只需很少的修改就可以部署低級別,因此希望真正實現跨平臺代碼,這只是依賴於OpenGL硬件和OpenGL上下文才能正常工作。因此,我需要一個最低限度的解決方案,儘量避免使用非跨平臺功能。

當時唯一出現在我腦海的圖書館是SDL,但我不確定它是否支持android和iOS屬性,所以除了圖書館推薦之外,還有更多關於SDL如何處理android和iOS設備及其硬件的信息。太。

+1

我不瞭解你,但在我的書「便攜」和「本地」是oxymorons ... – Mehrdad

+0

那麼,你可能會錯過添加「硬件」和「軟件」類型的工作人員本身的含義的細微差別 - 我問的是本機硬件OpenGL訪問是跨平臺的,所以我不必使用本機軟件框架,它不是交叉平臺。 原生硬件API等於跨平臺,或者至少這是我希望它。 – dtech

回答

4

如何:

  • GLFW
  • SDL
  • 轉運蛋白(FreeGLUT或OpenGLUT)
  • Blender的GHOST框架?

從本質上講,他們打開一個窗口,在其上創建一個OpenGL上下文,爲您提供輸入事件並讓其餘部分交給您。

3

你想要的只不過是一個特定於平臺的OpenGL上下文設置(這非常簡單並且有很好的文檔記載:NeHe OpenGL教程提供了很多環境的代碼,它只是做這個here(解釋是Windows特定的,向下滾動在不同操作系統的代碼)。

一旦你的OpenGL上下文,沒有什麼可以阻止您創建一個完整的GUI與所有的OpenGL元素。

如果你願意,你可以使用Qt只設置一個OpenGL上下文(即不要使用任何QWidgets或任何東西,除了向您展示OpenGL場景的窗口外),它會照顧整個設置過程,但僅限於此,Qt成爲巨大的依賴關係,因爲它只能真正替代每個平臺最多100行代碼。

關於SDL + Android,你檢查了README

而對於iOS,檢查相同的文件here