freeglutは、 OpenGL Utility Toolkit (GLUT)ライブラリのオープンソース代替ライブラリです。GLUT(そしてfreeglut)は、幅広いプラットフォーム上でOpenGLコンテキストを含むウィンドウを作成および管理し、マウス、キーボード、ジョイスティックの機能を読み取ることを可能にします。freeglutはGLUTの完全な代替となることを目指しており、両者の違いはごくわずかです。
GLUTの開発が停滞しているため、ツールキットを改良するためにfreeglutが開発されています。これはMITライセンスの下でリリースされています。
freeglutは元々Paweł W. Olsztaによって書かれ、Andreas UmbachとSteve Bakerが貢献しました。Pawełが3Dグラフィックスの仕事を辞めたため、彼はSteve Bakerに開発を引き継ぎました。現在のfreeglutのメンテナーは、John F. Fay、John Tsiombikas、そしてDiederick C. Niehorsterです。
Pawełは1999年12月1日にfreeglutの開発を開始しました。現在、このプロジェクトは、 SGI固有の機能(Dials&ButtonsボックスやDynamic Video Resolutionなど)の廃止といったわずかな変更点と、バグの減少を除けば、オリジナルのGLUTをほぼ100%置き換えるものとなっています。
freeglutにはオリジナルのGLUTに比べていくつかの改良が加えられていますが、方針として、これ以上の重要な機能は追加されません。
2015年4月、freeglutは新しいWaylandディスプレイサーバープロトコルの初期サポートを取得しました。[ 1 ] [ 2 ]
その後、freeglut は、macOS での Cocoa サポートの改善、X11 および Windows バックエンドの改良、マルチモニターおよび Unicode 処理の改善、Wii/GameCube などのプラットフォーム向けの移植性の更新など、多くの小規模な近代化を受けました。長年の GLUT の癖の多くが修正されましたが、主要な新機能を避けるというプロジェクトの方針は維持されました。[ 3 ]
機能を追加したいfreeglutチームのメンバーの一部がコードをフォークしてOpenGLUTを作成しました。
OpenGLUTの開発は2005年5月に終了しました。最後のリリースは2005年3月のOpenGLUT-0.6.3でした。
freeglutは現在非常に安定しており、オリジナルのGLUTよりもバグが少なくなっています。しかし、オリジナルのGLUT仕様ではコールバックなどの処理順序が明確に規定されていなかった箇所があり、GLUTで動作するアプリケーションプログラムが、GLUTが保証していない前提に基づいているためにfreeglutでは動作しない可能性があります。
新しい改訂版は定期的に公開されますが、現在ではかなり安定しており、新機能の追加予定もないため、アップデートの頻度は徐々に減っています。GLUTの新しいリリースがあれば、この状況は変わるでしょう。
一部のLinuxディストリビューションでは、GLUTの代わりにfreeglutが配布されています。バイナリレベルで上位互換性があるため、GLUT用にコンパイルされたプログラムをfreeglutに問題なくリンクできます。