5

GLUT は C++ でしか利用できないことに気付きました。Java で OpenGL コードを再利用してから、Android に再度移植することを検討しています。これらのシステムで GLUT の代わりに使用される「標準」のものはありますか?

編集: 私は実際にJOGLを使用しており、C++を再利用せずにJava経由で再実装することに興味があります。C++、Java、および OpenGL の基本的な知識はありますが、まだ特別なものはありません。サイズ変更、色付けなど、ウィンドウに関するすべてを把握しようとしても問題ありません。glutSwapBuffers()、glutDisplayFunc()、glutMainLoop( )など

4

3 に答える 3

3

JOGLLWJGLはどうでしょうか。それらの API は C++ glut に対して 1:1 です。固定パイプラインを使用する場合は、内部に必要なものがすべて揃ったGlu libもあります。コンテキストとウィンドウを管理しますが、私は LWJGL で商用プロジェクトを行っており、このライブラリが素晴らしいと言えます。また、モバイル開発にも使用できます。

このトピックについて少し拡張したいと思います。

まず、JOGL にはプリミティブの作成を主に処理するGLUT クラスがあるようです。また、C++ GLUT の部分的なポートであるこのlib を見つけました。しかし、実際には、lib のような GLUT C++ を求める理由がわかりません。 JOGL と LWJGL は両方とも、組み込み機能である入力処理、コンテキスト、およびウィンドウの作成を提供します。また、Java では、コンテキストとウィンドウの作成を単一の屋根の下で統合することはおそらくできないでしょう。これは、Android と Windows の Java 環境が異なる方法で行うためです。もちろんプラットフォームに基づいてコンテキスト/ウィンドウのセットアップを処理する独自のクラスをいつでも作成できますが、それは車輪を再発明するようなものだと思います。

プリミティブ ジオメトリの作成に関しては、そのような場合に GLUT を調査する必要はありません。それらは古い非推奨 (修正済み) OpenGL パイプラインを使用して作成されています。今日は 2013 年で、OpenGL は現在 4.3 バージョンであり、同期したい場合この技術の現在の状態と OpenGL の多くの新機能の利点を理解するには、OpenGL 3.3 以降に移行することを強くお勧めします。これを行うには、ジオメトリを手動でコーディングする必要があります。しかし、方法を完全に制御するなど、他の多くの利点があります。また、プログラム可能な OpenGL のジオメトリを作成する方法に関するオンラインの例とチュートリアルも多数あります。それが役に立てば幸い。

于 2013-01-07T08:15:39.397 に答える
1

jnigraphicsがあり、 NDKを使用して Android 用のネイティブ C コードを開発します。

于 2013-01-07T07:45:36.287 に答える
0

GLUT のサポートは jogl で非常に制限されており、間違いなく glutInitDisplayMode() はありません。次のことをお勧めします。

簡単な方法。

  1. 必要な glut 関数の最小セットを把握します。
  2. それらを呼び出す小さな動的ライブラリを作成します。
  3. そのライブラリをブリッジして、Java アプリから必要なメソッドを呼び出します。

より複雑な方法。

  1. 必要な機能を jogl+gluegen に追加します。そのためのコード ジェネレーターがあります。

この方法はより正確ですが、(a)これはより多くの作業です。(b) jogl のメンテナーは残念ながらあまり友好的ではないため、コミュニティと作業を簡単に共有することはできません。最初に、彼らはあなたのパッチがたわごとであると非難し始めます。後で、彼らはあなたに彼らが必要とする方法で行うようにほとんど命令するでしょう. 言い換えれば、愚かなメールには1か月かかります... :)

于 2013-01-07T09:06:51.597 に答える