編集:この質問はコメントで間接的に回答されています(GLUTを使用していずれかの必要性を回避しています)が、回答として投稿されていないため、問題は解決しましたが「受け入れる」ことはできません。
C++ で記述されたクロスプラットフォームの OpenGL アプリケーションがあります。これは (Mac OS X 上で) ウィンドウの作成とメッセージ ポンプに Carbon を使用します (Think...NeHe レッスン 1)。C++11 機能を利用する私のコードへの最近の変更により、XCode にバンドルされている GCC と互換性がなくなりました。
MacPorts、HomeBrew などのシステムを使おうとする私の試みはすべて、さまざまな理由で失敗しました (主に、Carbon をサポートするために 32 ビットをコンパイルする必要があるためです)。私は当初、Mac OS X 10.8 に更新された G++ をインストールするためのより良い解決策があるかどうかを尋ねるつもりでした。
それは近視眼的な解決策のように思えます (ある時点で、Cocoa と 64 ビットにアップグレードする必要があります)。そのため、私の質問は、既存の (非常に大きな) アプリケーションでこのタスクに Cocoa を利用させる最も簡単な方法は何かという質問に発展しました。むしろカーボン?
私はすべての「Carbon Code」を独自の個別の .cpp/.h ファイルに入れています。このファイルには、OpenGL ウィンドウを作成する機能と、ReceiveNextEvent を使用するメッセージ ポンプの機能の 2 つしかありません。
編集: より明確にするために、既存のCarbonウィンドウの作成とメッセージポンプ機能の代わりに(多かれ少なかれ)ドロップを設計する最良の方法を探していますが、Cocoaで。異なる API であり、異なる言語概念を使用しているため、単純な 1 対 1 のコマンド置換では不十分であることを理解しています。私の既存のコードには、InitWindow と DoEvents というコア タスクを (Carbon で) 実行する 2 つの関数を含む Mac 用のソース コード ファイルがあります。これらはウィンドウを作成し、保留中のイベントをそれぞれ循環します。私の目標は、このソース コード ファイルを Cocoa を使用するものに置き換えて、同じ機能を公開することで、私のコア コードをほとんどまたはまったく変更しないようにすることです。
私の目標を達成するための最良の方法は何ですか? 私は Cocoa に慣れていないので、Obj-C は私にとってなじみがありません。