このページの内容

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

説明

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

型定義

typedef struct GLFWmonitor  GLFWmonitor
  不透明なモニターオブジェクト。
 
typedef void(*  GLFWmonitorfun) (GLFWmonitor *monitor, int event)
  モニター構成コールバックの関数ポインター型。
 
typedef struct GLFWvidmode  GLFWvidmode
  ビデオモード型。
 
typedef struct GLFWgammaramp  GLFWgammaramp
  ガンマランプ。
 

関数

GLFWmonitor **  glfwGetMonitors (int *count)
  現在接続されているモニターを返します。
 
GLFWmonitor glfwGetPrimaryMonitor (void)
  プライマリモニターを返します。
 
void  glfwGetMonitorPos (GLFWmonitor *monitor, int *xpos, int *ypos)
  仮想スクリーン上のモニターのビューポート位置を返します。
 
void  glfwGetMonitorWorkarea (GLFWmonitor *monitor, int *xpos, int *ypos, int *width, int *height)
  モニターの作業領域を取得します。
 
void  glfwGetMonitorPhysicalSize (GLFWmonitor *monitor, int *widthMM, int *heightMM)
  モニターの物理的な大きさを返します。
 
void  glfwGetMonitorContentScale (GLFWmonitor *monitor, float *xscale, float *yscale)
  指定されたモニターのコンテンツスケールを取得します。
 
const char *  glfwGetMonitorName (GLFWmonitor *monitor)
  指定されたモニターの名前を返します。
 
void  glfwSetMonitorUserPointer (GLFWmonitor *monitor, void *pointer)
  指定されたモニターのユーザーポインターを設定します。
 
void *  glfwGetMonitorUserPointer (GLFWmonitor *monitor)
  指定されたモニターのユーザーポインターを返します。
 
GLFWmonitorfun  glfwSetMonitorCallback (GLFWmonitorfun callback)
  モニター構成コールバックを設定します。
 
const GLFWvidmode glfwGetVideoModes (GLFWmonitor *monitor, int *count)
  指定されたモニターで利用可能なビデオモードを返します。
 
const GLFWvidmode glfwGetVideoMode (GLFWmonitor *monitor)
  指定されたモニターの現在のモードを返します。
 
void  glfwSetGamma (GLFWmonitor *monitor, float gamma)
  ガンマランプを生成し、指定されたモニターへ設定します。
 
const GLFWgammaramp glfwGetGammaRamp (GLFWmonitor *monitor)
  指定されたモニターの現在のガンマランプを返します。
 
void  glfwSetGammaRamp (GLFWmonitor *monitor, const GLFWgammaramp *ramp)
  指定されたモニターの現在のガンマランプを設定します。
 

型定義の詳細

◆ GLFWmonitor

typedef struct GLFWmonitor GLFWmonitor

不透明なモニターオブジェクトです。

関連項目
モニターオブジェクト

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

◆ GLFWmonitorfun

typedef void(* GLFWmonitorfun) (GLFWmonitor *monitor, int event)

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

void function_name(GLFWmonitor* monitor, int event)

struct GLFWmonitor GLFWmonitor

不透明なモニターオブジェクトです。

定義 glfw3.h:1396

引数

[in]monitor接続または切断されたモニター。
[in]eventGLFW_CONNECTED または GLFW_DISCONNECTED のいずれか。将来のリリースでイベントが追加される可能性があります。

関連項目
モニター構成の変更

glfwSetMonitorCallback

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

◆ GLFWvidmode

typedef struct GLFWvidmode GLFWvidmode

これは、1つのビデオモードを表します。

関連項目
ビデオモード

glfwGetVideoMode

glfwGetVideoModes

導入バージョン
バージョン 1.0 で追加されました。GLFW 3: リフレッシュレートのメンバーが追加されました。

◆ GLFWgammaramp

これは、モニターのガンマランプを表します。

関連項目
ガンマランプ

glfwGetGammaRamp

glfwSetGammaRamp

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

関数の詳細

◆ glfwGetMonitors()

GLFWmonitor ** glfwGetMonitors(int * count)

この関数は、現在接続されているすべてのモニターのハンドル配列を返します。返される配列では、プライマリモニターが常に先頭です。モニターが見つからなかった場合、この関数は NULL を返します。

引数

[out]count返される配列内のモニター数を格納する場所。エラーが発生した場合はゼロに設定されます。

戻り値
モニターハンドルの配列。モニターが見つからなかった場合、またはエラーが発生した場合は NULL

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

ポインターの有効期間
返される配列は GLFW が割り当て、解放します。自分で解放しないでください。モニター構成が変更されるか、ライブラリが終了するまでのみ有効であることが保証されます。

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

関連項目
モニターの取得

モニター構成の変更

glfwGetPrimaryMonitor

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

◆ glfwGetPrimaryMonitor()

GLFWmonitor * glfwGetPrimaryMonitor(void )

この関数はプライマリモニターを返します。通常、これはタスクバーやグローバルメニューバーなどの要素が配置されているモニターです。

戻り値
プライマリモニター。モニターが見つからなかった場合、またはエラーが発生した場合は NULL

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

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

備考
glfwGetMonitors が返す配列では、プライマリモニターが常に先頭です。

関連項目
モニターの取得

glfwGetMonitors

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

◆ glfwGetMonitorPos()

void glfwGetMonitorPos(GLFWmonitormonitor,
int * xpos,
int * ypos 
)

この関数は、指定されたモニターの左上隅の位置をスクリーン座標で返します。

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

引数

[in]monitor照会するモニター。
[out]xposモニターの X 座標を格納する場所、または NULL
[out]yposモニターの Y 座標を格納する場所、または NULL

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

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

関連項目
モニターのプロパティ

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

◆ glfwGetMonitorWorkarea()

void glfwGetMonitorWorkarea(GLFWmonitormonitor,
int * xpos,
int * ypos,
int * width,
int * height 
)

この関数は、指定されたモニターの作業領域の左上隅の位置と作業領域の大きさを、スクリーン座標で返します。作業領域は、ウィンドウシステムのタスクバーが存在する場合に、それによって覆われていないモニター領域として定義されます。タスクバーが存在しない場合、作業領域はスクリーン座標で表したモニター解像度です。

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

引数

[in]monitor照会するモニター。
[out]xposモニターの X 座標を格納する場所、または NULL
[out]yposモニターの Y 座標を格納する場所、または NULL
[out]widthモニターの幅を格納する場所、または NULL
[out]heightモニターの高さを格納する場所、または NULL

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

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

関連項目
作業領域

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

◆ glfwGetMonitorPhysicalSize()

void glfwGetMonitorPhysicalSize(GLFWmonitormonitor,
int * widthMM,
int * heightMM 
)

この関数は、指定されたモニターの表示領域の大きさをミリメートル単位で返します。

一部のプラットフォームでは、モニターの EDID データが誤っているか、ドライバーが正確に報告しないため、正確なモニターサイズ情報が提供されません。

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

引数

[in]monitor照会するモニター。
[out]widthMMモニター表示領域の幅をミリメートル単位で格納する場所、または NULL
[out]heightMMモニター表示領域の高さをミリメートル単位で格納する場所、または NULL

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

備考
Win32: Windows 8 以前では、モニターの EDID データを照会する代わりに、現在の解像度とシステム DPI から物理的な大きさを計算します。

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

関連項目
モニターのプロパティ

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

◆ glfwGetMonitorContentScale()

void glfwGetMonitorContentScale(GLFWmonitormonitor,
float * xscale,
float * yscale 
)

この関数は、指定されたモニターのコンテンツスケールを取得します。コンテンツスケールは、現在の DPI とプラットフォームの既定の DPI との比率です。これは、テキストやあらゆる UI 要素で特に重要です。この値で拡大縮小した UI のピクセル寸法が使用中のマシンで適切に見えるなら、他のマシンでも、その DPI やスケーリング設定にかかわらず妥当な大きさで表示されるはずです。これは、システムの DPI とスケーリング設定がある程度正しいことを前提とします。

コンテンツスケールは、モニターの解像度とピクセル密度、およびユーザー設定の両方に依存することがあります。物理的な大きさと現在の解像度から計算した生の DPI とは大きく異なる場合があります。

引数

[in]monitor照会するモニター。
[out]xscaleX 軸方向のコンテンツスケールを格納する場所、または NULL
[out]yscaleY 軸方向のコンテンツスケールを格納する場所、または NULL

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

備考
Wayland: モニターの小数スケーリング情報はまだ利用できないため、この関数は整数のコンテンツスケールだけを返します。

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

関連項目
コンテンツスケール

glfwGetWindowContentScale

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

◆ glfwGetMonitorName()

const char * glfwGetMonitorName(GLFWmonitormonitor)

この関数は、指定されたモニターの人間が読める名前を UTF-8 エンコードで返します。この名前は通常、モニターのメーカーとモデルを反映しますが、接続されているモニター間で一意であることは保証されません。

引数

[in]monitor照会するモニター。

戻り値
UTF-8 でエンコードされたモニター名。エラーが発生した場合は NULL

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

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

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

関連項目
モニターのプロパティ

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

◆ glfwSetMonitorUserPointer()

void glfwSetMonitorUserPointer(GLFWmonitormonitor,
void * pointer 
)

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

この関数は、切断処理中のモニターに対しても、モニターコールバックから呼び出せます。

引数

[in]monitorポインターを設定するモニター。
[in]pointer新しい値。

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

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

関連項目
ユーザーポインター

glfwGetMonitorUserPointer

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

◆ glfwGetMonitorUserPointer()

void * glfwGetMonitorUserPointer(GLFWmonitormonitor)

この関数は、指定されたモニターのユーザー定義ポインターの現在値を返します。初期値は NULL です。

この関数は、切断処理中のモニターに対しても、モニターコールバックから呼び出せます。

引数

[in]monitorポインターを返すモニター。

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

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

関連項目
ユーザーポインター

glfwSetMonitorUserPointer

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

◆ glfwSetMonitorCallback()

GLFWmonitorfun glfwSetMonitorCallback(GLFWmonitorfun callback)

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

引数

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

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

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

void function_name(GLFWmonitor* monitor, int event)

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

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

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

関連項目
モニター構成の変更

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

◆ glfwGetVideoModes()

const GLFWvidmode * glfwGetVideoModes(GLFWmonitormonitor,
int * count 
)

この関数は、指定されたモニターがサポートするすべてのビデオモードの配列を返します。返される配列は、まず色ビット深度(すべてのチャンネル深度の合計)、次に解像度の面積(幅と高さの積)、続いて解像度の幅、最後にリフレッシュレートの昇順で並びます。

引数

[in]monitor照会するモニター。
[out]count返される配列内のビデオモード数を格納する場所。エラーが発生した場合はゼロに設定されます。

戻り値
ビデオモードの配列。エラーが発生した場合は NULL

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

ポインターの有効期間
返される配列は GLFW が割り当て、解放します。自分で解放しないでください。指定されたモニターが切断されるか、そのモニターについてこの関数が再び呼び出されるか、ライブラリが終了するまで有効です。

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

関連項目
ビデオモード

glfwGetVideoMode

導入バージョン
バージョン 1.0 で追加されました。GLFW 3: 特定のモニターのモード配列を返すように変更されました。

◆ glfwGetVideoMode()

const GLFWvidmode * glfwGetVideoMode(GLFWmonitormonitor)

この関数は、指定されたモニターの現在のビデオモードを返します。そのモニターにフルスクリーンウィンドウを作成している場合、戻り値はそのウィンドウがアイコン化されているかどうかによって決まります。

引数

[in]monitor照会するモニター。

戻り値
モニターの現在のモード。エラーが発生した場合は NULL

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

ポインターの有効期間
返される配列は GLFW が割り当て、解放します。自分で解放しないでください。指定されたモニターが切断されるか、ライブラリが終了するまで有効です。

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

関連項目
ビデオモード

glfwGetVideoModes

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

◆ glfwSetGamma()

void glfwSetGamma(GLFWmonitormonitor,
float gamma 
)

この関数は、指定された指数から適切な大きさのガンマランプを生成し、それを指定して glfwSetGammaRamp を呼び出します。値はゼロより大きい有限数でなければなりません。

ソフトウェア制御のガンマランプは、現在では通常 sRGB ガンマの近似であるハードウェアガンマ補正に加えて適用されます。つまり、完全に線形なランプ、すなわちガンマ 1.0 を設定すると、既定の(通常は sRGB に似た)動作になります。

OpenGL または OpenGL ES でガンマ補正されたレンダリングを行うには、GLFW_SRGB_CAPABLE ヒントを参照してください。

引数

[in]monitorガンマランプを設定するモニター。
[in]gamma要求する指数。

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

備考
Wayland: モニターガンマは特権プロトコルであるため、この関数は実装できず、GLFW_FEATURE_UNAVAILABLE を発生させます。

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

関連項目
ガンマランプ

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

◆ glfwGetGammaRamp()

const GLFWgammaramp * glfwGetGammaRamp(GLFWmonitormonitor)

この関数は、指定されたモニターの現在のガンマランプを返します。

引数

[in]monitor照会するモニター。

戻り値
現在のガンマランプ。エラーが発生した場合は NULL

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

備考
Wayland: モニターガンマは特権プロトコルであるため、この関数は実装できず、NULL を返しながら GLFW_FEATURE_UNAVAILABLE を発生させます。

ポインターの有効期間
返される構造体とその配列は GLFW が割り当て、解放します。自分で解放しないでください。指定されたモニターが切断されるか、そのモニターについてこの関数が再び呼び出されるか、ライブラリが終了するまで有効です。

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

関連項目
ガンマランプ

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

◆ glfwSetGammaRamp()

void glfwSetGammaRamp(GLFWmonitormonitor,
const GLFWgammarampramp 
)

この関数は、指定されたモニターの現在のガンマランプを設定します。そのモニターの元のガンマランプは、この関数が最初に呼び出されたときに GLFW によって保存され、glfwTerminate によって復元されます。

ソフトウェア制御のガンマランプは、現在では通常 sRGB ガンマの近似であるハードウェアガンマ補正に加えて適用されます。つまり、完全に線形なランプ、すなわちガンマ 1.0 を設定すると、既定の(通常は sRGB に似た)動作になります。

OpenGL または OpenGL ES でガンマ補正されたレンダリングを行うには、GLFW_SRGB_CAPABLE ヒントを参照してください。

引数

[in]monitorガンマランプを設定するモニター。
[in]ramp使用するガンマランプ。

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

備考
指定するガンマランプの大きさは、そのモニターの現在のランプの大きさと一致させるべきです。

Win32: ガンマランプの大きさは 256 でなければなりません。

Wayland: モニターガンマは特権プロトコルであるため、この関数は実装できず、GLFW_FEATURE_UNAVAILABLE を発生させます。

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

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

関連項目
ガンマランプ

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