文書の出典
- 出典
- GLFW 3.5.1 Documentation
- 上流バージョン
- GLFW 3.5.1
- 文書状態
- 翻訳
このリファレンスページは、GLFW 3.5.1 公式ドキュメントを改変して Markdown 化したものです。libx 向けに書式、ナビゲーション、リンクを変更していますが、技術的な内容は GLFW 3.5.1 のソース配布物に基づいています。
説明
これらの使用方法については、エラー処理を参照してください。
マクロ |
|
| #define | GLFW_NO_ERROR 0 |
| エラーは発生していません。 |
|
| #define | GLFW_NOT_INITIALIZED 0x00010001 |
| GLFWが初期化されていません。 |
|
| #define | GLFW_NO_CURRENT_CONTEXT 0x00010002 |
| このスレッドでカレントになっているコンテキストがありません。 |
|
| #define | GLFW_INVALID_ENUM 0x00010003 |
| 関数に渡された引数のいずれかが無効な列挙値です。 |
|
| #define | GLFW_INVALID_VALUE 0x00010004 |
| 関数に渡された引数のいずれかが無効な値です。 |
|
| #define | GLFW_OUT_OF_MEMORY 0x00010005 |
| メモリの割り当てに失敗しました。 |
|
| #define | GLFW_API_UNAVAILABLE 0x00010006 |
| 要求されたAPIのサポートをGLFWがシステム上で見つけられませんでした。 |
|
| #define | GLFW_VERSION_UNAVAILABLE 0x00010007 |
| 要求されたバージョンのOpenGLまたはOpenGL ESを利用できません。 |
|
| #define | GLFW_PLATFORM_ERROR 0x00010008 |
| より具体的なカテゴリのいずれにも該当しない、プラットフォーム固有のエラーが発生しました。 |
|
| #define | GLFW_FORMAT_UNAVAILABLE 0x00010009 |
| 要求された形式はサポートされていないか、利用できません。 |
|
| #define | GLFW_NO_WINDOW_CONTEXT 0x0001000A |
| 指定されたウィンドウにはOpenGLまたはOpenGL ESコンテキストがありません。 |
|
| #define | GLFW_CURSOR_UNAVAILABLE 0x0001000B |
| 指定されたカーソル形状を利用できません。 |
|
| #define | GLFW_FEATURE_UNAVAILABLE 0x0001000C |
| 要求された機能はプラットフォームによって提供されていません。 |
|
| #define | GLFW_FEATURE_UNIMPLEMENTED 0x0001000D |
| 要求された機能はそのプラットフォーム向けに実装されていません。 |
|
| #define | GLFW_PLATFORM_UNAVAILABLE 0x0001000E |
| プラットフォームを利用できないか、一致するプラットフォームが見つかりませんでした。 |
|
マクロ定義の解説
◆ GLFW_NO_ERROR
| #define GLFW_NO_ERROR 0 |
エラーは発生していません。
分析
問題ありません。
◆ GLFW_NOT_INITIALIZED
| #define GLFW_NOT_INITIALIZED 0x00010001 |
ライブラリが初期化されていなければ呼び出してはならないGLFW関数を呼び出した場合に発生します。
分析
アプリケーションプログラマーの誤りです。初期化が必要な関数を呼び出す前にGLFWを初期化してください。
◆ GLFW_NO_CURRENT_CONTEXT
| #define GLFW_NO_CURRENT_CONTEXT 0x00010002 |
カレントのOpenGLまたはOpenGL ESコンテキストを必要とし、それを操作するGLFW関数を呼び出したものの、呼び出し元スレッドでカレントになっているコンテキストがない場合に発生します。そのような関数の一つが glfwSwapInterval です。
分析
アプリケーションプログラマーの誤りです。カレントコンテキストを必要とする関数を呼び出す前に、コンテキストがカレントになっていることを確認してください。
◆ GLFW_INVALID_ENUM
| #define GLFW_INVALID_ENUM 0x00010003 |
関数に渡された引数のいずれかが無効な列挙値です。たとえば、glfwGetWindowAttrib で GLFW_RED_BITS を要求した場合です。
分析
アプリケーションプログラマーの誤りです。問題のある呼び出しを修正してください。
◆ GLFW_INVALID_VALUE
| #define GLFW_INVALID_VALUE 0x00010004 |
関数に渡された引数のいずれかが無効な値です。たとえば、2.7のように存在しないバージョンのOpenGLまたはOpenGL ESを要求した場合です。
有効ではあるものの利用できないバージョンのOpenGLまたはOpenGL ESを要求した場合は、代わりに GLFW_VERSION_UNAVAILABLE エラーになります。
分析
アプリケーションプログラマーの誤りです。問題のある呼び出しを修正してください。
◆ GLFW_OUT_OF_MEMORY
| #define GLFW_OUT_OF_MEMORY 0x00010005 |
メモリの割り当てに失敗しました。
分析
GLFWまたは基盤となるオペレーティングシステムのバグです。issue trackerへバグを報告してください。
◆ GLFW_API_UNAVAILABLE
| #define GLFW_API_UNAVAILABLE 0x00010006 |
要求されたAPIのサポートをGLFWがシステム上で見つけられませんでした。
分析
インストールされているグラフィックスドライバーが要求されたAPIをサポートしていないか、選択したコンテキスト作成APIを介してはサポートしていません。以下にいくつか例を示します。
Windowsにプリインストールされている一部のグラフィックスドライバーはOpenGLをサポートしていません。AMDはEGLを介したOpenGL ESだけをサポートする一方、NvidiaとIntelはWGLまたはGLX拡張機能を介したものだけをサポートします。macOSはOpenGL ESをまったく提供していません。MesaのEGL、OpenGL、OpenGL ESライブラリは、Nvidiaのバイナリドライバーと連携しません。古いグラフィックスドライバーはVulkanをサポートしていません。
◆ GLFW_VERSION_UNAVAILABLE
| #define GLFW_VERSION_UNAVAILABLE 0x00010007 |
要求されたバージョンのOpenGLまたはOpenGL ES(要求されたコンテキストまたはフレームバッファのヒントを含む)を、このマシンでは利用できません。
分析
このマシンは要求をサポートしていません。アプリケーションに十分な柔軟性がある場合は、要求を引き下げて再試行してください。それ以外の場合は、マシンが要求を満たしていないことをユーザーへ通知してください。
将来の無効なOpenGLおよびOpenGL ESバージョンも、GLFW_INVALID_VALUE ではなく、このエラーで失敗します。たとえば、4.x系列が4.8へ到達する前に5.0が登場した場合のOpenGL 4.8です。これは、将来どのバージョンが存在するかをGLFWが知ることはできないためです。
◆ GLFW_PLATFORM_ERROR
| #define GLFW_PLATFORM_ERROR 0x00010008 |
より具体的なカテゴリのいずれにも該当しない、プラットフォーム固有のエラーが発生しました。
分析
GLFW、基盤となるオペレーティングシステムまたはそのドライバーのバグや構成エラー、あるいは必要なリソースの不足です。issue trackerへ問題を報告してください。
◆ GLFW_FORMAT_UNAVAILABLE
| #define GLFW_FORMAT_UNAVAILABLE 0x00010009 |
ウィンドウ作成中に発生した場合、要求されたピクセルフォーマットはサポートされていません。
クリップボードの照会時に発生した場合、クリップボードの内容を要求された形式へ変換できませんでした。
分析
ウィンドウ作成中に発生した場合、1つ以上の厳密な制約に一致する利用可能なピクセルフォーマットがありませんでした。アプリケーションに十分な柔軟性がある場合は、要求を引き下げて再試行してください。それ以外の場合は、マシンが要求を満たしていないことをユーザーへ通知してください。
クリップボードの照会時に発生した場合は、状況に応じてエラーを無視するか、ユーザーへ報告してください。
◆ GLFW_NO_WINDOW_CONTEXT
| #define GLFW_NO_WINDOW_CONTEXT 0x0001000A |
OpenGLまたはOpenGL ESコンテキストを持つ必要がある関数へ、コンテキストを持たないウィンドウが渡されました。
分析
アプリケーションプログラマーの誤りです。問題のある呼び出しを修正してください。
◆ GLFW_CURSOR_UNAVAILABLE
| #define GLFW_CURSOR_UNAVAILABLE 0x0001000B |
◆ GLFW_FEATURE_UNAVAILABLE
| #define GLFW_FEATURE_UNAVAILABLE 0x0001000C |
要求された機能がプラットフォームによって提供されていないため、GLFWはその機能を実装できません。このエラーが発生する可能性がある場合は、各関数のドキュメントに記載されています。
分析
プラットフォームまたはプラットフォームのバージョンによる制限です。その機能がアプリケーションに不可欠でない限り、このエラーは無視できます。
このエラーを発生させる関数呼び出しは、エラーの発生と、存在する出力引数の更新以外には何も行いません。
◆ GLFW_FEATURE_UNIMPLEMENTED
| #define GLFW_FEATURE_UNIMPLEMENTED 0x0001000D |
要求された機能は、このプラットフォーム向けのGLFWにはまだ実装されていません。
分析
このプラットフォーム向けのGLFW実装が不完全であり、将来のリリースで修正されることが期待されます。その機能がアプリケーションに不可欠でない限り、このエラーは無視できます。
このエラーを発生させる関数呼び出しは、エラーの発生と、存在する出力引数の更新以外には何も行いません。
◆ GLFW_PLATFORM_UNAVAILABLE
| #define GLFW_PLATFORM_UNAVAILABLE 0x0001000E |
初期化中に発生した場合、一致するプラットフォームが見つかりませんでした。GLFW_PLATFORM 初期化ヒントが GLFW_ANY_PLATFORM に設定されていた場合、Nullプラットフォームを除き、このライブラリバイナリがサポートするどのプラットフォームもGLFWが検出できませんでした。初期化ヒントが特定のプラットフォームに設定されていた場合、そのプラットフォームがこのライブラリバイナリでサポートされていないか、GLFWが検出できませんでした。
ネイティブアクセス関数から発生した場合、その関数が対象とするものとは異なるプラットフォーム用にGLFWが初期化されています。
分析
どのプラットフォームも検出できない状況は、通常macOS以外のUnixシステムでだけ発生します。ウィンドウシステムが実行されていないか、必要な環境変数を持たないターミナルからプログラムを実行した場合です。可能であれば別のプラットフォームへフォールバックするか、利用可能なプラットフォームを検出できなかったことをユーザーへ通知してください。
特定のプラットフォームを検出できない原因は上記と同じ場合もあれば、そのプラットフォームのサポートがコンパイル時に組み込まれていない場合もあります。特定のプラットフォームをライブラリバイナリがサポートしているか確認するには、glfwPlatformSupported を呼び出してください。