このページの内容

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

説明

ネイティブアクセス関数を使用することは、自分が何をしているか、およびその使用によって生じた問題をどう修正するかを理解していると表明することです。理解していない場合は使用すべきではありません。

glfw3native.h をインクルードする前に、ウィンドウシステム API マクロを 0 個以上、コンテキスト作成 API マクロを 0 個以上定義できます。

選択するバックエンドは、ライブラリのコンパイル対象と一致していなければなりません。一致しない場合はリンク時エラーになります。

利用可能なウィンドウ API マクロは次のとおりです。

  • GLFW_EXPOSE_NATIVE_WIN32
  • GLFW_EXPOSE_NATIVE_COCOA
  • GLFW_EXPOSE_NATIVE_X11
  • GLFW_EXPOSE_NATIVE_WAYLAND

利用可能なコンテキスト API マクロは次のとおりです。

  • GLFW_EXPOSE_NATIVE_WGL
  • GLFW_EXPOSE_NATIVE_NSGL
  • GLFW_EXPOSE_NATIVE_GLX
  • GLFW_EXPOSE_NATIVE_EGL
  • GLFW_EXPOSE_NATIVE_OSMESA

これらのマクロは、宣言するネイティブアクセス関数と、インクルードするプラットフォーム固有ヘッダーを選択します。どれを定義すべきかは、必然的にプラットフォーム固有となる利用側のコードで処理します。

プラットフォーム固有ヘッダーをインクルードしたくない場合は、glfw3native.h ヘッダーをインクルードする前に GLFW_NATIVE_INCLUDE_NONE を定義してください。

#define GLFW_EXPOSE_NATIVE_WIN32

#define GLFW_EXPOSE_NATIVE_WGL

#define GLFW_NATIVE_INCLUDE_NONE

#include <GLFW/glfw3native.h>

ネイティブアクセス関数のヘッダー。

関数

const char *  glfwGetWin32Adapter (GLFWmonitor *monitor)
  指定されたモニターのアダプターデバイス名を返します。
 
const char *  glfwGetWin32Monitor (GLFWmonitor *monitor)
  指定されたモニターのディスプレイデバイス名を返します。
 
HWND  glfwGetWin32Window (GLFWwindow *window)
  指定されたウィンドウの HWND を返します。
 
HGLRC  glfwGetWGLContext (GLFWwindow *window)
  指定されたウィンドウの HGLRC を返します。
 
CGDirectDisplayID  glfwGetCocoaMonitor (GLFWmonitor *monitor)
  指定されたモニターの CGDirectDisplayID を返します。
 
id  glfwGetCocoaWindow (GLFWwindow *window)
  指定されたウィンドウの NSWindow を返します。
 
id  glfwGetCocoaView (GLFWwindow *window)
  指定されたウィンドウの NSView を返します。
 
id  glfwGetNSGLContext (GLFWwindow *window)
  指定されたウィンドウの NSOpenGLContext を返します。
 
Display *  glfwGetX11Display (void)
  GLFW が使用する Display を返します。
 
RRCrtc  glfwGetX11Adapter (GLFWmonitor *monitor)
  指定されたモニターの RRCrtc を返します。
 
RROutput  glfwGetX11Monitor (GLFWmonitor *monitor)
  指定されたモニターの RROutput を返します。
 
Window  glfwGetX11Window (GLFWwindow *window)
  指定されたウィンドウの Window を返します。
 
void  glfwSetX11SelectionString (const char *string)
  現在のプライマリ選択を指定された文字列に設定します。
 
const char *  glfwGetX11SelectionString (void)
  現在のプライマリ選択の内容を文字列として返します。
 
GLXContext  glfwGetGLXContext (GLFWwindow *window)
  指定されたウィンドウの GLXContext を返します。
 
GLXWindow  glfwGetGLXWindow (GLFWwindow *window)
  指定されたウィンドウの GLXWindow を返します。
 
int  glfwGetGLXFBConfig (GLFWwindow *window, GLXFBConfig *config)
  指定されたウィンドウの GLXWindow に対応する GLXFBConfig を取得します。
 
struct wl_display *  glfwGetWaylandDisplay (void)
  GLFW が使用する struct wl_display* を返します。
 
struct wl_output *  glfwGetWaylandMonitor (GLFWmonitor *monitor)
  指定されたモニターの struct wl_output* を返します。
 
struct wl_surface *  glfwGetWaylandWindow (GLFWwindow *window)
  指定されたウィンドウのメイン struct wl_surface* を返します。
 
EGLDisplay  glfwGetEGLDisplay (void)
  GLFW が使用する EGLDisplay を返します。
 
EGLContext  glfwGetEGLContext (GLFWwindow *window)
  指定されたウィンドウの EGLContext を返します。
 
EGLSurface  glfwGetEGLSurface (GLFWwindow *window)
  指定されたウィンドウの EGLSurface を返します。
 
int  glfwGetEGLConfig (GLFWwindow *window, EGLConfig *config)
  指定されたウィンドウの EGLSurface に対応する EGLConfig を取得します。
 
int  glfwGetOSMesaColorBuffer (GLFWwindow *window, int *width, int *height, int *format, void **buffer)
  指定されたウィンドウに関連付けられたカラーバッファを取得します。
 
int  glfwGetOSMesaDepthBuffer (GLFWwindow *window, int *width, int *height, int *bytesPerValue, void **buffer)
  指定されたウィンドウに関連付けられた深度バッファを取得します。
 
OSMesaContext  glfwGetOSMesaContext (GLFWwindow *window)
  指定されたウィンドウの OSMesaContext を返します。
 

関数の詳細

◆ glfwGetWin32Adapter()

const char * glfwGetWin32Adapter(GLFWmonitormonitor)

戻り値
指定されたモニターの UTF-8 エンコードされたアダプターデバイス名(例: \\.\DISPLAY1)。エラーが発生した場合は NULL

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

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

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

◆ glfwGetWin32Monitor()

const char * glfwGetWin32Monitor(GLFWmonitormonitor)

戻り値
指定されたモニターの UTF-8 エンコードされたディスプレイデバイス名(例: \\.\DISPLAY1\Monitor0)。エラーが発生した場合は NULL

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

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

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

◆ glfwGetWin32Window()

HWND glfwGetWin32Window(GLFWwindowwindow)

戻り値
指定されたウィンドウの HWNDエラーが発生した場合は NULL

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

備考
ウィンドウに関連付けられた HDC は、GetDC 関数で照会できます。

HDC dc = GetDC(glfwGetWin32Window(window));

HWND glfwGetWin32Window(GLFWwindow *window)

指定されたウィンドウの HWND を返します。

この DC はプライベートであり、解放する必要はありません。

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

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

◆ glfwGetWGLContext()

HGLRC glfwGetWGLContext(GLFWwindowwindow)

戻り値
指定されたウィンドウの HGLRCエラーが発生した場合は NULL

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

備考
ウィンドウに関連付けられた HDC は、GetDC 関数で照会できます。

HDC dc = GetDC(glfwGetWin32Window(window));

この DC はプライベートであり、解放する必要はありません。

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

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

◆ glfwGetCocoaMonitor()

CGDirectDisplayID glfwGetCocoaMonitor(GLFWmonitormonitor)

戻り値
指定されたモニターの CGDirectDisplayIDエラーが発生した場合は kCGNullDirectDisplay

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

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

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

◆ glfwGetCocoaWindow()

id glfwGetCocoaWindow(GLFWwindowwindow)

戻り値
指定されたウィンドウの NSWindowエラーが発生した場合は nil

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

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

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

◆ glfwGetCocoaView()

id glfwGetCocoaView(GLFWwindowwindow)

戻り値
指定されたウィンドウの NSViewエラーが発生した場合は nil

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

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

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

◆ glfwGetNSGLContext()

id glfwGetNSGLContext(GLFWwindowwindow)

戻り値
指定されたウィンドウの NSOpenGLContextエラーが発生した場合は nil

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

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

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

◆ glfwGetX11Display()

Display * glfwGetX11Display(void )

戻り値
GLFW が使用する Displayエラーが発生した場合は NULL

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

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

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

◆ glfwGetX11Adapter()

RRCrtc glfwGetX11Adapter(GLFWmonitormonitor)

戻り値
指定されたモニターの RRCrtcエラーが発生した場合は None

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

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

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

◆ glfwGetX11Monitor()

RROutput glfwGetX11Monitor(GLFWmonitormonitor)

戻り値
指定されたモニターの RROutputエラーが発生した場合は None

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

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

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

◆ glfwGetX11Window()

Window glfwGetX11Window(GLFWwindowwindow)

戻り値
指定されたウィンドウの Windowエラーが発生した場合は None

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

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

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

◆ glfwSetX11SelectionString()

void glfwSetX11SelectionString(const char * string)

引数

[in]stringUTF-8 エンコード文字列。

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

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

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

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

glfwGetX11SelectionString

glfwSetClipboardString

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

◆ glfwGetX11SelectionString()

const char * glfwGetX11SelectionString(void )

選択が空の場合、または内容を変換できない場合は NULL を返し、GLFW_FORMAT_UNAVAILABLE エラーを生成します。

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

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

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

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

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

glfwSetX11SelectionString

glfwGetClipboardString

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

◆ glfwGetGLXContext()

GLXContext glfwGetGLXContext(GLFWwindowwindow)

戻り値
指定されたウィンドウの GLXContextエラーが発生した場合は NULL

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

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

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

◆ glfwGetGLXWindow()

GLXWindow glfwGetGLXWindow(GLFWwindowwindow)

戻り値
指定されたウィンドウの GLXWindowエラーが発生した場合は None

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

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

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

◆ glfwGetGLXFBConfig()

int glfwGetGLXFBConfig(GLFWwindowwindow,
GLXFBConfig * config 
)

引数

[in]windowGLXWindow を問い合わせるウィンドウ。
[out]config利用可能な場合は、ウィンドウの GLXWindow に対応する GLXFBConfig

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

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

備考
GLXFBConfig は不透明型です。コア GLX は無効値を定義していないため、ほかの GLFW 関数とは異なり、エラー時に出力引数 config はクリアされません。

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

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

◆ glfwGetWaylandDisplay()

struct wl_display * glfwGetWaylandDisplay(void )

戻り値
GLFW が使用する struct wl_display*エラーが発生した場合は NULL

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

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

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

◆ glfwGetWaylandMonitor()

struct wl_output * glfwGetWaylandMonitor(GLFWmonitormonitor)

戻り値
指定されたモニターの struct wl_output*エラーが発生した場合は NULL

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

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

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

◆ glfwGetWaylandWindow()

struct wl_surface * glfwGetWaylandWindow(GLFWwindowwindow)

戻り値
指定されたウィンドウのメイン struct wl_surface*エラーが発生した場合は NULL

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

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

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

◆ glfwGetEGLDisplay()

EGLDisplay glfwGetEGLDisplay(void )

戻り値
GLFW が使用する EGLDisplayエラーが発生した場合は EGL_NO_DISPLAY

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

備考
EGL は必要に応じて初期化されるため、EGL を介して最初のコンテキストが作成されるまで、この関数は EGL_NO_DISPLAY を返します。

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

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

◆ glfwGetEGLContext()

EGLContext glfwGetEGLContext(GLFWwindowwindow)

戻り値
指定されたウィンドウの EGLContextエラーが発生した場合は EGL_NO_CONTEXT

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

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

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

◆ glfwGetEGLSurface()

EGLSurface glfwGetEGLSurface(GLFWwindowwindow)

戻り値
指定されたウィンドウの EGLSurfaceエラーが発生した場合は EGL_NO_SURFACE

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

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

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

◆ glfwGetEGLConfig()

int glfwGetEGLConfig(GLFWwindowwindow,
EGLConfig * config 
)

引数

[in]windowEGLSurface を問い合わせるウィンドウ。
[out]config利用可能な場合は、ウィンドウの EGLSurface に対応する EGLConfig

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

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

備考
EGLConfig は不透明型です。コア EGL は無効値を定義していないため、ほかの GLFW 関数とは異なり、エラー時に出力引数 config はクリアされません。

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

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

◆ glfwGetOSMesaColorBuffer()

int glfwGetOSMesaColorBuffer(GLFWwindowwindow,
int * width,
int * height,
int * format,
void ** buffer 
)

引数

[in]windowカラーバッファを取得するウィンドウ。
[out]widthカラーバッファの幅を格納する場所、または NULL
[out]heightカラーバッファの高さを格納する場所、または NULL
[out]formatカラーバッファの OSMesa ピクセル形式を格納する場所、または NULL
[out]bufferカラーバッファのアドレスを格納する場所、または NULL

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

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

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

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

◆ glfwGetOSMesaDepthBuffer()

int glfwGetOSMesaDepthBuffer(GLFWwindowwindow,
int * width,
int * height,
int * bytesPerValue,
void ** buffer 
)

引数

[in]window深度バッファを取得するウィンドウ。
[out]width深度バッファの幅を格納する場所、または NULL
[out]height深度バッファの高さを格納する場所、または NULL
[out]bytesPerValue深度バッファ要素あたりのバイト数を格納する場所、または NULL
[out]buffer深度バッファのアドレスを格納する場所、または NULL

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

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

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

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

◆ glfwGetOSMesaContext()

OSMesaContext glfwGetOSMesaContext(GLFWwindowwindow)

戻り値
指定されたウィンドウの OSMesaContextエラーが発生した場合は NULL

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

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

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