Skip to content

モニター

これは、モニターに関連する関数とタイプのリファレンス・ドキュメントである。タスク指向の情報については、モニターガイドを参照してください。

型定義

名前説明
struct GLFWmonitor不透明なモニターオブジェクト。
void(* GLFWmonitorfun)モニター設定コールバックの関数ポインタ型。
struct GLFWvidmodeビデオモードタイプ。
struct GLFWgammarampガンマランプ。
struct GLFWmonitor

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

c
typedef struct GLFWmonitor GLFWmonitor
typedef struct GLFWmonitor GLFWmonitor

参照:

  • Monitor objects

追加:

バージョン3.0で追加。

void(* GLFWmonitorfun)

これは、モニター設定コールバック用の関数ポインタ型である。モニター・コールバック関数は以下のシグネチャーを持ちます:

c
void function_name(GLFWmonitor* monitor, int event)
void function_name(GLFWmonitor* monitor, int event)

c
typedef void(* GLFWmonitorfun) (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

単一のビデオモードについて説明する。

c
typedef struct GLFWvidmode GLFWvidmode
typedef struct GLFWvidmode GLFWvidmode

参照:

  • Video modes
  • glfwGetVideoMode
  • glfwGetVideoModes

追加:

バージョン1.0で追加。GLFW 3: リフレッシュレートメンバーを追加。

struct GLFWgammaramp

モニターのガンマランプについて説明します。

c
typedef struct GLFWgammaramp 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 を返します。

c
GLFWmonitor ** glfwGetMonitors(int * count)
GLFWmonitor ** glfwGetMonitors(int * count)

引数:

  • [out] count: 返された配列のモニター数を格納する場所。エラーが発生した場合は0がセットされる。

戻り値:

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

エラー:

考えられるエラーはGLFW_NOT_INITIALIZED。

ポインタの寿命:

返された配列はGLFWによって割り当てられ、解放される。自分で解放してはならない。モニターの設定が変更されるか、ライブラリーが終了するまで有効であることが保証される。

スレッドセーフ:

この関数はメインスレッドからのみ呼び出されなければならない。

参照:

  • Retrieving monitors
  • Monitor configuration changes
  • glfwGetPrimaryMonitor

追加:

バージョン3.0で追加。

glfwGetPrimaryMonitor()

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

c
GLFWmonitor * glfwGetPrimaryMonitor(void )
GLFWmonitor * glfwGetPrimaryMonitor(void )

戻り値:

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

エラー:

考えられるエラーはGLFW_NOT_INITIALIZED。

スレッドセーフ:

この関数はメインスレッドからのみ呼び出されなければならない。

備考:

プライマリモニタは、glfwGetMonitorsが返す配列の中で常に最初になる。

参照:

  • Retrieving monitors
  • glfwGetMonitors

追加:

バージョン3.0で追加。

glfwGetMonitorPos()

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

position引数のいずれか、またはすべてがNULLであってもよい。エラーが発生した場合、NULLでない位置引数はすべて0に設定されます。

c
void glfwGetMonitorPos(GLFWmonitor * monitor, int * xpos, int * ypos)
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に設定される。

c
void glfwGetMonitorWorkarea(GLFWmonitor * monitor, int * xpos, int * ypos, int * width, int * height)
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に設定されます。

c
void glfwGetMonitorPhysicalSize(GLFWmonitor * monitor, int * widthMM, int * heightMM)
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とは大きく異なる場合があります。

c
void glfwGetMonitorContentScale(GLFWmonitor * monitor, float * xscale, float * yscale)
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でエンコードされた人間が読める名前を返す。この名前は通常、モニターのメーカーとモデルを反映しており、接続されているモニター間で一意であることは保証されていません。

c
const char * glfwGetMonitorName(GLFWmonitor * monitor)
const char * glfwGetMonitorName(GLFWmonitor * monitor)

引数:

  • [in] monitor: 問い合わせるモニター。

戻り値:

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

エラー:

考えられるエラーはGLFW_NOT_INITIALIZED。

ポインタの寿命:

返された文字列はGLFWによって割り当てられ、解放される。自分で解放してはならない.指定されたモニターが切断されるか、ライブラリが終了するまで有効です。

スレッドセーフ:

この関数はメインスレッドからのみ呼び出されなければならない。

参照:

  • Monitor properties

追加:

バージョン3.0で追加。

glfwSetMonitorUserPointer()

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

この関数は、切断中のモニターであっても、モニター・コールバックから呼び出すことができる。

c
void glfwSetMonitorUserPointer(GLFWmonitor * monitor, void * pointer)
void glfwSetMonitorUserPointer(GLFWmonitor * monitor, void * pointer)

引数:

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

エラー:

考えられるエラーはGLFW_NOT_INITIALIZED。

スレッドセーフ:

この関数はどのスレッドからでも呼び出すことができる。アクセスは同期化されない。

参照:

  • User pointer
  • glfwGetMonitorUserPointer

追加:

バージョン3.3で追加。

glfwGetMonitorUserPointer()

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

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

c
void * glfwGetMonitorUserPointer(GLFWmonitor * monitor)
void * glfwGetMonitorUserPointer(GLFWmonitor * monitor)

引数:

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

エラー:

考えられるエラーはGLFW_NOT_INITIALIZED。

スレッドセーフ:

この関数はどのスレッドからでも呼び出すことができる。アクセスは同期化されない。

参照:

  • User pointer
  • glfwSetMonitorUserPointer

追加:

バージョン3.3で追加。

glfwSetMonitorCallback()

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

c
GLFWmonitorfun glfwSetMonitorCallback(GLFWmonitorfun callback)
GLFWmonitorfun glfwSetMonitorCallback(GLFWmonitorfun callback)

引数:

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

戻り値:

コールバックが設定されていないか、ライブラリが初期化されていない場合はNULL。

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

c
void function_name(GLFWmonitor* monitor, int event)
void function_name(GLFWmonitor* monitor, int event)

コールバック・パラメータの詳細については、関数ポインタ型を参照のこと。

エラー:

考えられるエラーはGLFW_NOT_INITIALIZED。

スレッドセーフ:

この関数はメインスレッドからのみ呼び出されなければならない。

参照:

  • Monitor configuration changes

追加:

バージョン3.0で追加。

glfwGetVideoModes()

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

c
const GLFWvidmode * glfwGetVideoModes(GLFWmonitor * monitor, int * count)
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.

c
const GLFWvidmode * glfwGetVideoMode(GLFWmonitor * monitor)
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ヒントを参照してください。

c
void glfwSetGamma(GLFWmonitor * monitor, float gamma)
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()

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

c
const GLFWgammaramp * glfwGetGammaRamp(GLFWmonitor * monitor)
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ヒントを参照してください。

c
void glfwSetGammaRamp(GLFWmonitor * monitor, const GLFWgammaramp * ramp)
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で追加。