モニター
これは、モニターに関連する関数とタイプのリファレンス・ドキュメントである。タスク指向の情報については、モニターガイドを参照してください。
型定義
名前 | 説明 |
---|---|
struct GLFWmonitor | 不透明なモニターオブジェクト。 |
void(* GLFWmonitorfun) | モニター設定コールバックの関数ポインタ型。 |
struct GLFWvidmode | ビデオモードタイプ。 |
struct GLFWgammaramp | ガンマランプ。 |
struct GLFWmonitor
不透明なモニターオブジェクト。
typedef struct GLFWmonitor GLFWmonitor
参照:
- Monitor objects
追加:
バージョン3.0で追加。
void(* GLFWmonitorfun)
これは、モニター設定コールバック用の関数ポインタ型である。モニター・コールバック関数は以下のシグネチャーを持ちます:
void function_name(GLFWmonitor* monitor, int event)
typedef void(* GLFWmonitorfun) (GLFWmonitor *monitor, int event)
引数:
[in] monitor
: 接続または切断されたモニター。[in] event
: GLFW_CONNECTEDまたはGLFW_DISCONNECTEDのいずれか。将来のリリースでは、さらに多くのイベントが追加されるかもしれません。
参照:
- Monitor configuration changes
- glfwSetMonitorCallback
追加:
バージョン3.0で追加。
struct GLFWvidmode
単一のビデオモードについて説明する。
typedef struct GLFWvidmode GLFWvidmode
参照:
- Video modes
- glfwGetVideoMode
- glfwGetVideoModes
追加:
バージョン1.0で追加。GLFW 3: リフレッシュレートメンバーを追加。
struct GLFWgammaramp
モニターのガンマランプについて説明します。
typedef struct GLFWgammaramp GLFWgammaramp
参照:
- Gamma ramp
- glfwGetGammaRamp
- glfwSetGammaRamp
追加:
バージョン3.0で追加。
関数
関数名 | 説明 |
---|---|
glfwGetMonitors | 現在接続されているモニターを返します。 |
glfwGetPrimaryMonitor | プライマリモニタを返します。 |
glfwGetMonitorPos | 仮想画面上のモニターのビューポートの位置を返します。 |
glfwGetMonitorWorkarea | モニターの作業領域を取得します。 |
glfwGetMonitorPhysicalSize | モニターの物理的なサイズを返します。 |
glfwGetMonitorContentScale | 指定したモニターのコンテンツスケールを取得します。 |
glfwGetMonitorName | 指定されたモニターの名前を返します。 |
glfwSetMonitorUserPointer | 指定したモニターのユーザーポインターを設定します。 |
glfwGetMonitorUserPointer | 指定されたモニターのユーザーポインタを返します。 |
glfwSetMonitorCallback | モニター設定コールバックを設定します。 |
glfwGetVideoModes | 指定したモニターで利用可能なビデオモードを返します。 |
glfwGetVideoMode | 指定されたモニターの現在のモードを返します。 |
glfwSetGamma | ガンマランプを生成し、指定されたモニターに設定する。 |
glfwGetGammaRamp | 指定されたモニターの現在のガンマランプを返します。 |
glfwSetGammaRamp | 指定したモニターの現在のガンマランプを設定します。 |
glfwGetMonitors()
この関数は、現在接続されているすべてのモニターのハンドルの配列を返す。プライマリ・モニターは常に返される配列の最初にある。モニターが見つからなかった場合、この関数は NULL を返します。
GLFWmonitor ** glfwGetMonitors(int * count)
引数:
[out] count
: 返された配列のモニター数を格納する場所。エラーが発生した場合は0がセットされる。
戻り値:
モニターハンドルの配列、またはモニターが見つからなかったかエラーが発生した場合はNULL。
エラー:
考えられるエラーはGLFW_NOT_INITIALIZED。
ポインタの寿命:
返された配列はGLFWによって割り当てられ、解放される。自分で解放してはならない。モニターの設定が変更されるか、ライブラリーが終了するまで有効であることが保証される。
スレッドセーフ:
この関数はメインスレッドからのみ呼び出されなければならない。
参照:
- Retrieving monitors
- Monitor configuration changes
- glfwGetPrimaryMonitor
追加:
バージョン3.0で追加。
glfwGetPrimaryMonitor()
この関数はプライマリモニタを返す。これは通常、タスクバーやグローバルメニューバーのような要素が配置されているモニターである。
GLFWmonitor * glfwGetPrimaryMonitor(void )
戻り値:
プライマリモニタ、またはモニタが見つからないかエラーが発生した場合はNULL。
エラー:
考えられるエラーはGLFW_NOT_INITIALIZED。
スレッドセーフ:
この関数はメインスレッドからのみ呼び出されなければならない。
備考:
プライマリモニタは、glfwGetMonitorsが返す配列の中で常に最初になる。
参照:
- Retrieving monitors
- glfwGetMonitors
追加:
バージョン3.0で追加。
glfwGetMonitorPos()
この関数は、指定されたモニターの左上隅の位置をスクリーン座標で返す。
position引数のいずれか、またはすべてがNULLであってもよい。エラーが発生した場合、NULLでない位置引数はすべて0に設定されます。
void glfwGetMonitorPos(GLFWmonitor * monitor, int * xpos, int * ypos)
引数:
[in] monitor
: 問い合わせるモニター。[out] xpos
: モニターのX座標を格納する場所、またはNULL。[out] ypos
: モニターのy座標を格納する場所、またはNULL。
エラー:
起こりうるエラーはGLFW_NOT_INITIALIZEDとGLFW_PLATFORM_ERRORである。
スレッドセーフ:
この関数はメインスレッドからのみ呼び出されなければならない。
参照:
- Monitor properties
追加:
バージョン3.0で追加。
glfwGetMonitorWorkarea()
この関数は、指定されたモニタの作業領域の左上隅の位置と、作業領域のサイズを画面座標で返す。作業領域は、オペレーティングシステムのタスクバーが存在する場合、それに遮られないモニタの領域として定義される。タスクバーが存在しない場合、作業領域はスクリーン座標でのモニター解像度となる。
positionとsizeの引数のいずれか、またはすべてがNULLであってもよい。エラーが発生した場合、NULLでない位置とサイズの引数はすべて0に設定される。
void glfwGetMonitorWorkarea(GLFWmonitor * monitor, int * xpos, int * ypos, int * width, int * height)
引数:
[in] monitor
: 問い合わせるモニター。[out] xpos
: モニターのX座標を格納する場所、またはNULL。[out] ypos
: モニターのy座標を格納する場所、またはNULL。[out] width
: モニター幅を格納する場所、またはNULL。[out] height
: モニターの高さを格納する場所、またはNULL。
エラー:
起こりうるエラーはGLFW_NOT_INITIALIZEDとGLFW_PLATFORM_ERRORである。
スレッドセーフ:
この関数はメインスレッドからのみ呼び出されなければならない。
参照:
- Work area
追加:
バージョン3.3で追加。
glfwGetMonitorPhysicalSize()
この関数は、指定されたモニターの表示領域のサイズをミリメートル単位で返します。
システムによっては、モニタのEDIDデータが正しくないか、ドライバが正確に報告しないために、正確なモニタサイズ情報を提供しないものがある。
size引数のいずれかまたはすべてがNULLであってもよい。エラーが発生した場合、NULLでないsize引数はすべて0に設定されます。
void glfwGetMonitorPhysicalSize(GLFWmonitor * monitor, int * widthMM, int * heightMM)
引数:
[in] monitor
: 問い合わせるモニター。[out] widthMM
: モニターの表示領域の幅をミリメートル単位で格納する場所、またはNULL。[out] heightMM
: モニターの表示領域の高さをミリメートル単位で格納する場所、またはNULL。
エラー:
考えられるエラーはGLFW_NOT_INITIALIZED。
備考:
Windows: Windows 8以前では、モニターのEDIDデータを照会する代わりに、現在の解像度とシステムDPIから物理サイズが計算されます。
スレッドセーフ:
この関数はメインスレッドからのみ呼び出されなければならない。
参照:
- Monitor properties
追加:
バージョン3.0で追加。
glfwGetMonitorContentScale()
この関数は、指定されたモニタのコンテンツスケールを取得する。コンテンツスケールは、現在のDPIとプラットフォームのデフォルトDPIとの比率です。これはテキストやUI要素にとって特に重要です。これによってスケーリングされたUIのピクセル寸法があなたのマシンで適切に見えるなら、他のマシンではDPIやスケーリング設定に関係なく、妥当なサイズで表示されるはずです。これは、システムのDPIとスケーリング設定がある程度正しいことに依存します。
コンテンツのスケールは、モニターの解像度とピクセル密度、およびユーザー設定の両方に依存します。物理的なサイズと現在の解像度から計算される生のDPIとは大きく異なる場合があります。
void glfwGetMonitorContentScale(GLFWmonitor * monitor, float * xscale, float * yscale)
引数:
[in] monitor
: 問い合わせるモニター。[out] xscale
: X軸の内容スケールを格納する場所、または NULL。[out] yscale
: Y軸の内容スケールを格納する場所、または NULL。
エラー:
起こりうるエラーはGLFW_NOT_INITIALIZEDとGLFW_PLATFORM_ERRORである。
スレッドセーフ:
この関数はメインスレッドからのみ呼び出されなければならない。
参照:
- Content scale
- glfwGetWindowContentScale
追加:
バージョン3.3で追加。
glfwGetMonitorName()
この関数は、指定されたモニターの、UTF-8でエンコードされた人間が読める名前を返す。この名前は通常、モニターのメーカーとモデルを反映しており、接続されているモニター間で一意であることは保証されていません。
const char * glfwGetMonitorName(GLFWmonitor * monitor)
引数:
[in] monitor
: 問い合わせるモニター。
戻り値:
UTF-8エンコードされたモニター名、またはエラーが発生した場合はNULL。
エラー:
考えられるエラーはGLFW_NOT_INITIALIZED。
ポインタの寿命:
返された文字列はGLFWによって割り当てられ、解放される。自分で解放してはならない.指定されたモニターが切断されるか、ライブラリが終了するまで有効です。
スレッドセーフ:
この関数はメインスレッドからのみ呼び出されなければならない。
参照:
- Monitor properties
追加:
バージョン3.0で追加。
glfwSetMonitorUserPointer()
この関数は、指定されたモニタのユーザ定義ポインタを設定する。 現在の値は、モニターが切断されるまで保持される。 初期値はNULL。
この関数は、切断中のモニターであっても、モニター・コールバックから呼び出すことができる。
void glfwSetMonitorUserPointer(GLFWmonitor * monitor, void * pointer)
引数:
[in] monitor
: ポインタを設定するモニター。[in] pointer
: 新しい値。
エラー:
考えられるエラーはGLFW_NOT_INITIALIZED。
スレッドセーフ:
この関数はどのスレッドからでも呼び出すことができる。アクセスは同期化されない。
参照:
- User pointer
- glfwGetMonitorUserPointer
追加:
バージョン3.3で追加。
glfwGetMonitorUserPointer()
この関数は、指定されたモニターのユーザー定義ポインターの現在値を返す。初期値は NULL です。
この関数は、切断中のモニタに対しても、モニタコールバックから呼び出すことができます。
void * glfwGetMonitorUserPointer(GLFWmonitor * monitor)
引数:
[in] monitor
: ポインタを返すモニター。
エラー:
考えられるエラーはGLFW_NOT_INITIALIZED。
スレッドセーフ:
この関数はどのスレッドからでも呼び出すことができる。アクセスは同期化されない。
参照:
- User pointer
- glfwSetMonitorUserPointer
追加:
バージョン3.3で追加。
glfwSetMonitorCallback()
この関数は、モニター設定コールバックを設定するか、または現在設定されているコールバックを削除します。この関数は、モニターがシステムに接続されたとき、またはシステムから切断されたときに呼び出されます。
GLFWmonitorfun glfwSetMonitorCallback(GLFWmonitorfun callback)
引数:
[in] callback
: 新しいコールバック、または現在設定されているコールバックを削除する場合は NULL。
戻り値:
コールバックが設定されていないか、ライブラリが初期化されていない場合はNULL。
コールバックのシグネチャ:
void function_name(GLFWmonitor* monitor, int event)
コールバック・パラメータの詳細については、関数ポインタ型を参照のこと。
エラー:
考えられるエラーはGLFW_NOT_INITIALIZED。
スレッドセーフ:
この関数はメインスレッドからのみ呼び出されなければならない。
参照:
- Monitor configuration changes
追加:
バージョン3.0で追加。
glfwGetVideoModes()
この関数は、指定されたモニタがサポートするすべてのビデオモードの配列を返す。返される配列は昇順でソートされ、最初に色ビット深度(すべてのチャンネル深度の合計)、次に解像度領域(幅と高さの積)、次に解像度幅、最後にリフレッシュレートが指定される。
const GLFWvidmode * glfwGetVideoModes(GLFWmonitor * monitor, int * count)
引数:
[in] monitor
: 問い合わせるモニター。[out] count
: ビデオモードの数を返す配列のどこに格納するか。エラーが発生した場合は 0 が格納される。
戻り値:
ビデオモードの配列。エラーが発生した場合は NULL。
エラー:
起こりうるエラーはGLFW_NOT_INITIALIZEDとGLFW_PLATFORM_ERRORである。
ポインタの寿命:
返された配列はGLFWによって割り当てられ、解放される。自分で解放してはならない。指定されたモニターが切断されるか、そのモニターに対してこの関数が再度呼び出されるか、ライブラリーが終了するまで有効です。
スレッドセーフ:
この関数はメインスレッドからのみ呼び出されなければならない。
参照:
- Video modes
- glfwGetVideoMode
追加:
バージョン1.0で追加。GLFW 3: 特定のモニターのモードの配列を返すように変更。
glfwGetVideoMode()
This function returns the current video mode of the specified monitor. If you have created a full screen window for that monitor, the return value will depend on whether that window is iconified.
const GLFWvidmode * glfwGetVideoMode(GLFWmonitor * monitor)
引数:
[in] monitor
: 問い合わせるモニター。
戻り値:
モニターの現在のモード、またはエラーが発生した場合はNULL。
エラー:
起こりうるエラーはGLFW_NOT_INITIALIZEDとGLFW_PLATFORM_ERRORである。
ポインタの寿命:
返された配列はGLFWによって割り当てられ、解放される。自分で解放してはならない.指定されたモニターが切断されるか、ライブラリが終了するまで有効です。
スレッドセーフ:
この関数はメインスレッドからのみ呼び出されなければならない。
参照:
- Video modes
- glfwGetVideoModes
追加:
バージョン 3.0 で追加されました。glfwGetDesktopMode を置き換える。
glfwSetGamma()
この関数は、指定された指数から適切な大きさのガンマ・ランプを生成し、それを使って glfwSetGammaRamp を呼び出します。この値はゼロより大きい有限の数でなければならない。
ソフトウェアで制御されるガンマランプは、ハードウェアのガンマ補正に加えて適用されます。つまり、完全に直線的なランプ、つまりガンマ1.0を設定すると、デフォルトの(通常はsRGBに近い)動作になります。
OpenGLまたはOpenGL ESでのガンマ補正レンダリングについては、GLFW_SRGB_CAPABLEヒントを参照してください。
void glfwSetGamma(GLFWmonitor * monitor, float gamma)
引数:
[in] monitor
: ガンマランプを設定するモニター。[in] gamma
: 希望する指数。
エラー:
起こりうるエラーはGLFW_NOT_INITIALIZED、GLFW_INVALID_VALUE、GLFW_PLATFORM_ERRORである。
備考:
Wayland: ガンマ処理は特権プロトコルであるため、この関数は決して実装されず、GLFW_PLATFORM_ERRORを返す。
スレッドセーフ:
この関数はメインスレッドからのみ呼び出されなければならない。
参照:
- Gamma ramp
追加:
バージョン3.0で追加。
glfwGetGammaRamp()
この関数は、指定されたモニターの現在のガンマランプを返します。
const GLFWgammaramp * glfwGetGammaRamp(GLFWmonitor * monitor)
引数:
[in] monitor
: 問い合わせるモニター。
戻り値:
現在のガンマランプ、またはエラーが発生した場合は NULL。
エラー:
起こりうるエラーはGLFW_NOT_INITIALIZEDとGLFW_PLATFORM_ERRORである。
備考:
Wayland: ガンマ処理は特権プロトコルであるため、この関数は決して実装されず、NULLを返しながらGLFW_PLATFORM_ERRORを発する。
ポインタの寿命:
返された構造体とその配列はGLFWによって割り当てられ、解放される。自分で解放してはならない.それらは、指定されたモニターが切断されるか、そのモニターに対してこの関数が再び呼ばれるか、ライブラリーが終了するまで有効です。
スレッドセーフ:
この関数はメインスレッドからのみ呼び出されなければならない。
参照:
- Gamma ramp
追加:
バージョン3.0で追加。
glfwSetGammaRamp()
この関数は、指定されたモニターの現在のガンマランプを設定します。そのモニタのオリジナルのガンマランプは、この関数が最初に呼ばれたときにGLFWによって保存され、glfwTerminateによって復元されます。
ソフトウェアで制御されるガンマランプは、ハードウェアのガンマ補正に加えて適用されます。つまり、完全に直線的なランプ、つまりガンマ1.0を設定すると、デフォルトの(通常はsRGBに近い)動作になります。
OpenGLまたはOpenGL ESでのガンマ補正レンダリングについては、GLFW_SRGB_CAPABLEヒントを参照してください。
void glfwSetGammaRamp(GLFWmonitor * monitor, const GLFWgammaramp * ramp)
引数:
[in] monitor
: ガンマランプを設定するモニター。[in] ramp
: 使用するガンマランプ。
エラー:
起こりうるエラーはGLFW_NOT_INITIALIZEDとGLFW_PLATFORM_ERRORである。
備考:
指定されたガンマ・ランプのサイズは、そのモニターの現在のランプのサイズと一致しなければならない。
- Windows: ガンマランプのサイズは256でなければならない。
- Wayland: ガンマ処理は特権プロトコルであるため、この関数は決して実装されず、GLFW_PLATFORM_ERRORを返す。
ポインタの寿命:
指定されたガンマランプは、この関数が戻る前にコピーされる。
スレッドセーフ:
この関数はメインスレッドからのみ呼び出されなければならない。
参照:
- Gamma ramp
追加:
バージョン3.0で追加。