2011-02-14 7 views
2

私は現在、2つの別々のプログラムを持っています:(1)GTK GUI。 (2)OpenGL 3DグラフィックスによるGlutアプリケーション。しかし、私は持っているGUIに埋め込まれたウィジェットの一部としてopenGLの部分を持っていたいと思います。GtkGlExtのためのOCamlバインディング?そうでない場合、どうすればそれらを書くことができますか?

私はGtkGlExtは私が必要なものを正確に気づいたが、残念ながらそのWebページ上で言及した何のOCamlバインディングはありません。

私の質問は以下のとおりです。

サイバースペースのどこかで失われたそのようなバインディングがある場合、(1)あなたは知っていますか? (私は3年は何かが起こっているだろう後に2008年から同様のdiscussionので、私が望んでいるだろう発見した。)(2)任意のバインディングがない場合、どのように難しいそれはこれらのバインディングを生成することとなり

どこを希望始めるのに良い場所になれますか?元のCライブラリのどれくらい私はundestandする必要がありますか? (私はCは、これまでのOCamlから呼び出す行っていない。)

を(3)別の方法として、あなたは、私が使用することができ、他の既製のパッケージを知っていますか? (私はOSX上gtkglareaをインストールしようとしてきたが、私は私が解決することができませんでしたエラーが発生したとあきらめた。私もlablgtk2-2.14.0+dfsgをインストールしようとしましたが、エラーがhereを説明したんだ。)

答えて

2

標準液を使用することですLablGTKのOpenGLサポート私はgtkglextのような他の解決策に束縛されていないことを知っています。あなた自身のバインディングを書いたければ、一般的にはそれほど難しくはありませんし、仕事や考えを取っています。 OCamlと安全に橋渡しするためには、基礎となるCライブラリを十分に理解する必要があります。OCamlはライブラリのインタフェースによって大きく異なります。あなたはGLibの/ GTKライブラリを結合して、コミュニティ内の既存の経験上に構築することができるという、およびLablgtk2はあなたのバインディングがそれに統合させるためにどのように動作するかを十分に理解する必要の祝福と呪いを持っていますのでGtkGLExtは、口が達者なベースであるので、 。これは可能ですが、それほど些細なことではありません。私は、あなたが始めるのを助けるために、新しいGTKライブラリをバインドする上で良い文書を見ていることを思い出していません。

他の質問であなたのエラーはあなたがコンパイルを手にしようとしているように見える - あなたが有効にOpenGLとlablgtkためGODIパッケージを構築しようとしましたか?それには、動作させるパッチやビルドオプションがあるかもしれません。または、/opt/localパスから使用しているように見えるMacPortsにOCamlパッケージとlablgtkパッケージがありますか?

もう1つのオプション:アンバウンドライブラリの施設にアクセスする必要があるときに私がよく使用する別のオプションがあります。ライブラリのバインディングを書くのではなく、そのライブラリを必要とするロジックをC言語で記述し、OCamlコードに最小限のインタフェースを公開します。 GtkGLExtのケースでは、おそらく、初期化、ティアダウン、およびC APIの基礎となる作業を行い、OpenGLコンテキストまたは必要なものを返すコンテキストコールの開始/停止を作成するだけです。 OCamlオブジェクトから適切なGTKオブジェクトを取得する方法や、LablGLが動作するために必要なものを返す方法については、いくつかの作業を行う必要がありますが、実際のバインディングを作成するよりも簡単です。私はバインディングを行うために必要とされるものに、より詳細に見て、私が思ったよりもはるかに多くの作業です

+0

@MichaelE。だから、私は今それをドロップします。私はGODIを使いました。私が最初にGLサポートを試みたが、GODIでさえ、単純な「テスト構成は」与えます: '> GTKGLをチェックする...何 >のconfigure:エラーは:強制ませんが、サポートは >エラーを発見したGL:Execのエラー:ファイル/ユーザ/ surkator/godi/build/godi/godi-lablgtk2 /./../../ mk/bsd.pkg.mk、行1022:コマンドがゼロ以外の終了コードで返されました。それは私がGTKGLが欠けているようだ...私はGTK自体をインストールしている間にオンにする必要があるオプションですか? – Surikator

+0

@MichaelE私は現在MacPortsにGTK-OSXをインストールしています。私はGTKGLのこの変種のためにGTKGLを持つ方法がわかりません。そして、それはGODIがGLサポート付きのlablgtk2のインストールを続行できるように欠けているようです。 – Surikator

+1

@Surikator私はLablGTKサポートがgtkglareaを使用していると思いますが、私は100%確実ではありません。 LablGLもインストールされている必要がありますが、GODIがそれを処理します。 gtkglareaがGTK-OSXに移植されていない可能性があります。 GLサポートをGTK +に直接追加するためのバグレポートがありましたが、まだそれほど大きな牽引力はないと思います。 –

関連する問題