[英]Is there a simple way for opening one (or many) opengl window in mac OS X with C++?
是的,我討厭Objective-c,而且我的項目是可移植的,所以我想用C ++編寫盡可能多的代碼,理想的是100%。
所以我有一個使用Xcode制作的常規C ++項目,並且想要打開一些OpenGL窗口。
編輯:該死的,Glut用glutMainLoop()接管應用程序的控件,我想對循環有更多的控制權。
嘗試freeglut,雖然我找不到OSX二進制文件,但我總是試圖編譯其他人的代碼。
更新:
我再次嘗試鏈接到SDL 1.3,這次我可以讓它工作! 俞灝!
我一直想使用SDL,但是必須使用多個窗口,這是版本1.3的一個功能,正在開發中,我永遠無法讓它工作。
由於它可以移植到數以萬計的操作系統,並且處理2D圖形以及OpenGL,我將繼續使用它。 謝謝大家!
如果您不想使用objective-c,則必須使用已棄用的碳庫X11或其他庫(如GLUT)來創建窗口。 如果可移植性是一個問題,要么去GLUT路線,要么你需要為你想要支持的每個平台編寫自己的窗口管理代碼。
如果你不去GLUT路線,你需要在每個操作系統之前編寫窗口管理代碼,所以我強烈建議你咬緊牙關並用objective-c ++編寫窗口管理。 你真正需要知道的唯一事情是指針總是一個指針,無論它處於哪種語言,所以只需將objective-c id存儲為void *並將它們轉換回id,它實際上很容易實現。
我猜NeHe教程可以提供幫助;
GLUT可以很好地滿足你的目的,雖然你可能希望有一個很好的C ++包裝器。 我最終破解了自己,雖然GLUT對包裝不友好,但它是可行的。
編輯:由於你有glutMainLoop()的問題,你可能會嘗試做更多的GLUT設計 - 它主要用於黑客,一次性項目和opengl演示。 並且freeglut不會在mac上編譯OOB,至少這是我的經驗。
對於便攜式,功能更全面的應用程序,Qt可能是您的最佳選擇。 否則,設計C ++以實現可移植性,並在每個平台上使用瘦GUI層。 如果在每個平台上運行某些東西是最重要的,請選擇前者。 如果每個平台上最佳用戶體驗最重要,請選擇后者。 您可能會發現“瘦”並不是所涉及內容的最具描述性的術語。
我發現這個演示對於使一個簡單的Cocoa / OpenGL窗口工作非常有用,即使代碼中有許多荒謬的錯誤: http : //developer.apple.com/library/mac/#samplecode/CocoaGL/Introduction/Intro html的
這個問題已在3年前提出過,但仍然很新鮮。 我最近剛剛進行了類似的計划學校課程練習,並試圖找出在Mac / Windows / Linux /移動設備上使用OpenGL項目的最佳便攜式庫。 也許我的筆記會幫助某人做出決定。 我只提到了我考慮過的主要選項。
更高級別的API ,用於窗口管理以及其他好東西,如精靈,字體,聲音,事件處理等:
較低級別的API ,主要用於窗口和OpenGL上下文管理:
其他:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.