Solaris での GLUT(freeglut)と Java の利用

このページでは,Solaris 上で OpenGL のツールキットである GLUT と,Java および Java 3D を利用する方法を説明する. かつて配布されていた GLUT 3.7 beta の Solaris 用バイナリや,Java2 SDKJava3D runtime の Solaris x86 用バイナリは,現在は入手できない. 現在の後継となるソフトウェアを用いる.

目次

  1. GLUT と freeglut
  2. freeglut のインストール
  3. Solaris での Java
  4. Java 3D の後継

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 コンパイラ,および X11OpenGL の開発用ヘッダが必要である.

  1. ビルドに必要なソフトウェアのインストール

    端末で,次のコマンドを実行する.

    sudo pkg install gcc
    sudo pkg install cmake
    
  2. X11 と OpenGL の開発用ヘッダのインストール

    デスクトップ環境をインストールしていない場合は,X11 関連のパッケージが必要である. 端末で,次のコマンドを実行する.

    sudo pkg install solaris-desktop
    
  3. ソースコードの展開とビルド

    freeglut の Web ページからソースコードのアーカイブを入手する. そして,端末で,次のコマンドを実行する. make ではなく gmake(GNU make)を使う.

    tar xvf freeglut-<バージョン>.tar.gz
    cd freeglut-<バージョン>
    mkdir build
    cd build
    cmake ..
    gmake
    sudo gmake install
    
  4. ビルドしたプログラムのリンク

    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 を検討する.