Solaris での GLUT(freeglut)と Java の利用
このページでは,Solaris 上で OpenGL のツールキットである GLUT と,Java および Java 3D を利用する方法を説明する. かつて配布されていた GLUT 3.7 beta の Solaris 用バイナリや,Java2 SDK と Java3D runtime の Solaris x86 用バイナリは,現在は入手できない. 現在の後継となるソフトウェアを用いる.
【目次】
GLUT と freeglut
GLUT(OpenGL Utility Toolkit)は,OpenGL のプログラムでウィンドウの生成やキーボード・マウスの入力処理を行うライブラリである. Mark Kilgard によるオリジナルの GLUT は,最後の版が 3.7 beta であり,更新は行われていない. また,オリジナルの GLUT のライセンスは,改変した版の再配布を認めていない.
現在は,freeglut を用いる.freeglut は GLUT と互換の API を持つ実装で,X11 および Wayland に対応し,MIT/X11 ライセンスで配布されている. GLUT 用に書かれたソースコードは,多くの場合,インクルードするヘッダを変更するだけで freeglut でビルドできる.
freeglut の Web ページ: https://freeglut.sourceforge.net/
freeglut のインストール
パッケージの検索
Solaris のパッケージリポジトリに freeglut が含まれているかを確認する. 端末で,次のコマンドを実行する.
pkg search -r freeglut
pkg search -r /usr/include/GL/glut.h
パッケージが見つかった場合は,表示されたパッケージ名を指定してインストールする. 端末で,次のコマンドを実行する.
sudo pkg install <パッケージ名>
ソースコードからのビルド
パッケージが提供されていない場合は,ソースコードからビルドする. freeglut 3 系のビルドには CMake と C コンパイラ,および X11 と OpenGL の開発用ヘッダが必要である.
- ビルドに必要なソフトウェアのインストール
端末で,次のコマンドを実行する.
sudo pkg install gcc sudo pkg install cmake - X11 と OpenGL の開発用ヘッダのインストール
デスクトップ環境をインストールしていない場合は,X11 関連のパッケージが必要である. 端末で,次のコマンドを実行する.
sudo pkg install solaris-desktop - ソースコードの展開とビルド
freeglut の Web ページからソースコードのアーカイブを入手する. そして,端末で,次のコマンドを実行する. make ではなく gmake(GNU make)を使う.
tar xvf freeglut-<バージョン>.tar.gz cd freeglut-<バージョン> mkdir build cd build cmake .. gmake sudo gmake install - ビルドしたプログラムのリンク
freeglut を使うプログラムは,次のようにリンクする.
gcc -o sample sample.c -lglut -lGLU -lGL -lX11 -lm
Solaris での Java
Java2 SDK は,1998 年から 2004 年ごろに使われた古い名称の製品であり,現在は使用しない.
Solaris で動作する Oracle JDK の最後の版は JDK 11 である. OpenJDK では JEP 381 により,JDK 15 で Solaris/SPARC,Solaris/x64,Linux/SPARC の各ポートのソースコードとビルド機能が削除された. このため,Solaris では JDK 12 以降を利用できない.
Solaris 11.4 で JDK を利用する場合は,リポジトリに含まれる JDK のパッケージを確認する. 端末で,次のコマンドを実行する.
pkg search -r jdk
pkg info -r jdk-11
インストールは,次のコマンドで行う.
sudo pkg install jdk-11
JDK 11 のサポート期間や利用条件は Oracle のサポート契約により異なる. 最新の Java を必要とする開発では,Solaris 以外のプラットフォームを使う.
Java 3D の後継
Java 3D の Sun Microsystems / Oracle による開発は終了している. Java 3D 1.6 以降は,JogAmp プロジェクトのコミュニティ版として保守されている. 1.6 では実装が JOGL(Java Binding for the OpenGL API)上に書き換えられており,動作には JOGL が必要である. パッケージ名は javax.media.j3d から com.jogamp.java3d に変更されており,Maven のアーティファクトとして入手できる.
JOGL のネイティブライブラリが対応するプラットフォームは版によって異なる. Solaris 用のネイティブライブラリが配布物に含まれるかどうかは,入手時に確認する. 含まれない場合は,ソースコードからビルドする.
JogAmp の Web ページ: https://jogamp.org/
新規に 3 次元グラフィックスのプログラムを作成する場合は,Java 3D ではなく,JOGL を直接使うか,JavaFX 3D などのシーングラフ API を検討する.