このページの内容

このリファレンスページは、GLFW 3.5.1 公式ドキュメントを Markdown 向けに調整したものです。書式、ナビゲーション、リンクは libx 用に変更していますが、技術的な内容は GLFW 3.5.1 のソース配布物に基づいています。

説明

これは、入力関連の関数と型に関するリファレンスドキュメントです。作業手順を中心とした情報については、入力ガイドを参照してください。

モジュール

  ゲームパッド軸
  ゲームパッド軸。
 
  ゲームパッドボタン
  ゲームパッドボタン。
 
  ジョイスティックハット状態
  ジョイスティックハット状態。
 
  ジョイスティック
  ジョイスティック ID。
 
  キーボードキートークン
  キーボードキートークン。
 
  修飾キーフラグ
  修飾キーフラグ。
 
  マウスボタン
  マウスボタン ID。
 
  標準カーソル形状
  標準システムカーソル形状。
 

マクロ

#define  GLFW_KEY_UNKNOWN   -1
 

型定義

typedef struct GLFWcursor  GLFWcursor
  不透明なカーソルオブジェクト。
 
typedef void(*  GLFWmousebuttonfun) (GLFWwindow *window, int button, int action, int mods)
  マウスボタンコールバックの関数ポインター型。
 
typedef void(*  GLFWcursorposfun) (GLFWwindow *window, double xpos, double ypos)
  カーソル位置コールバックの関数ポインター型。
 
typedef void(*  GLFWcursorenterfun) (GLFWwindow *window, int entered)
  カーソル進入・退出コールバックの関数ポインター型。
 
typedef void(*  GLFWscrollfun) (GLFWwindow *window, double xoffset, double yoffset)
  スクロールコールバックの関数ポインター型。
 
typedef void(*  GLFWkeyfun) (GLFWwindow *window, int key, int scancode, int action, int mods)
  キーボードキーコールバックの関数ポインター型。
 
typedef void(*  GLFWcharfun) (GLFWwindow *window, unsigned int codepoint)
  Unicode 文字コールバックの関数ポインター型。
 
typedef void(*  GLFWcharmodsfun) (GLFWwindow *window, unsigned int codepoint, int mods)
  修飾キー付き Unicode 文字コールバックの関数ポインター型。
 
typedef void(*  GLFWdropfun) (GLFWwindow *window, int path_count, const char *paths[])
  パスのドロップコールバックの関数ポインター型。
 
typedef void(*  GLFWjoystickfun) (int jid, int event)
  ジョイスティック構成コールバックの関数ポインター型。
 
typedef struct GLFWgamepadstate  GLFWgamepadstate
  ゲームパッド入力状態。
 

関数

int  glfwGetInputMode (GLFWwindow *window, int mode)
  指定されたウィンドウの入力オプション値を返します。
 
void  glfwSetInputMode (GLFWwindow *window, int mode, int value)
  指定されたウィンドウの入力オプションを設定します。
 
int  glfwRawMouseMotionSupported (void)
  生のマウス移動がサポートされているかを返します。
 
const char *  glfwGetKeyName (int key, int scancode)
  指定された印字可能キーのレイアウト固有名を返します。
 
int  glfwGetKeyScancode (int key)
  指定されたキーのプラットフォーム固有スキャンコードを返します。
 
int  glfwGetKey (GLFWwindow *window, int key)
  指定されたウィンドウについて、キーボードキーの最後に報告された状態を返します。
 
int  glfwGetMouseButton (GLFWwindow *window, int button)
  指定されたウィンドウについて、マウスボタンの最後に報告された状態を返します。
 
void  glfwGetCursorPos (GLFWwindow *window, double *xpos, double *ypos)
  ウィンドウのコンテンツ領域を基準としたカーソル位置を取得します。
 
void  glfwSetCursorPos (GLFWwindow *window, double xpos, double ypos)
  ウィンドウのコンテンツ領域を基準としたカーソル位置を設定します。
 
GLFWcursor glfwCreateCursor (const GLFWimage *image, int xhot, int yhot)
  カスタムカーソルを作成します。
 
GLFWcursor glfwCreateStandardCursor (int shape)
  標準形状のカーソルを作成します。
 
void  glfwDestroyCursor (GLFWcursor *cursor)
  カーソルを破棄します。
 
void  glfwSetCursor (GLFWwindow *window, GLFWcursor *cursor)
  ウィンドウのカーソルを設定します。
 
GLFWkeyfun  glfwSetKeyCallback (GLFWwindow *window, GLFWkeyfun callback)
  キーコールバックを設定します。
 
GLFWcharfun  glfwSetCharCallback (GLFWwindow *window, GLFWcharfun callback)
  Unicode 文字コールバックを設定します。
 
GLFWcharmodsfun  glfwSetCharModsCallback (GLFWwindow *window, GLFWcharmodsfun callback)
  修飾キー付き Unicode 文字コールバックを設定します。
 
GLFWmousebuttonfun  glfwSetMouseButtonCallback (GLFWwindow *window, GLFWmousebuttonfun callback)
  マウスボタンコールバックを設定します。
 
GLFWcursorposfun  glfwSetCursorPosCallback (GLFWwindow *window, GLFWcursorposfun callback)
  カーソル位置コールバックを設定します。
 
GLFWcursorenterfun  glfwSetCursorEnterCallback (GLFWwindow *window, GLFWcursorenterfun callback)
  カーソル進入・退出コールバックを設定します。
 
GLFWscrollfun  glfwSetScrollCallback (GLFWwindow *window, GLFWscrollfun callback)
  スクロールコールバックを設定します。
 
GLFWdropfun  glfwSetDropCallback (GLFWwindow *window, GLFWdropfun callback)
  パスのドロップコールバックを設定します。
 
int  glfwJoystickPresent (int jid)
  指定されたジョイスティックが存在するかを返します。
 
const float *  glfwGetJoystickAxes (int jid, int *count)
  指定されたジョイスティックの全軸の値を返します。
 
const unsigned char *  glfwGetJoystickButtons (int jid, int *count)
  指定されたジョイスティックの全ボタンの状態を返します。
 
const unsigned char *  glfwGetJoystickHats (int jid, int *count)
  指定されたジョイスティックの全ハットの状態を返します。
 
const char *  glfwGetJoystickName (int jid)
  指定されたジョイスティックの名前を返します。
 
const char *  glfwGetJoystickGUID (int jid)
  指定されたジョイスティックの SDL 互換 GUID を返します。
 
void  glfwSetJoystickUserPointer (int jid, void *pointer)
  指定されたジョイスティックのユーザーポインターを設定します。
 
void *  glfwGetJoystickUserPointer (int jid)
  指定されたジョイスティックのユーザーポインターを返します。
 
int  glfwJoystickIsGamepad (int jid)
  指定されたジョイスティックにゲームパッドマッピングがあるかを返します。
 
GLFWjoystickfun  glfwSetJoystickCallback (GLFWjoystickfun callback)
  ジョイスティック構成コールバックを設定します。
 
int  glfwUpdateGamepadMappings (const char *string)
  指定された SDL_GameControllerDB ゲームパッドマッピングを追加します。
 
const char *  glfwGetGamepadName (int jid)
  指定されたジョイスティックの人間が読めるゲームパッド名を返します。
 
int  glfwGetGamepadState (int jid, GLFWgamepadstate *state)
  ゲームパッドとして再マッピングされた、指定されたジョイスティックの状態を取得します。
 
void  glfwSetClipboardString (GLFWwindow *window, const char *string)
  クリップボードを指定された文字列に設定します。
 
const char *  glfwGetClipboardString (GLFWwindow *window)
  クリップボードの内容を文字列として返します。
 
double  glfwGetTime (void)
  GLFW 時刻を返します。
 
void  glfwSetTime (double time)
  GLFW 時刻を設定します。
 
uint64_t  glfwGetTimerValue (void)
  生タイマーの現在値を返します。
 
uint64_t  glfwGetTimerFrequency (void)
  生タイマーの周波数を Hz 単位で返します。
 

マクロ定義の詳細

◆ GLFW_RELEASE

#define GLFW_RELEASE   0

キーまたはマウスボタンが解放されました。

◆ GLFW_PRESS

#define GLFW_PRESS   1

キーまたはマウスボタンが押されました。

◆ GLFW_REPEAT

#define GLFW_REPEAT   2

キーがリピートするまで押し続けられました。

◆ GLFW_KEY_UNKNOWN

#define GLFW_KEY_UNKNOWN   -1

型定義の詳細

◆ GLFWcursor

typedef struct GLFWcursor GLFWcursor

不透明なカーソルオブジェクトです。

関連項目
カーソルオブジェクト

導入バージョン
バージョン 3.1 で追加されました。

◆ GLFWmousebuttonfun

typedef void(* GLFWmousebuttonfun) (GLFWwindow *window, int button, int action, int mods)

これは、マウスボタンコールバック関数の関数ポインター型です。マウスボタンコールバック関数は、次のシグネチャを持ちます。

void function_name(GLFWwindow* window, int button, int action, int mods)

struct GLFWwindow GLFWwindow

不透明なウィンドウオブジェクトです。

定義 glfw3.h:1408

引数

[in]windowイベントを受け取ったウィンドウ。
[in]button押された、または解放されたマウスボタン
[in]actionGLFW_PRESS または GLFW_RELEASE のいずれか。将来のリリースでアクションが追加される可能性があります。
[in]modsどの修飾キーが押されていたかを表すビットフィールド。

関連項目
マウスボタン入力

glfwSetMouseButtonCallback

導入バージョン
バージョン 1.0 で追加されました。GLFW 3: ウィンドウハンドルと修飾キーマスクの引数が追加されました。

◆ GLFWcursorposfun

typedef void(* GLFWcursorposfun) (GLFWwindow *window, double xpos, double ypos)

これは、カーソル位置コールバックの関数ポインター型です。カーソル位置コールバック関数は、次のシグネチャを持ちます。

void function_name(GLFWwindow* window, double xpos, double ypos);

引数

[in]windowイベントを受け取ったウィンドウ。
[in]xposコンテンツ領域の左端を基準とした、新しいカーソルの X 座標。
[in]yposコンテンツ領域の上端を基準とした、新しいカーソルの Y 座標。

関連項目
カーソル位置

glfwSetCursorPosCallback

導入バージョン
バージョン 3.0 で追加されました。GLFWmouseposfun を置き換えます。

◆ GLFWcursorenterfun

typedef void(* GLFWcursorenterfun) (GLFWwindow *window, int entered)

これは、カーソル進入・退出コールバックの関数ポインター型です。カーソル進入・退出コールバック関数は、次のシグネチャを持ちます。

void function_name(GLFWwindow* window, int entered)

引数

[in]windowイベントを受け取ったウィンドウ。
[in]enteredカーソルがウィンドウのコンテンツ領域へ入った場合は GLFW_TRUE、出た場合は GLFW_FALSE

関連項目
カーソルの進入・退出イベント

glfwSetCursorEnterCallback

導入バージョン
バージョン 3.0 で追加されました。

◆ GLFWscrollfun

typedef void(* GLFWscrollfun) (GLFWwindow *window, double xoffset, double yoffset)

これは、スクロールコールバックの関数ポインター型です。スクロールコールバック関数は、次のシグネチャを持ちます。

void function_name(GLFWwindow* window, double xoffset, double yoffset)

引数

[in]windowイベントを受け取ったウィンドウ。
[in]xoffsetX 軸方向のスクロールオフセット。
[in]yoffsetY 軸方向のスクロールオフセット。

関連項目
スクロール入力

glfwSetScrollCallback

導入バージョン
バージョン 3.0 で追加されました。GLFWmousewheelfun を置き換えます。

◆ GLFWkeyfun

typedef void(* GLFWkeyfun) (GLFWwindow *window, int key, int scancode, int action, int mods)

これは、キーボードキーコールバックの関数ポインター型です。キーボードキーコールバック関数は、次のシグネチャを持ちます。

void function_name(GLFWwindow* window, int key, int scancode, int action, int mods)

引数

[in]windowイベントを受け取ったウィンドウ。
[in]key押された、または解放されたキーボードキー
[in]scancodeキーのプラットフォーム固有スキャンコード。
[in]actionGLFW_PRESSGLFW_RELEASE、または GLFW_REPEAT。将来のリリースでアクションが追加される可能性があります。
[in]modsどの修飾キーが押されていたかを表すビットフィールド。

関連項目
キー入力

glfwSetKeyCallback

導入バージョン
バージョン 1.0 で追加されました。GLFW 3: ウィンドウハンドル、スキャンコード、修飾キーマスクの引数が追加されました。

◆ GLFWcharfun

typedef void(* GLFWcharfun) (GLFWwindow *window, unsigned int codepoint)

これは、Unicode 文字コールバックの関数ポインター型です。Unicode 文字コールバック関数は、次のシグネチャを持ちます。

void function_name(GLFWwindow* window, unsigned int codepoint)

引数

[in]windowイベントを受け取ったウィンドウ。
[in]codepoint文字の Unicode コードポイント。

関連項目
テキスト入力

glfwSetCharCallback

導入バージョン
バージョン 2.4 で追加されました。GLFW 3: ウィンドウハンドルの引数が追加されました。

◆ GLFWcharmodsfun

typedef void(* GLFWcharmodsfun) (GLFWwindow *window, unsigned int codepoint, int mods)

これは、修飾キー付き Unicode 文字コールバックの関数ポインター型です。どの修飾キーが押されているかにかかわらず、入力文字ごとに呼び出されます。修飾キー付き Unicode 文字コールバック関数は、次のシグネチャを持ちます。

void function_name(GLFWwindow* window, unsigned int codepoint, int mods)

引数

[in]windowイベントを受け取ったウィンドウ。
[in]codepoint文字の Unicode コードポイント。
[in]modsどの修飾キーが押されていたかを表すビットフィールド。

関連項目
テキスト入力

glfwSetCharModsCallback

非推奨:
バージョン 4.0 で削除される予定です。

導入バージョン
バージョン 3.1 で追加されました。

◆ GLFWdropfun

typedef void(* GLFWdropfun) (GLFWwindow *window, int path_count, const char *paths[])

これは、パスのドロップコールバックの関数ポインター型です。パスのドロップコールバック関数は、次のシグネチャを持ちます。

void function_name(GLFWwindow* window, int path_count, const char* paths[])

引数

[in]windowイベントを受け取ったウィンドウ。
[in]path_countドロップされたパスの数。
[in]pathsUTF-8 でエンコードされたファイルおよびディレクトリのパス名。

ポインターの有効期間
パス配列とその文字列は、コールバック関数が戻るまで有効です。

関連項目
パスのドロップ入力

glfwSetDropCallback

導入バージョン
バージョン 3.1 で追加されました。

◆ GLFWjoystickfun

typedef void(* GLFWjoystickfun) (int jid, int event)

これは、ジョイスティック構成コールバックの関数ポインター型です。ジョイスティック構成コールバック関数は、次のシグネチャを持ちます。

void function_name(int jid, int event)

引数

[in]jid接続または切断されたジョイスティック。
[in]eventGLFW_CONNECTED または GLFW_DISCONNECTED のいずれか。将来のリリースでイベントが追加される可能性があります。

関連項目
ジョイスティック構成の変更

glfwSetJoystickCallback

導入バージョン
バージョン 3.2 で追加されました。

◆ GLFWgamepadstate

これは、ゲームパッドの入力状態を表します。

関連項目
ゲームパッド入力

glfwGetGamepadState

導入バージョン
バージョン 3.3 で追加されました。

関数の詳細

◆ glfwGetInputMode()

int glfwGetInputMode(GLFWwindowwindow,
int mode 
)

この関数は、指定されたウィンドウの入力オプション値を返します。モードは GLFW_CURSORGLFW_STICKY_KEYSGLFW_STICKY_MOUSE_BUTTONSGLFW_LOCK_KEY_MODS、または GLFW_RAW_MOUSE_MOTION のいずれかでなければなりません。

引数

[in]window照会するウィンドウ。
[in]modeGLFW_CURSORGLFW_STICKY_KEYSGLFW_STICKY_MOUSE_BUTTONSGLFW_LOCK_KEY_MODS、または GLFW_RAW_MOUSE_MOTION のいずれか。

エラー
発生する可能性のあるエラーには、GLFW_NOT_INITIALIZEDGLFW_INVALID_ENUM があります。

スレッドセーフ性
この関数は、メインスレッドからのみ呼び出さなければなりません。

関連項目
glfwSetInputMode

導入バージョン
バージョン 3.0 で追加されました。

◆ glfwSetInputMode()

void glfwSetInputMode(GLFWwindowwindow,
int mode,
int value 
)

この関数は、指定されたウィンドウの入力モードオプションを設定します。モードは GLFW_CURSORGLFW_STICKY_KEYSGLFW_STICKY_MOUSE_BUTTONSGLFW_LOCK_KEY_MODSGLFW_RAW_MOUSE_MOTION、または GLFW_UNLIMITED_MOUSE_BUTTONS のいずれかでなければなりません。

モードが GLFW_CURSOR の場合、値は次のカーソルモードのいずれかでなければなりません。

  • GLFW_CURSOR_NORMAL はカーソルを表示し、通常どおり動作させます。
  • GLFW_CURSOR_HIDDEN は、カーソルがウィンドウのコンテンツ領域上にあるとき非表示にしますが、領域外へ出ることは制限しません。
  • GLFW_CURSOR_DISABLED はカーソルを非表示にして捕捉し、仮想的で無制限のカーソル移動を提供します。これは、たとえば3Dカメラ制御の実装に役立ちます。
  • GLFW_CURSOR_CAPTURED はカーソルを表示し、ウィンドウのコンテンツ領域内に制限します。

モードが GLFW_STICKY_KEYS の場合、値はスティッキーキーを有効にする GLFW_TRUE、または無効にする GLFW_FALSE でなければなりません。スティッキーキーが有効な場合、呼び出し前にキーが解放されていても、キーが押されると次回の glfwGetKeyGLFW_PRESS を返します。これは、キーがいつ、どの順序で押されたかではなく、押されたかどうかだけに関心がある場合に役立ちます。

モードが GLFW_STICKY_MOUSE_BUTTONS の場合、値はスティッキーマウスボタンを有効にする GLFW_TRUE、または無効にする GLFW_FALSE でなければなりません。スティッキーマウスボタンが有効な場合、呼び出し前にマウスボタンが解放されていても、ボタンが押されると次回の glfwGetMouseButtonGLFW_PRESS を返します。これは、ボタンがいつ、どの順序で押されたかではなく、押されたかどうかだけに関心がある場合に役立ちます。

モードが GLFW_LOCK_KEY_MODS の場合、値はロックキー修飾ビットを有効にする GLFW_TRUE、または無効にする GLFW_FALSE でなければなりません。有効な場合、修飾ビットを受け取るコールバックでは、Caps Lock がオンの状態でイベントが生成されると GLFW_MOD_CAPS_LOCK ビットが、Num Lock がオンなら GLFW_MOD_NUM_LOCK ビットも設定されます。

モードが GLFW_RAW_MOUSE_MOTION の場合、値はカーソル無効時の生の(拡大縮小も加速もされない)マウス移動を有効にする GLFW_TRUE、または無効にする GLFW_FALSE でなければなりません。生の移動がサポートされていない場合、設定しようとすると GLFW_FEATURE_UNAVAILABLE が発生します。サポートの確認には glfwRawMouseMotionSupported を呼び出してください。

モードが GLFW_UNLIMITED_MOUSE_BUTTONS の場合、値はマウスボタンコールバック呼び出し時のボタン制限を無効にする GLFW_TRUE、またはコールバックへ送るボタンを GLFW_MOUSE_BUTTON_LAST までのマウスボタントークン値に制限する GLFW_FALSE でなければなりません。

引数

[in]window入力モードを設定するウィンドウ。
[in]modeGLFW_CURSORGLFW_STICKY_KEYSGLFW_STICKY_MOUSE_BUTTONSGLFW_LOCK_KEY_MODS、または GLFW_RAW_MOUSE_MOTION のいずれか。
[in]value指定された入力モードの新しい値。

エラー
発生する可能性のあるエラーには、GLFW_NOT_INITIALIZEDGLFW_INVALID_ENUMGLFW_PLATFORM_ERROR、および GLFW_FEATURE_UNAVAILABLE(上記を参照)があります。

スレッドセーフ性
この関数は、メインスレッドからのみ呼び出さなければなりません。

関連項目
glfwGetInputMode

導入バージョン
バージョン 3.0 で追加されました。glfwEnableglfwDisable を置き換えます。

◆ glfwRawMouseMotionSupported()

int glfwRawMouseMotionSupported(void )

この関数は、現在のシステムで生のマウス移動がサポートされているかを返します。この状態は GLFW の初期化後に変化しないため、確認は一度だけでかまいません。サポートしていないシステムで生の移動を有効にしようとすると、GLFW_PLATFORM_ERROR が発生します。

生のマウス移動は、面上での実際のマウスの動きに近いものです。デスクトップカーソルの移動に適用される拡大縮小や加速の影響を受けません。その処理はカーソルには適していますが、たとえば3Dカメラの制御には生の移動の方が適しています。このため、生のマウス移動はカーソルが無効な場合にのみ提供されます。

戻り値
現在のマシンで生のマウス移動がサポートされている場合は GLFW_TRUE、それ以外の場合は GLFW_FALSE

エラー
発生する可能性のあるエラーには、GLFW_NOT_INITIALIZED があります。

スレッドセーフ性
この関数は、メインスレッドからのみ呼び出さなければなりません。

関連項目
生のマウス移動

glfwSetInputMode

導入バージョン
バージョン 3.3 で追加されました。

◆ glfwGetKeyName()

const char * glfwGetKeyName(int key,
int scancode 
)

この関数は、指定された印字可能キーの名前を UTF-8 エンコードで返します。これは通常、そのキーが修飾キーなしで生成する文字であり、ユーザーへキーバインドを表示するためのものです。デッドキーの場合は通常、文字へ付加されるダイアクリティカルマークです。

テキスト入力この関数を使用しないでください。自分の言語ではたまたま動作しても、多くの言語のテキスト入力を壊します。

キーが GLFW_KEY_UNKNOWN の場合、キーの識別にスキャンコードが使用されます。それ以外の場合、スキャンコードは無視されます。印字不可能なキー、または GLFW_KEY_UNKNOWN と印字不可能なキーに対応するスキャンコードを指定すると、この関数は NULL を返しますが、エラーは発生させません。

この動作により、キーコールバックの引数を常に変更せず渡せます。

印字可能なキーは次のとおりです。

  • GLFW_KEY_APOSTROPHE
  • GLFW_KEY_COMMA
  • GLFW_KEY_MINUS
  • GLFW_KEY_PERIOD
  • GLFW_KEY_SLASH
  • GLFW_KEY_SEMICOLON
  • GLFW_KEY_EQUAL
  • GLFW_KEY_LEFT_BRACKET
  • GLFW_KEY_RIGHT_BRACKET
  • GLFW_KEY_BACKSLASH
  • GLFW_KEY_WORLD_1
  • GLFW_KEY_WORLD_2
  • GLFW_KEY_0 to GLFW_KEY_9
  • GLFW_KEY_A to GLFW_KEY_Z
  • GLFW_KEY_KP_0 to GLFW_KEY_KP_9
  • GLFW_KEY_KP_DECIMAL
  • GLFW_KEY_KP_DIVIDE
  • GLFW_KEY_KP_MULTIPLY
  • GLFW_KEY_KP_SUBTRACT
  • GLFW_KEY_KP_ADD
  • GLFW_KEY_KP_EQUAL

印字可能なキーの名前はキーボードレイアウトに依存します。一方、印字不可能なキーの名前はレイアウト間で共通ですが、アプリケーションの言語に依存するため、他のユーザーインターフェイス文字列とともにローカライズすべきです。

引数

[in]key照会するキー、または GLFW_KEY_UNKNOWN
[in]scancode照会するキーのスキャンコード。

戻り値
UTF-8 でエンコードされたレイアウト固有のキー名、または NULL

エラー
発生する可能性のあるエラーには、GLFW_NOT_INITIALIZEDGLFW_INVALID_VALUEGLFW_INVALID_ENUM、および GLFW_PLATFORM_ERROR があります。

備考
キーボードレイアウト変更イベントを受け取ると、返される文字列の内容が変わることがあります。

ポインターの有効期間
返される文字列は GLFW が割り当て、解放します。自分で解放しないでください。ライブラリが終了するまで有効です。

スレッドセーフ性
この関数は、メインスレッドからのみ呼び出さなければなりません。

関連項目
キー名

導入バージョン
バージョン 3.2 で追加されました。

◆ glfwGetKeyScancode()

int glfwGetKeyScancode(int key)

この関数は、指定されたキーのプラットフォーム固有スキャンコードを返します。

指定されたキートークンが現在のプラットフォームでサポートされていない物理キーに対応する場合、この関数は -1 を返します。キートークン以外を指定して呼び出すと、-1 を返し、GLFW_INVALID_ENUM エラーを発生させます。

引数

[in]key任意のキートークン

戻り値
キーのプラットフォーム固有スキャンコード。キーが現在のプラットフォームでサポートされていない場合、またはエラーが発生した場合は -1

エラー
発生する可能性のあるエラーには、GLFW_NOT_INITIALIZEDGLFW_INVALID_ENUM があります。

スレッドセーフ性
この関数は、任意のスレッドから呼び出せます。

関連項目
キー入力

導入バージョン
バージョン 3.3 で追加されました。

◆ glfwGetKey()

int glfwGetKey(GLFWwindowwindow,
int key 
)

この関数は、指定されたウィンドウへ最後に報告された、指定されたキーの状態を返します。返される状態は GLFW_PRESS または GLFW_RELEASE のいずれかです。GLFW_REPEAT アクションはキーコールバックだけに報告されます。

GLFW_STICKY_KEYS 入力モードが有効な場合、押されたキーについて最初にこの関数を呼び出すと、そのキーがすでに解放されていても GLFW_PRESS を返します。

キー関数は物理キーを扱い、キートークンは標準的な米国キーボードレイアウトでの用途に基づいて命名されています。テキストを入力する場合は、代わりに Unicode 文字コールバックを使用してください。

修飾キーのビットマスクはキートークンではなく、この関数では使用できません。

テキスト入力の実装にこの関数を使用しないでください

引数

[in]window対象のウィンドウ。
[in]key対象のキーボードキーGLFW_KEY_UNKNOWN はこの関数では有効なキーではありません。

戻り値
GLFW_PRESS または GLFW_RELEASE のいずれか。

エラー
発生する可能性のあるエラーには、GLFW_NOT_INITIALIZEDGLFW_INVALID_ENUM があります。

スレッドセーフ性
この関数は、メインスレッドからのみ呼び出さなければなりません。

関連項目
キー入力

導入バージョン
バージョン 1.0 で追加されました。GLFW 3: ウィンドウハンドルの引数が追加されました。

◆ glfwGetMouseButton()

int glfwGetMouseButton(GLFWwindowwindow,
int button 
)

この関数は、指定されたウィンドウへ最後に報告された、指定されたマウスボタンの状態を返します。返される状態は GLFW_PRESS または GLFW_RELEASE のいずれかです。

GLFW_STICKY_MOUSE_BUTTONS 入力モードが有効な場合、押されたマウスボタンについて最初にこの関数を呼び出すと、そのボタンがすでに解放されていても GLFW_PRESS を返します。

GLFW_UNLIMITED_MOUSE_BUTTONS 入力モードは、この関数でポーリングできるボタンの上限には影響しません。

引数

[in]window対象のウィンドウ。
[in]button対象のマウスボタントークン

戻り値
GLFW_PRESS または GLFW_RELEASE のいずれか。

エラー
発生する可能性のあるエラーには、GLFW_NOT_INITIALIZEDGLFW_INVALID_ENUM があります。

スレッドセーフ性
この関数は、メインスレッドからのみ呼び出さなければなりません。

関連項目
マウスボタン入力

導入バージョン
バージョン 1.0 で追加されました。GLFW 3: ウィンドウハンドルの引数が追加されました。

◆ glfwGetCursorPos()

void glfwGetCursorPos(GLFWwindowwindow,
double * xpos,
double * ypos 
)

この関数は、指定されたウィンドウのコンテンツ領域の左上隅を基準としたカーソル位置をスクリーン座標で返します。

カーソルが(GLFW_CURSOR_DISABLED で)無効になっている場合、カーソル位置は制約されず、double の最小値と最大値によってのみ制限されます。

座標は floor 関数で対応する整数値へ変換できます。整数型への直接キャストは正の座標では機能しますが、負の座標では正しく機能しません。

位置を受け取る引数は、一部またはすべてを NULL にできます。エラーが発生した場合、NULL でない位置の引数はすべてゼロに設定されます。

引数

[in]window対象のウィンドウ。
[out]xposコンテンツ領域の左端を基準としたカーソルの X 座標を格納する場所、または NULL
[out]yposコンテンツ領域の上端を基準としたカーソルの Y 座標を格納する場所、または NULL

エラー
発生する可能性のあるエラーには、GLFW_NOT_INITIALIZEDGLFW_PLATFORM_ERROR があります。

スレッドセーフ性
この関数は、メインスレッドからのみ呼び出さなければなりません。

関連項目
カーソル位置

glfwSetCursorPos

導入バージョン
バージョン 3.0 で追加されました。glfwGetMousePos を置き換えます。

◆ glfwSetCursorPos()

void glfwSetCursorPos(GLFWwindowwindow,
double xpos,
double ypos 
)

この関数は、指定されたウィンドウのコンテンツ領域の左上隅を基準としたカーソル位置をスクリーン座標で設定します。ウィンドウは入力フォーカスを持っていなければなりません。この関数の呼び出し時にウィンドウが入力フォーカスを持っていない場合、何も報告せず失敗します。

カメラ制御などの実装にこの関数を使用しないでください。GLFW は、カーソルを非表示にし、透過的に中央へ戻し、制約のないカーソル移動を提供する GLFW_CURSOR_DISABLED カーソルモードをすでに備えています。詳しくは glfwSetInputMode を参照してください。

カーソルモードが GLFW_CURSOR_DISABLED の場合、カーソル位置は制約されず、double の最小値と最大値によってのみ制限されます。

引数

[in]window対象のウィンドウ。
[in]xposコンテンツ領域の左端を基準とした、要求する X 座標。
[in]yposコンテンツ領域の上端を基準とした、要求する Y 座標。

エラー
発生する可能性のあるエラーには、GLFW_NOT_INITIALIZEDGLFW_PLATFORM_ERROR、および GLFW_FEATURE_UNAVAILABLE(備考を参照)があります。

備考
Wayland: この関数は、カーソルモードが GLFW_CURSOR_DISABLED の場合にのみ動作します。それ以外の場合は GLFW_FEATURE_UNAVAILABLE を発生させます。

スレッドセーフ性
この関数は、メインスレッドからのみ呼び出さなければなりません。

関連項目
カーソル位置

glfwGetCursorPos

導入バージョン
バージョン 3.0 で追加されました。glfwSetMousePos を置き換えます。

◆ glfwCreateCursor()

GLFWcursor * glfwCreateCursor(const GLFWimageimage,
int xhot,
int yhot 
)

glfwSetCursor でウィンドウへ設定できる、新しいカスタムカーソル画像を作成します。カーソルは glfwDestroyCursor で破棄できます。残っているカーソルは glfwTerminate によって破棄されます。

ピクセルは32ビット、リトルエンディアン、非乗算済み RGBA、つまり赤チャンネルを先頭とする各チャンネル8ビットです。左上隅から始まる、パックされた連続行として標準的に配置されます。

カーソルのホットスポットは、カーソル画像の左上隅を基準としてピクセル単位で指定します。GLFW の他のすべての座標系と同様に、X 軸は右向き、Y 軸は下向きです。

引数

[in]image要求するカーソル画像。
[in]xhotカーソルホットスポットに要求する X 座標(ピクセル)。
[in]yhotカーソルホットスポットに要求する Y 座標(ピクセル)。

戻り値
作成されたカーソルのハンドル。エラーが発生した場合は NULL

エラー
発生する可能性のあるエラーには、GLFW_NOT_INITIALIZEDGLFW_INVALID_VALUE、および GLFW_PLATFORM_ERROR があります。

ポインターの有効期間
指定された画像データは、この関数が戻る前にコピーされます。

スレッドセーフ性
この関数は、メインスレッドからのみ呼び出さなければなりません。

関連項目
カーソルオブジェクト

glfwDestroyCursor

glfwCreateStandardCursor

導入バージョン
バージョン 3.1 で追加されました。

◆ glfwCreateStandardCursor()

GLFWcursor * glfwCreateStandardCursor(int shape)

glfwSetCursor でウィンドウへ設定できる標準形状のカーソルを返します。これらのカーソル画像はシステムのカーソルテーマから取得されるため、正確な外観はプラットフォームによって異なります。

これらの形状の大部分は、サポートされるすべてのプラットフォームに存在することが保証されていますが、一部は存在しない場合があります。詳しくは次の表を参照してください。

カーソル形状WindowsmacOSX11Wayland
GLFW_ARROW_CURSORありありありあり
GLFW_IBEAM_CURSORありありありあり
GLFW_CROSSHAIR_CURSORありありありあり
GLFW_POINTING_HAND_CURSORありありありあり
GLFW_RESIZE_EW_CURSORありありありあり
GLFW_RESIZE_NS_CURSORありありありあり
GLFW_RESIZE_NWSE_CURSORありあり1場合による2場合による2
GLFW_RESIZE_NESW_CURSORありあり1場合による2場合による2
GLFW_RESIZE_ALL_CURSORありありありあり
GLFW_NOT_ALLOWED_CURSORありあり場合による2場合による2

1) 非公開のシステム API を使用しているため、将来動作しなくなる可能性があります。

2) 一部のカーソルテーマがサポートしていない新しい標準を使用しています。

要求された形状が利用できない場合、この関数は GLFW_CURSOR_UNAVAILABLE エラーを発生させ、NULL を返します。

引数

[in]shape標準形状のいずれか。

戻り値
使用可能な新しいカーソル。エラーが発生した場合は NULL

エラー
発生する可能性のあるエラーには、GLFW_NOT_INITIALIZEDGLFW_INVALID_ENUMGLFW_CURSOR_UNAVAILABLEGLFW_PLATFORM_ERROR があります。

スレッドセーフ性
この関数は、メインスレッドからのみ呼び出さなければなりません。

関連項目
標準カーソルの作成

glfwCreateCursor

導入バージョン
バージョン 3.1 で追加されました。

◆ glfwDestroyCursor()

void glfwDestroyCursor(GLFWcursorcursor)

この関数は、以前 glfwCreateCursor で作成したカーソルを破棄します。残っているカーソルは glfwTerminate によって破棄されます。

指定されたカーソルがいずれかのウィンドウで現在使用されている場合、そのウィンドウは既定のカーソルへ戻されます。これはカーソルモードには影響しません。

引数

[in]cursor破棄するカーソルオブジェクト。

エラー
発生する可能性のあるエラーには、GLFW_NOT_INITIALIZEDGLFW_PLATFORM_ERROR があります。

再入可能性
この関数は、コールバックから呼び出してはなりません。

スレッドセーフ性
この関数は、メインスレッドからのみ呼び出さなければなりません。

関連項目
カーソルオブジェクト

glfwCreateCursor

導入バージョン
バージョン 3.1 で追加されました。

◆ glfwSetCursor()

void glfwSetCursor(GLFWwindowwindow,
GLFWcursorcursor 
)

この関数は、カーソルが指定されたウィンドウのコンテンツ領域上にあるときに使用するカーソル画像を設定します。設定したカーソルは、ウィンドウのカーソルモードGLFW_CURSOR_NORMAL の場合にのみ表示されます。

一部のプラットフォームでは、ウィンドウが入力フォーカスも持っていなければ、設定したカーソルが表示されないことがあります。

引数

[in]windowカーソルを設定するウィンドウ。
[in]cursor設定するカーソル。既定の矢印カーソルへ戻す場合は NULL

エラー
発生する可能性のあるエラーには、GLFW_NOT_INITIALIZEDGLFW_PLATFORM_ERROR があります。

スレッドセーフ性
この関数は、メインスレッドからのみ呼び出さなければなりません。

関連項目
カーソルオブジェクト

導入バージョン
バージョン 3.1 で追加されました。

◆ glfwSetKeyCallback()

GLFWkeyfun glfwSetKeyCallback(GLFWwindowwindow,
GLFWkeyfun callback 
)

この関数は、指定されたウィンドウのキーコールバックを設定します。このコールバックは、キーが押されたとき、リピートしたとき、または解放されたときに呼び出されます。

キー関数は物理キーを扱い、レイアウトに依存しないキートークンは標準的な米国キーボードレイアウトでの値に基づいて命名されています。テキストを入力する場合は、代わりに文字コールバックを使用してください。

ウィンドウが入力フォーカスを失うと、関連するキートークンを持つ押下中のすべてのキーについて、合成されたキー解放イベントが生成されます。合成イベントはフォーカス喪失イベントの処理後、つまりウィンドウフォーカスコールバックの呼び出し後に生成されるため、ユーザー生成イベントと区別できます。

キーのスキャンコードは、そのプラットフォーム、場合によってはそのマシンに固有です。スキャンコードは、GLFW キートークンのないキーをユーザーが割り当てられるようにするためのものです。このようなキーでは keyGLFW_KEY_UNKNOWN に設定され、状態は保存されないため、glfwGetKey では照会できません。

GLFW が合成キーイベントを生成する必要がある場合があり、そのときスキャンコードはゼロになることがあります。

引数

[in]windowコールバックを設定するウィンドウ。
[in]callback新しいキーコールバック。現在設定されているコールバックを削除する場合は NULL

戻り値
以前に設定されていたコールバック。コールバックが設定されていなかった場合、またはライブラリが初期化されていなかった場合は NULL

コールバックのシグネチャ

void function_name(GLFWwindow* window, int key, int scancode, int action, int mods)

コールバックの引数について詳しくは、関数ポインター型を参照してください。

エラー
発生する可能性のあるエラーには、GLFW_NOT_INITIALIZED があります。

スレッドセーフ性
この関数は、メインスレッドからのみ呼び出さなければなりません。

関連項目
キー入力

導入バージョン
バージョン 1.0 で追加されました。GLFW 3: ウィンドウハンドルの引数と戻り値が追加されました。

◆ glfwSetCharCallback()

GLFWcharfun glfwSetCharCallback(GLFWwindowwindow,
GLFWcharfun callback 
)

この関数は、指定されたウィンドウの文字コールバックを設定します。このコールバックは、Unicode 文字が入力されたときに呼び出されます。

文字コールバックは Unicode テキスト入力を目的とします。文字を扱うためキーボードレイアウトに依存しますが、キーコールバックは依存しません。1つのキーがゼロ個、1個、または複数の文字を生成することがあるため、文字と物理キーは1対1に対応しません。特定の物理キーが押されたか、または解放されたかを知るには、代わりにキーコールバックを参照してください。

文字コールバックは通常のシステムテキスト入力と同様に動作し、macOS の Super(Command)キーや Windows の Alt キーなど、そのプラットフォームで通常のテキスト入力を妨げる修飾キーが押されている場合は呼び出されません。

引数

[in]windowコールバックを設定するウィンドウ。
[in]callback新しいコールバック。現在設定されているコールバックを削除する場合は NULL

戻り値
以前に設定されていたコールバック。コールバックが設定されていなかった場合、またはライブラリが初期化されていなかった場合は NULL

コールバックのシグネチャ

void function_name(GLFWwindow* window, unsigned int codepoint)

コールバックの引数について詳しくは、関数ポインター型を参照してください。

エラー
発生する可能性のあるエラーには、GLFW_NOT_INITIALIZED があります。

スレッドセーフ性
この関数は、メインスレッドからのみ呼び出さなければなりません。

関連項目
テキスト入力

導入バージョン
バージョン 2.4 で追加されました。GLFW 3: ウィンドウハンドルの引数と戻り値が追加されました。

◆ glfwSetCharModsCallback()

GLFWcharmodsfun glfwSetCharModsCallback(GLFWwindowwindow,
GLFWcharmodsfun callback 
)

この関数は、指定されたウィンドウの修飾キー付き文字コールバックを設定します。このコールバックは、使用されている修飾キーにかかわらず Unicode 文字が入力されたときに呼び出されます。

修飾キー付き文字コールバックは、独自の Unicode 文字入力を実装するためのものです。通常の Unicode テキスト入力については、文字コールバックを参照してください。文字コールバックと同様に、修飾キー付き文字コールバックは文字を扱い、キーボードレイアウトに依存します。1 つのキーから生成される文字は 0 個、1 個、または複数個の場合があるため、文字と物理キーは 1 対 1 には対応しません。特定の物理キーが押されたか離されたかを知りたい場合は、代わりにキーコールバックを参照してください。

引数

[in]windowコールバックを設定するウィンドウ。
[in]callback新しいコールバック。現在設定されているコールバックを削除する場合は NULL

戻り値
以前に設定されていたコールバック。コールバックが設定されていなかった場合、またはエラーが発生した場合は NULL

コールバックのシグネチャ

void function_name(GLFWwindow* window, unsigned int codepoint, int mods)

コールバックの引数について詳しくは、関数ポインター型を参照してください。

非推奨:
バージョン 4.0 で削除される予定です。

エラー
発生する可能性のあるエラーには、GLFW_NOT_INITIALIZED があります。

スレッドセーフ性
この関数は、メインスレッドからのみ呼び出さなければなりません。

関連項目
テキスト入力

導入バージョン
バージョン 3.1 で追加されました。

◆ glfwSetMouseButtonCallback()

GLFWmousebuttonfun glfwSetMouseButtonCallback(GLFWwindowwindow,
GLFWmousebuttonfun callback 
)

この関数は、指定されたウィンドウのマウスボタンコールバックを設定します。このコールバックは、マウスボタンが押されたとき、または離されたときに呼び出されます。

ウィンドウが入力フォーカスを失うと、対応するボタントークンを持つ押下中のすべてのマウスボタンについて、合成されたボタン解放イベントが生成されます。この合成イベントは、フォーカス喪失イベントが処理された後、つまりウィンドウフォーカスコールバックが呼び出された後に生成されるため、ユーザーが生成したイベントと区別できます。

ボタンに対応するボタントークンがなく、GLFW_UNLIMITED_MOUSE_BUTTONS 入力モードが設定されている場合、通知される button の値は GLFW_MOUSE_BUTTON_LAST より大きくなることがあります。

引数

[in]windowコールバックを設定するウィンドウ。
[in]callback新しいコールバック。現在設定されているコールバックを削除する場合は NULL

戻り値
以前に設定されていたコールバック。コールバックが設定されていなかった場合、またはライブラリが初期化されていなかった場合は NULL

コールバックのシグネチャ

void function_name(GLFWwindow* window, int button, int action, int mods)

コールバックの引数について詳しくは、関数ポインター型を参照してください。

エラー
発生する可能性のあるエラーには、GLFW_NOT_INITIALIZED があります。

スレッドセーフ性
この関数は、メインスレッドからのみ呼び出さなければなりません。

関連項目
マウスボタン入力

導入バージョン
バージョン 1.0 で追加されました。GLFW 3: ウィンドウハンドルの引数と戻り値が追加されました。

◆ glfwSetCursorPosCallback()

GLFWcursorposfun glfwSetCursorPosCallback(GLFWwindowwindow,
GLFWcursorposfun callback 
)

この関数は、指定されたウィンドウのカーソル位置コールバックを設定します。このコールバックは、カーソルが移動したときに呼び出されます。コールバックには、ウィンドウのコンテンツ領域の左上隅を基準としたスクリーン座標での位置が渡されます。

引数

[in]windowコールバックを設定するウィンドウ。
[in]callback新しいコールバック。現在設定されているコールバックを削除する場合は NULL

戻り値
以前に設定されていたコールバック。コールバックが設定されていなかった場合、またはライブラリが初期化されていなかった場合は NULL

コールバックのシグネチャ

void function_name(GLFWwindow* window, double xpos, double ypos);

コールバックの引数について詳しくは、関数ポインター型を参照してください。

エラー
発生する可能性のあるエラーには、GLFW_NOT_INITIALIZED があります。

スレッドセーフ性
この関数は、メインスレッドからのみ呼び出さなければなりません。

関連項目
カーソル位置

導入バージョン
バージョン 3.0 で追加されました。glfwSetMousePosCallback を置き換えます。

◆ glfwSetCursorEnterCallback()

GLFWcursorenterfun glfwSetCursorEnterCallback(GLFWwindowwindow,
GLFWcursorenterfun callback 
)

この関数は、指定されたウィンドウのカーソル境界通過コールバックを設定します。このコールバックは、カーソルがウィンドウのコンテンツ領域に入ったとき、またはそこから出たときに呼び出されます。

引数

[in]windowコールバックを設定するウィンドウ。
[in]callback新しいコールバック。現在設定されているコールバックを削除する場合は NULL

戻り値
以前に設定されていたコールバック。コールバックが設定されていなかった場合、またはライブラリが初期化されていなかった場合は NULL

コールバックのシグネチャ

void function_name(GLFWwindow* window, int entered)

コールバックの引数について詳しくは、関数ポインター型を参照してください。

エラー
発生する可能性のあるエラーには、GLFW_NOT_INITIALIZED があります。

スレッドセーフ性
この関数は、メインスレッドからのみ呼び出さなければなりません。

関連項目
カーソルの進入・退出イベント

導入バージョン
バージョン 3.0 で追加されました。

◆ glfwSetScrollCallback()

GLFWscrollfun glfwSetScrollCallback(GLFWwindowwindow,
GLFWscrollfun callback 
)

この関数は、指定されたウィンドウのスクロールコールバックを設定します。このコールバックは、マウスホイールやタッチパッドのスクロール領域など、スクロール装置が使用されたときに呼び出されます。

スクロールコールバックは、マウスホイールやタッチパッドのスクロール領域などからの、すべてのスクロール入力を受け取ります。

引数

[in]windowコールバックを設定するウィンドウ。
[in]callback新しいスクロールコールバック。現在設定されているコールバックを削除する場合は NULL

戻り値
以前に設定されていたコールバック。コールバックが設定されていなかった場合、またはライブラリが初期化されていなかった場合は NULL

コールバックのシグネチャ

void function_name(GLFWwindow* window, double xoffset, double yoffset)

コールバックの引数について詳しくは、関数ポインター型を参照してください。

エラー
発生する可能性のあるエラーには、GLFW_NOT_INITIALIZED があります。

スレッドセーフ性
この関数は、メインスレッドからのみ呼び出さなければなりません。

関連項目
スクロール入力

導入バージョン
バージョン 3.0 で追加されました。glfwSetMouseWheelCallback を置き換えます。

◆ glfwSetDropCallback()

GLFWdropfun glfwSetDropCallback(GLFWwindowwindow,
GLFWdropfun callback 
)

この関数は、指定されたウィンドウのパスドロップコールバックを設定します。このコールバックは、ドラッグされた 1 つ以上のパスがウィンドウ上にドロップされたときに呼び出されます。

パス配列とその文字列は、そのイベント専用に生成されている可能性があるため、コールバックから戻った後も有効であるとは保証されません。コールバックから戻った後に使用する場合は、ディープコピーを作成する必要があります。

引数

[in]windowコールバックを設定するウィンドウ。
[in]callback新しいファイルドロップコールバック。現在設定されているコールバックを削除する場合は NULL

戻り値
以前に設定されていたコールバック。コールバックが設定されていなかった場合、またはライブラリが初期化されていなかった場合は NULL

コールバックのシグネチャ

void function_name(GLFWwindow* window, int path_count, const char* paths[])

コールバックの引数について詳しくは、関数ポインター型を参照してください。

エラー
発生する可能性のあるエラーには、GLFW_NOT_INITIALIZED があります。

スレッドセーフ性
この関数は、メインスレッドからのみ呼び出さなければなりません。

関連項目
パスのドロップ入力

導入バージョン
バージョン 3.1 で追加されました。

◆ glfwJoystickPresent()

int glfwJoystickPresent(int jid)

この関数は、指定されたジョイスティックが存在するかどうかを返します。

ジョイスティック ID を受け取るほかの関数は、いずれも処理を行う前にジョイスティックの存在を確認するため、それらの関数より先にこの関数を呼び出す必要はありません。

引数

[in]jid問い合わせるジョイスティック

戻り値
ジョイスティックが存在する場合は GLFW_TRUE、それ以外の場合は GLFW_FALSE

エラー
発生する可能性のあるエラーには、GLFW_NOT_INITIALIZEDGLFW_INVALID_ENUMGLFW_PLATFORM_ERROR があります。

スレッドセーフ性
この関数は、メインスレッドからのみ呼び出さなければなりません。

関連項目
ジョイスティック入力

導入バージョン
バージョン 3.0 で追加されました。glfwGetJoystickParam を置き換えます。

◆ glfwGetJoystickAxes()

const float * glfwGetJoystickAxes(int jid,
int * count 
)

この関数は、指定されたジョイスティックの全軸の値を返します。配列の各要素は -1.0 以上 1.0 以下の値です。

指定されたジョイスティックが存在しない場合、この関数は NULL を返しますが、エラーは生成しません。このため、先に glfwJoystickPresent を呼び出す代わりに使用できます。

引数

[in]jid問い合わせるジョイスティック
[out]count戻り値の配列に含まれる軸の値の数を格納する場所。ジョイスティックが存在しない場合、またはエラーが発生した場合は 0 に設定されます。

戻り値
軸の値の配列。ジョイスティックが存在しない場合、またはエラーが発生した場合は NULL

エラー
発生する可能性のあるエラーには、GLFW_NOT_INITIALIZEDGLFW_INVALID_ENUMGLFW_PLATFORM_ERROR があります。

ポインターの有効期間
戻り値の配列は GLFW によって確保および解放されます。自分で解放してはいけません。指定されたジョイスティックが切断されるか、ライブラリが終了するまで有効です。

スレッドセーフ性
この関数は、メインスレッドからのみ呼び出さなければなりません。

関連項目
ジョイスティックの軸状態

導入バージョン
バージョン 3.0 で追加されました。glfwGetJoystickPos を置き換えます。

◆ glfwGetJoystickButtons()

const unsigned char * glfwGetJoystickButtons(int jid,
int * count 
)

この関数は、指定されたジョイスティックの全ボタンの状態を返します。配列の各要素は GLFW_PRESS または GLFW_RELEASE のいずれかです。

glfwGetJoystickHats がなかった以前のバージョンとの後方互換性のため、ボタン配列には、各ハットを 4 つのボタンとして表現した全ハットも含まれます。ハットの順序は glfwGetJoystickHats が返す順序と同じで、各ハットはの順です。この追加ボタンを無効にするには、初期化前に GLFW_JOYSTICK_HAT_BUTTONS 初期化ヒントを設定します。

指定されたジョイスティックが存在しない場合、この関数は NULL を返しますが、エラーは生成しません。このため、先に glfwJoystickPresent を呼び出す代わりに使用できます。

引数

[in]jid問い合わせるジョイスティック
[out]count戻り値の配列に含まれるボタン状態の数を格納する場所。ジョイスティックが存在しない場合、またはエラーが発生した場合は 0 に設定されます。

戻り値
ボタン状態の配列。ジョイスティックが存在しない場合、またはエラーが発生した場合は NULL

エラー
発生する可能性のあるエラーには、GLFW_NOT_INITIALIZEDGLFW_INVALID_ENUMGLFW_PLATFORM_ERROR があります。

ポインターの有効期間
戻り値の配列は GLFW によって確保および解放されます。自分で解放してはいけません。指定されたジョイスティックが切断されるか、ライブラリが終了するまで有効です。

スレッドセーフ性
この関数は、メインスレッドからのみ呼び出さなければなりません。

関連項目
ジョイスティックのボタン状態

導入バージョン
バージョン 2.2 で追加されました。GLFW 3: 動的配列を返すように変更されました。

◆ glfwGetJoystickHats()

const unsigned char * glfwGetJoystickHats(int jid,
int * count 
)

この関数は、指定されたジョイスティックの全ハットの状態を返します。配列の各要素は次のいずれかの値です。

名前
GLFW_HAT_CENTERED0
GLFW_HAT_UP1
GLFW_HAT_RIGHT2
GLFW_HAT_DOWN4
GLFW_HAT_LEFT8
GLFW_HAT_RIGHT_UPGLFW_HAT_RIGHT | GLFW_HAT_UP
GLFW_HAT_RIGHT_DOWNGLFW_HAT_RIGHT | GLFW_HAT_DOWN
GLFW_HAT_LEFT_UPGLFW_HAT_LEFT | GLFW_HAT_UP
GLFW_HAT_LEFT_DOWNGLFW_HAT_LEFT | GLFW_HAT_DOWN

斜め方向は、基本方向(上、右、下、左)のビット単位の組み合わせです。対応する方向との AND を取ることで、各方向を個別に検査できます。

if (hats[2] & GLFW_HAT_RIGHT)

{

// ハット 2 の状態は右上、右、右下のいずれか

}

#define GLFW_HAT_RIGHT

定義 glfw3.h:357

指定されたジョイスティックが存在しない場合、この関数は NULL を返しますが、エラーは生成しません。このため、先に glfwJoystickPresent を呼び出す代わりに使用できます。

引数

[in]jid問い合わせるジョイスティック
[out]count戻り値の配列に含まれるハット状態の数を格納する場所。ジョイスティックが存在しない場合、またはエラーが発生した場合は 0 に設定されます。

戻り値
ハット状態の配列。ジョイスティックが存在しない場合、またはエラーが発生した場合は NULL

エラー
発生する可能性のあるエラーには、GLFW_NOT_INITIALIZEDGLFW_INVALID_ENUMGLFW_PLATFORM_ERROR があります。

ポインターの有効期間
戻り値の配列は GLFW によって確保および解放されます。自分で解放してはいけません。指定されたジョイスティックが切断されるか、そのジョイスティックに対してこの関数が再び呼び出されるか、ライブラリが終了するまで有効です。

スレッドセーフ性
この関数は、メインスレッドからのみ呼び出さなければなりません。

関連項目
ジョイスティックのハット状態

導入バージョン
バージョン 3.3 で追加されました。

◆ glfwGetJoystickName()

const char * glfwGetJoystickName(int jid)

この関数は、指定されたジョイスティックの名前を UTF-8 エンコードで返します。戻り値の文字列は GLFW によって確保および解放されます。自分で解放してはいけません。

指定されたジョイスティックが存在しない場合、この関数は NULL を返しますが、エラーは生成しません。このため、先に glfwJoystickPresent を呼び出す代わりに使用できます。

引数

[in]jid問い合わせるジョイスティック

戻り値
UTF-8 エンコードされたジョイスティック名。ジョイスティックが存在しない場合、またはエラーが発生した場合は NULL

エラー
発生する可能性のあるエラーには、GLFW_NOT_INITIALIZEDGLFW_INVALID_ENUMGLFW_PLATFORM_ERROR があります。

ポインターの有効期間
戻り値の文字列は GLFW によって確保および解放されます。自分で解放してはいけません。指定されたジョイスティックが切断されるか、ライブラリが終了するまで有効です。

スレッドセーフ性
この関数は、メインスレッドからのみ呼び出さなければなりません。

関連項目
ジョイスティック名

導入バージョン
バージョン 3.0 で追加されました。

◆ glfwGetJoystickGUID()

const char * glfwGetJoystickGUID(int jid)

この関数は、指定されたジョイスティックの SDL 互換 GUID を、UTF-8 エンコードされた 16 進文字列として返します。戻り値の文字列は GLFW によって確保および解放されます。自分で解放してはいけません。

GUID は、ジョイスティックをゲームパッドマッピングに関連付けるものです。接続されたジョイスティックには、ゲームパッドマッピングが割り当てられていなくても常に GUID があります。

指定されたジョイスティックが存在しない場合、この関数は NULL を返しますが、エラーは生成しません。このため、先に glfwJoystickPresent を呼び出す代わりに使用できます。

GUID は SDL 2.0.5 で導入された形式を使用します。この GUID はジョイスティックのメーカーとモデルを一意に識別しようとしますが、個々の製品個体までは識別しません。たとえば、そのプラットフォーム上では、すべての有線 Xbox 360 コントローラーが同じ GUID を持ちます。プラットフォーム固有 API が提供するハードウェア情報に応じて、同じ個体でもプラットフォーム間で GUID が異なる場合があります。

引数

[in]jid問い合わせるジョイスティック

戻り値
UTF-8 エンコードされたジョイスティックの GUID。ジョイスティックが存在しない場合、またはエラーが発生した場合は NULL

エラー
発生する可能性のあるエラーには、GLFW_NOT_INITIALIZEDGLFW_INVALID_ENUMGLFW_PLATFORM_ERROR があります。

ポインターの有効期間
戻り値の文字列は GLFW によって確保および解放されます。自分で解放してはいけません。指定されたジョイスティックが切断されるか、ライブラリが終了するまで有効です。

スレッドセーフ性
この関数は、メインスレッドからのみ呼び出さなければなりません。

関連項目
ゲームパッド入力

導入バージョン
バージョン 3.3 で追加されました。

◆ glfwSetJoystickUserPointer()

void glfwSetJoystickUserPointer(int jid,
void * pointer 
)

この関数は、指定されたジョイスティックのユーザー定義ポインターを設定します。現在の値は、ジョイスティックが切断されるまで保持されます。初期値は NULL です。

この関数は、切断処理中のジョイスティックに対しても、ジョイスティックコールバックから呼び出せます。

引数

[in]jidポインターを設定するジョイスティック。
[in]pointer新しい値。

エラー
発生する可能性のあるエラーには、GLFW_NOT_INITIALIZED があります。

スレッドセーフ性
この関数は、どのスレッドからでも呼び出せます。アクセスは同期されません。

関連項目
ジョイスティックのユーザーポインター

glfwGetJoystickUserPointer

導入バージョン
バージョン 3.3 で追加されました。

◆ glfwGetJoystickUserPointer()

void * glfwGetJoystickUserPointer(int jid)

この関数は、指定されたジョイスティックのユーザー定義ポインターの現在値を返します。初期値は NULL です。

この関数は、切断処理中のジョイスティックに対しても、ジョイスティックコールバックから呼び出せます。

引数

[in]jidポインターを返すジョイスティック。

エラー
発生する可能性のあるエラーには、GLFW_NOT_INITIALIZED があります。

スレッドセーフ性
この関数は、どのスレッドからでも呼び出せます。アクセスは同期されません。

関連項目
ジョイスティックのユーザーポインター

glfwSetJoystickUserPointer

導入バージョン
バージョン 3.3 で追加されました。

◆ glfwJoystickIsGamepad()

int glfwJoystickIsGamepad(int jid)

この関数は、指定されたジョイスティックが存在し、かつゲームパッドマッピングを持つかどうかを返します。

指定されたジョイスティックが存在していてもゲームパッドマッピングを持たない場合、この関数は GLFW_FALSE を返しますが、エラーは生成しません。マッピングの有無にかかわらずジョイスティックが存在するかを確認するには、glfwJoystickPresent を呼び出してください。

引数

[in]jid問い合わせるジョイスティック

戻り値
ジョイスティックが存在し、かつゲームパッドマッピングを持つ場合は GLFW_TRUE、それ以外の場合は GLFW_FALSE

エラー
発生する可能性のあるエラーには、GLFW_NOT_INITIALIZEDGLFW_INVALID_ENUM があります。

スレッドセーフ性
この関数は、メインスレッドからのみ呼び出さなければなりません。

関連項目
ゲームパッド入力

glfwGetGamepadState

導入バージョン
バージョン 3.3 で追加されました。

◆ glfwSetJoystickCallback()

GLFWjoystickfun glfwSetJoystickCallback(GLFWjoystickfun callback)

この関数は、ジョイスティック構成コールバックを設定するか、現在設定されているコールバックを削除します。このコールバックは、ジョイスティックがシステムに接続されたとき、またはシステムから切断されたときに呼び出されます。

すべてのプラットフォームでジョイスティックの接続・切断イベントを受け取るには、いずれかのイベント処理関数を呼び出す必要があります。ジョイスティック関数によって切断が検出され、コールバックが呼び出される場合もあります。その場合、その関数はジョイスティックが存在しないときの戻り値を返します。

引数

[in]callback新しいコールバック。現在設定されているコールバックを削除する場合は NULL

戻り値
以前に設定されていたコールバック。コールバックが設定されていなかった場合、またはライブラリが初期化されていなかった場合は NULL

コールバックのシグネチャ

void function_name(int jid, int event)

コールバックの引数について詳しくは、関数ポインター型を参照してください。

エラー
発生する可能性のあるエラーには、GLFW_NOT_INITIALIZED があります。

スレッドセーフ性
この関数は、メインスレッドからのみ呼び出さなければなりません。

関連項目
ジョイスティック構成の変更

導入バージョン
バージョン 3.2 で追加されました。

◆ glfwUpdateGamepadMappings()

int glfwUpdateGamepadMappings(const char * string)

この関数は、指定された ASCII エンコード文字列を解析し、見つかったゲームパッドマッピングで内部リストを更新します。この文字列には、単一のゲームパッドマッピング、または改行で区切られた複数のマッピングを含められます。パーサーは、空行やコメントを含む gamecontrollerdb.txt ソースファイルの完全な形式をサポートします。

形式の説明については、ゲームパッドマッピングを参照してください。

指定された GUID のゲームパッドマッピングが内部リストにすでに存在する場合、この関数に渡されたマッピングで置き換えられます。ライブラリを終了して再初期化すると、内部リストは組み込みのデフォルトに戻ります。

引数

[in]stringゲームパッドマッピングを含む文字列。

戻り値
成功した場合は GLFW_TRUEエラーが発生した場合は GLFW_FALSE

エラー
発生する可能性のあるエラーには、GLFW_NOT_INITIALIZEDGLFW_INVALID_VALUE があります。

スレッドセーフ性
この関数は、メインスレッドからのみ呼び出さなければなりません。

関連項目
ゲームパッド入力

glfwJoystickIsGamepad

glfwGetGamepadName

導入バージョン
バージョン 3.3 で追加されました。

◆ glfwGetGamepadName()

const char * glfwGetGamepadName(int jid)

この関数は、指定されたジョイスティックに割り当てられたゲームパッドマッピングから、人が読めるゲームパッド名を返します。

指定されたジョイスティックが存在しないか、ゲームパッドマッピングを持たない場合、この関数は NULL を返しますが、エラーは生成しません。マッピングの有無にかかわらず存在を確認するには、glfwJoystickPresent を呼び出してください。

引数

[in]jid問い合わせるジョイスティック

戻り値
UTF-8 エンコードされたゲームパッド名。ジョイスティックが存在しない場合、マッピングを持たない場合、またはエラーが発生した場合は NULL

エラー
発生する可能性のあるエラーには、GLFW_NOT_INITIALIZEDGLFW_INVALID_ENUM があります。

ポインターの有効期間
戻り値の文字列は GLFW によって確保および解放されます。自分で解放してはいけません。指定されたジョイスティックが切断されるか、ゲームパッドマッピングが更新されるか、ライブラリが終了するまで有効です。

スレッドセーフ性
この関数は、メインスレッドからのみ呼び出さなければなりません。

関連項目
ゲームパッド入力

glfwJoystickIsGamepad

導入バージョン
バージョン 3.3 で追加されました。

◆ glfwGetGamepadState()

int glfwGetGamepadState(int jid,
GLFWgamepadstatestate 
)

この関数は、指定されたジョイスティックを Xbox 風ゲームパッドに再マッピングした状態を取得します。

指定されたジョイスティックが存在しないか、ゲームパッドマッピングを持たない場合、この関数は GLFW_FALSE を返しますが、エラーは生成しません。マッピングの有無にかかわらず存在を確認するには、glfwJoystickPresent を呼び出してください。

ガイドボタンはシステムや Steam クライアントによってフックされることが多いため、入力に使用できない場合があります。

すべてのデバイスが GLFWgamepadstate の提供する全ボタンおよび全軸を備えているわけではありません。使用できないボタンと軸は、それぞれ常に GLFW_RELEASE と 0.0 を通知します。

引数

[in]jid問い合わせるジョイスティック
[out]stateジョイスティックのゲームパッド入力状態。

戻り値
成功した場合は GLFW_TRUE。ジョイスティックが接続されていない場合、ゲームパッドマッピングがない場合、またはエラーが発生した場合は GLFW_FALSE

エラー
発生する可能性のあるエラーには、GLFW_NOT_INITIALIZEDGLFW_INVALID_ENUM があります。

スレッドセーフ性
この関数は、メインスレッドからのみ呼び出さなければなりません。

関連項目
ゲームパッド入力

glfwUpdateGamepadMappings

glfwJoystickIsGamepad

導入バージョン
バージョン 3.3 で追加されました。

◆ glfwSetClipboardString()

void glfwSetClipboardString(GLFWwindowwindow,
const char * string 
)

この関数は、システムのクリップボードに指定された UTF-8 エンコード文字列を設定します。

引数

[in]window非推奨。有効な任意のウィンドウ、または NULL
[in]stringUTF-8 エンコード文字列。

エラー
発生する可能性のあるエラーには、GLFW_NOT_INITIALIZEDGLFW_PLATFORM_ERROR があります。

備考
Win32: Windows のクリップボードには、読み書き用の単一のグローバルロックがあります。GLFW は数回ロックの取得を試み、ほとんどの場合はそれで十分です。ロックを取得できない場合、この関数は GLFW_PLATFORM_ERROR を生成して戻ります。この関数を複数回試行しても安全です。

ポインターの有効期間
指定された文字列は、この関数から戻る前にコピーされます。

スレッドセーフ性
この関数は、メインスレッドからのみ呼び出さなければなりません。

関連項目
クリップボードの入出力

glfwGetClipboardString

導入バージョン
バージョン 3.0 で追加されました。

◆ glfwGetClipboardString()

const char * glfwGetClipboardString(GLFWwindowwindow)

この関数は、システムのクリップボードに UTF-8 エンコード文字列が含まれているか、その形式に変換できる場合に、クリップボードの内容を返します。クリップボードが空の場合、または内容を変換できない場合は NULL を返し、GLFW_FORMAT_UNAVAILABLE エラーを生成します。

引数

[in]window非推奨。有効な任意のウィンドウ、または NULL

戻り値
UTF-8 エンコード文字列としてのクリップボードの内容。エラーが発生した場合は NULL

エラー
発生する可能性のあるエラーには、GLFW_NOT_INITIALIZEDGLFW_FORMAT_UNAVAILABLEGLFW_PLATFORM_ERROR があります。

備考
Win32: Windows のクリップボードには、読み書き用の単一のグローバルロックがあります。GLFW は数回ロックの取得を試み、ほとんどの場合はそれで十分です。ロックを取得できない場合、この関数は GLFW_PLATFORM_ERROR を生成して戻ります。この関数を複数回試行しても安全です。

ポインターの有効期間
戻り値の文字列は GLFW によって確保および解放されます。自分で解放してはいけません。次に glfwGetClipboardString または glfwSetClipboardString が呼び出されるか、ライブラリが終了するまで有効です。

スレッドセーフ性
この関数は、メインスレッドからのみ呼び出さなければなりません。

関連項目
クリップボードの入出力

glfwSetClipboardString

導入バージョン
バージョン 3.0 で追加されました。

◆ glfwGetTime()

double glfwGetTime(void )

この関数は、現在の GLFW 時刻を秒単位で返します。glfwSetTime で時刻を設定していない場合は、GLFW の初期化から経過した時間を測定します。

この関数と glfwSetTime は、glfwGetTimerFrequencyglfwGetTimerValue の上に構築されたヘルパー関数です。

タイマーの分解能はシステムに依存しますが、通常は数マイクロ秒または数ナノ秒程度です。各オペレーティングシステムで最も高分解能な単調増加時刻源を使用します。

戻り値
現在時刻(秒単位)。エラーが発生した場合は 0。

エラー
発生する可能性のあるエラーには、GLFW_NOT_INITIALIZED があります。

スレッドセーフ性
この関数は、どのスレッドからでも呼び出せます。内部基準時刻の読み書きはアトミックではないため、glfwSetTime の呼び出しとの間で外部同期が必要です。

関連項目
時刻入力

導入バージョン
バージョン 1.0 で追加されました。

◆ glfwSetTime()

void glfwSetTime(double time)

この関数は、現在の GLFW 時刻を秒単位で設定します。値は、約 584.5 年に相当する 18446744073.0 以下の、正の有限数でなければなりません。

この関数と glfwGetTime は、glfwGetTimerFrequencyglfwGetTimerValue の上に構築されたヘルパー関数です。

引数

[in]time新しい値(秒単位)。

エラー
発生する可能性のあるエラーには、GLFW_NOT_INITIALIZEDGLFW_INVALID_VALUE があります。

備考
GLFW 時刻の上限は floor((264 - 1) / 109) として計算されます。これは、ナノ秒を 64 ビットで格納する実装によるものです。この上限は将来引き上げられる可能性があります。

スレッドセーフ性
この関数は、どのスレッドからでも呼び出せます。内部基準時刻の読み書きはアトミックではないため、glfwGetTime の呼び出しとの間で外部同期が必要です。

関連項目
時刻入力

導入バージョン
バージョン 2.2 で追加されました。

◆ glfwGetTimerValue()

uint64_t glfwGetTimerValue(void )

この関数は、生のタイマーの現在値を 1 / 周波数 秒単位で返します。周波数を取得するには、glfwGetTimerFrequency を呼び出してください。

戻り値
タイマーの値。エラーが発生した場合は 0。

エラー
発生する可能性のあるエラーには、GLFW_NOT_INITIALIZED があります。

スレッドセーフ性
この関数は、どのスレッドからでも呼び出せます。

関連項目
時刻入力

glfwGetTimerFrequency

導入バージョン
バージョン 3.2 で追加されました。

◆ glfwGetTimerFrequency()

uint64_t glfwGetTimerFrequency(void )

この関数は、生のタイマーの周波数を Hz 単位で返します。

戻り値
タイマーの周波数(Hz 単位)。エラーが発生した場合は 0。

エラー
発生する可能性のあるエラーには、GLFW_NOT_INITIALIZED があります。

スレッドセーフ性
この関数は、どのスレッドからでも呼び出せます。

関連項目
時刻入力

glfwGetTimerValue

導入バージョン
バージョン 3.2 で追加されました。