GLFW は、OpenGL、OpenGL ES、および Vulkan アプリケーション開発用のオープンソースのマルチプラットフォーム ライブラリです。ウィンドウ、コンテキスト、サーフェスの作成、入力の読み取り、イベントの処理などを行うための、プラットフォームに依存しないシンプルな API を提供します。
GLFW は、Windows、macOS、Linux、およびその他の Unix 系システムをネイティブにサポートします。 Linux では、Wayland と X11 の両方がサポートされます。
GLFW は、zlib/libpng ライセンスに基づいてライセンスされています。
最新の安定リリースをソースまたは Windows バイナリとしてダウンロードできます。 3.0 以降の各リリースには、ソースおよびバイナリ アーカイブを示す注釈付きの対応するタグもあります。
ドキュメントはオンラインで入手でき、すべてのソース アーカイブとバイナリ アーカイブに含まれています。最新リリースの新機能、注意事項、非推奨については、リリース ノートを参照してください。詳細については、バージョン履歴を参照してください。
master
ブランチは安定した統合ブランチであり、サポートされているすべてのプラットフォームで常にコンパイルして実行する必要がありますが、新しく追加された機能の詳細は、リリースに含まれるまで変更される可能性があります。新機能と多くのバグ修正は、マージできるほど安定するまで他のブランチに存在します。
GLFW を初めて使用する場合は、GLFW 3 のチュートリアルが役に立つかもしれません。過去に GLFW 2 を使用したことがある場合は、GLFW 3 API に移行するための移行ガイドがあります。
GLFW は、バグの報告、コミュニティ サポートの提供、機能の追加、コードのレビューまたはテスト、デバッグ、ドキュメントの校正、機能の提案、バグの修正など、世界中の多くの人々の貢献によって存在します。
GLFW は主に C99 で書かれており、macOS サポートの一部は Objective-C で書かれています。 GLFW 自体には、OS とウィンドウ システムのヘッダーとライブラリのみが必要です。コンテキスト作成 API (WGL、GLX、EGL、NSGL、OSMesa) やレンダリング API (OpenGL、OpenGL ES、Vulkan) のサポートを有効にするために、追加のヘッダーは必要ありません。
GLFW は、Windows では Visual C++ 2013 以降、MinGW および MinGW-w64 を使用してコンパイルをサポートし、macOS では Clang を使用して、Linux およびその他の Unix 系システムでは GCC および Clang を使用してコンパイルをサポートします。他の環境でもコンパイルできる可能性がありますが、定期的にテストされていません。
Windows および macOS でサポートされているすべてのコンパイラで利用できる、コンパイル済みのバイナリがあります。
GLFW を自分でコンパイルする方法の詳細については、コンパイル ガイドを参照してください。
チュートリアル、ガイド、API リファレンスについてはドキュメントを参照してください。
詳細については、貢献ガイドを参照してください。
GLFW は Windows XP 以降および macOS 10.11 以降をサポートします。 X Window System を実行する Linux やその他の Unix 系システムは、デスクトップ環境や最新の拡張機能がなくてもサポートされますが、一部の機能ではウィンドウ マネージャーやクリップボード マネージャーを実行する必要があります。 OSMesa バックエンドには Mesa 6.3 が必要です。
詳細については、ドキュメントの互換性ガイドを参照してください。
GLFW 自体に必要なのは、CMake 3.16 以降と、OS およびウィンドウ システム用のヘッダーとライブラリだけです。
サンプルとテスト プログラムは、多数の小さなライブラリに依存しています。これらはdeps/
ディレクトリにあります。
CMake が Doxygen ツールを見つけることができれば、ドキュメントは Doxygen で生成されます。
バグは問題トラッカーに報告されます。バグを報告する際に含めるべき内容については、貢献ガイドを確認してください。
GLFW_UNLIMITED_MOUSE_BUTTONS
入力モードを追加しました (#2423)QuartzCore
フレームワークを追加しましたglfwInit
シートのないコンポジターでセグメンテーション違反を起こす (#2517)VK_EXT_headless_surface
経由で Vulkan の「ウィンドウ」サーフェスの作成を追加しましたEGL_MESA_platform_surfaceless
経由で Mesa に EGL コンテキストの作成を追加しましたGLFW_CONTEXT_CREATION_API
をGLFW_NATIVE_CONTEXT_API
に設定した Wayland でのネイティブ アクセスを許可しました (#2518) glfw.org では、GLFW の最新バージョンのほか、プロジェクトに関するニュース、ドキュメント、その他の情報を見つけることができます。
GLFW の使用に関する質問がある場合は、フォーラムをご利用ください。
報告するバグ、提出するパッチ、またはリクエストしたい機能がある場合は、GitHub の問題トラッカーにファイルしてください。
最後に、GLFW の開発を手伝ったり、お気に入りのプラットフォームに移植したりすることに興味がある場合は、フォーラムまたは GitHub に参加してください。