コンテンツにスキップ

OpenGL Utility Toolkit

出典: フリー百科事典『ウィキペディア(Wikipedia)』
OpenGL Utility Toolkit (GLUT)
作者 Mark J. Kilgard
開発元 シリコングラフィックス
最新版
3.7 / 1998年5月7日 (26年前) (1998-05-07)
リポジトリ ウィキデータを編集
プログラミング
言語
C/C++
対応OS Windows, macOS, Linux
プラットフォーム クロスプラットフォーム
種別 ライブラリ/フレームワーク
公式サイト www.opengl.org/resources/libraries/glut/
テンプレートを表示

OpenGL Utility Toolkit (GLUT) とは、リアルタイム3次元コンピュータグラフィックスAPIのひとつであるOpenGLのバージョン1.1[1]に準拠したユーティリティツールキット(ライブラリ)である。GLUTはC言語形式の関数群で構成されている。

シリコングラフィックス (SGI) やマーク・キルガード英語版Mark J. Kilgard)によって開発された。

WindowsmacOSLinuxなどのUnix系オペレーティングシステム (OS) で使用できる。

概要

[編集]

OpenGL向けの基本的な拡張ライブラリとしては、同次変換行列の生成などを補助するOpenGL Utility Library英語版 (GLU) が存在するが、GLUTはGLUにない下記の機能を持つ。

GLUTは単なるユーティリティにとどまらず、アプリケーションフレームワーク的な機能も併せて持っており、シンプルな構成でありながらプラットフォーム固有のウィンドウウィジェットの生成処理などを隠蔽・自動化してくれる。特にOpenGLのレンダリングコンテキストを生成してウィンドウにアタッチする処理やイベントループの扱いは、オペレーティングシステムおよびウィンドウシステムごとに異なり、OpenGLのAPIを使って描画したグラフィックスを実際に画面に表示させてインタラクションができるようになるまでには定型的な初期化処理を相当量書かなくてはならないため、初学者にとって難解なだけでなく、熟練者にとっても煩雑である。そのため、OpenGLの補助ライブラリの中でも特に広く使用されており、グラフィックスプログラムのプロトタイピングや入門書などでも用いられている[2]

OpenGL関数にglプレフィックスが付けられているのと同様に、GLU関数にはgluプレフィックスが、またGLUT関数にはglutプレフィックスがそれぞれ付けられている。

GLUTはソースコードが公式サイトにて公開されている。パブリックドメインではなく、また無保証だが、ライセンス料を支払うことなく無償で利用できる[3]Microsoft Windows SDKにはGLUが同梱されているものの、GLUTは同梱されていない。XcodeにはGLUT.frameworkが同梱されている[4]が、OpenGLとともに非推奨となっている。

なお、かつてはMicrosoft DirectX (Direct3D) 用のGLUT風フレームワークライブラリ「DXUT」がそのソースコードとともにDirectX SDKに同梱されていた[5][6]。DXUTはC++専用で、Direct3D 9/10/11に対応しており、GLUTのようなコールバック形式のフレームワークに加えて、ボタンやドロップダウンリストなどのGUI部品も独自にサポートしていた。DXUTは主にDirectXのサンプルコードや技術的なデモンストレーションのために用意されていたものであり、実際のアプリケーションソフトウェア開発向けではない。

問題点

[編集]

GLUTはメインループ(イベントループ、メッセージループ)に突入した後、終了時にウィンドウをクローズする際にメインループから抜け出す手段が用意されておらず、Cのexit()関数を使うなどして半強制終了するしかない。 また、マウスホイールなどのサポートがない。 GLUTからフォークし、これらの欠点を改善したFreeGLUTなどの派生ライブラリが開発されている。

なお、GLUTは最終版3.7のリリースが1998年であるが、その後グラフィックスハードウェア(オンボードグラフィックスあるいはグラフィックスカードに搭載されているGPU)の進化とともに廃止されたOpenGL固定機能(OpenGL 3.0で非推奨化、3.1で拡張機能として格下げ、3.2で互換プロファイルに分離)に依存している。そのため、最新のOpenGL機能を利用するときに、OpenGLレンダリングコンテキストの作成処理が隠蔽されているGLUTでは不都合がある[7]。 レンダリングコンテキストの作成時にプロファイル種別を指定できるGLFW英語版などの新しい後発ライブラリやツールキットによって、GLUTはとって代わられつつある。

脚注

[編集]
  1. ^ GLUT 3.7同梱のREADMEを参照のこと。
  2. ^ 床井浩平『GLUTによるOpenGL入門―「OpenGL Utility Toolkit」で簡単3Dプログラミング!』工学社〈I・O BOOKS〉、2005年5月。ISBN 4-7775-1134-0 
  3. ^ GLUT 3.7同梱のNOTICEを参照のこと。
  4. ^ OS X Frameworks - Mac Technology Overview
  5. ^ DXUT プログラミング ガイド (DirectX SDK August 2008) | Microsoft Learn
  6. ^ DXUT プログラミング ガイド (DirectX SDK August 2009) | Microsoft Learn
  7. ^ 床井研究室 - (1) GLFW で OpenGL を使う

関連項目

[編集]

外部リンク

[編集]