XF86VIDMODE(3X11)

名前
XF86VidModeQueryExtension, XF86VidModeQueryVersion, XF86VidModeGetModeLine, XF86VidModeGetAllModeLines, XF86VidModeDeleteModeLine, XF86VidModeModModeLine, XF86VidModeValidateModeLine, XF86VidModeSwitchMode, XF86VidModeSwitchToMode, XF86VidModeLockModeSwitch, XF86VidModeGetMonitor, XF86VidModeGetViewPort, XF86VidModeSetViewPort - XFree86-VidMode 拡張インタフェース関数

書式

#include <X11/extensions/xf86vmode.h>

Bool XF86VidModeQueryExtension(
    Display *display,
    int *event_base_return,
    int *error_base_return);

Bool XF86VidModeQueryVersion(
    Display *display,
    int *major_version_return,
    int *minor_version_return);

Bool XF86VidModeGetModeLine(
    Display *display,
    int screen,
    int *dotclock_return,
    XF86VidModeModeLine *modeline);

Bool XF86VidModeGetAllModeLines(
    Display *display,
    int screen,
    int *modecount_return,
    XF86VidModeModeInfo **modesinfo);

Bool XF86VidModeDeleteModeLine(
    Display *display,
    int screen,
    XF86VidModeModeInfo *modeline);

Bool XF86VidModeModModeLine(
    Display *display,
    int screen,
    XF86VidModeModeLine *modeline);

Status XF86VidModeValidateModeLine(
    Display *display,
    int screen,
    XF86VidModeModeLine *modeline);

Bool XF86VidModeSwitchMode(
    Display *display,
    int screen,
    int zoom);

Bool XF86VidModeSwitchToMode(
    Display *display,
    int screen,
    XF86VidModeModeInfo *modeline);

Bool XF86VidModeLockModeSwitch(
    Display *display,
    int screen,
    int lock);

Bool XF86VidModeGetMonitor(
    Display *display,
    int screen,
    XF86VidModeMonitor *monitor);

Bool XF86VidModeGetViewPort(
    Display *display,
    int screen,
    int *x_return,
    int *y_return);

Bool XF86VidModeSetViewPort(
    Display *display,
    int screen,
    int x,
    int y);

引き数

display
    X サーバへの接続を指定する。

screen
    設定が適用されるスクリーンの番号を指定する。

event_base_return
    拡張に対する基本イベント番号が返される。

error_base_return
    拡張に対する基本エラー番号が返される。

major_version_return
    拡張のメジャーバージョン番号が返される。

minor_version_return
    拡張のマイナーバージョン番号が返される。

dotclock_return
    モード行に対するクロックが返される。

modecount_return
    そのサーバで利用できるビデオモードの数が返される。

zoom
    0 より大きい場合には、サーバが次のモードに切り替わることを示し、そう でない場合には、前のモードに切り替わることを示す。

lock
    0 でない場合、モード切替えをロックすることが指示される。

modeline
    ビデオモードのタイミング値を指定。また、タイミング値が返される。

modesinfo
    可能なビデオモード全てに対するタイミング値とドットクロックが返される。

monitor
    モニタに関する情報が返される。

x   ビューポートに対する望ましい X 位置を指定する。

x_return
    ビューポートの現在の X 位置が返される。

y   ビューポートに対する望ましい Y 位置を指定する。

y_return
    ビューポートの現在の Y 位置が返される。

構造体
Video Mode Settings:
typedef struct {
     unsigned short	hdisplay;	/* ディスプレイの水平方向のピクセル数 */
     unsigned short	hsyncstart;	/* 水平同期開始 */
     unsigned short	hsyncend;	/* 水平同期終了 */
     unsigned short	htotal;	/* 合計の水平ピクセル */
     unsigned short	vdisplay;	/* ディスプレイの垂直方向のピクセル数 */
     unsigned short	vsyncstart;	/* 垂直同期開始 */
     unsigned short	vsyncend;	/* 垂直同期終了 */
     unsigned short	vtotal;	/* 合計の垂直ピクセル */
     unsigned int	flags;	/* モードフラグ */
     int	privsize;	/* プライベートなサイズ */
     INT32	*private;	/* サーバのプライベート変数 */
} XF86VidModeModeLine;

typedef struct {
     unsigned int	dotclock;	/* ピクセルクロック */
     unsigned short	hdisplay;	/* ディスプレイの水平方向のピクセル数 */
     unsigned short	hsyncstart;	/* 水平同期開始 */
     unsigned short	hsyncend;	/* 水平同期終了 */
     unsigned short	htotal;	/* 合計の水平ピクセル */
     unsigned short	vdisplay;	/* ディスプレイの垂直方向のピクセル数 */
     unsigned short	vsyncstart;	/* 垂直同期開始 */
     unsigned short	vsyncend;	/* 垂直同期終了 */
     unsigned short	vtotal;	/* 合計の垂直ピクセル */
     unsigned int	flags;	/* モードフラグ */
     int	privsize;	/* プライベートなサイズ */
     INT32	*private;	/* サーバのプライベート変数 */
} XF86VidModeModeInfo;

Monitor information:
typedef struct {
     char*	vendor;	/* 製造者の名前 */
     char*	model;	/* モデル名 */
     float	bandwidth;	/* モニタのバンド幅 */
     unsigned char	nhsync;	/* 水平同期の範囲の数 */
     XF86VidModeSyncRange*	hsync;	/* 水平同期の範囲 */
     unsigned char	nvsync;	/* 垂直同期の範囲の数 */
} XF86VidModeMonitor;

typedef struct {
     float	hi;	/* 範囲の最上部 */
     float	lo;	/* 範囲の最下部 */
} XF86VidModeSyncRange;

説明
これらの関数は XFree86-VidModeExtension サーバ拡張へのインタフェースを提供する。 この拡張は、ビデオモードの問い合わせと動的な変更、モード切替えの制御を できるようにする。 これらの関数を使うアプリケーションは、 を指定してリンクを行わなければならない。

  モード行関数
関数 は、現在選択されているビデオモードの設定の問い合わせに使用される。 この関数を呼び出すプログラムは、予め割り当てられている 構造体へのポインタを渡さなければならない。この関数は、この構造体の 各フィールドに値を設定する。

サーバのプライベートな値がある場合(現在は S3 サーバにのみ当てはまる)、 この関数はその値のためにメモリを割り当てる。 したがって、 が 0 でない場合、呼び出したプログラムは を呼び出してメモリを解放しなければならない。

は全てのビデオモードに対する設定を返す。 この関数を呼び出すプログラムは、 構造体の配列を指すように関数が設定するポインタのアドレスを与える。 配列が格納されるメモリは、関数 が動的に割り当てるので、呼び出した側はこれを解放しなければならない。 配列の最初の要素は、現在のビデオモードに対応する。

関数 は、リクエストされた設定が有効(例えばモニタの能力を越えていない)ならば、 現在のビデオモードをその設定に変更できる。

を使ってモードを削除することができる。指定されたモードは、存在するモー ドとマッチしなければならない。 マッチすると見なすためには、与えられた 構造体の全てのフィールドがマッチしなければならない。ただし、 フィールドと フィールドは除く。 削除するモードが現在のモードである場合、最初に次のモードへの切替えが行 われる。最後まで残ったモードを削除することはできない。

あるモードが有効であかどうかは、関数 でチェックできる。 指定されたモードをサーバが使用できるならば(すなわち、サーバ、カード、 モニタの組み合わせによるモードに対する条件が全て満たされている)、こ の関数は を返す。 そうでない場合には、関数はモードが不正である理由を示す値を返す(これは xf86.h で定義されている)。

  モード切替え関数
関数 が呼ばれると、X サーバはビデオモードを次(あるいは前)のビデオモードに 変更する。関数 を使うと、指定したモードに直接変更することができる。 マッチングは上述の関数 の説明と同じように指定する。 関数 を使うと、モード切替えの許可と禁止を行うことができる。 モード切替えのリクエストは、関数 や の呼び出し、またはモード切替えのキーシーケンスによって生じる。

  モニタ関数
関数 は、サーバがモニタについて認識している情報を返す。 フィールドと フィールドはそれぞれ 構造体の配列を指す。 配列 は 個の要素を含み、配列 は 個の要素を含む。 離散的な値が ファイルで与えられた場合、 と の値は等しくなる。

の各フィールドには動的にメモリが割り当てられるので、呼び出し側が解放 しなければならない。

  ビューポート関数
関数 は仮想スクリーンにおけるビューポートの左上隅の位置を問い合わせる。 また、関数 はこの位置を変更する。

  その他の関数
関数 を使うと、サーバに組み込まれているこの拡張のバージョンを調べられる。

関数 は、この拡張に割り当てられた最も小さい番号のエラー番号とイベント番号を 返す。

関連項目
XFree86(1), XF86Config(4/5), xvidtune(1)

著者
Kaleb Keithley, Jon Tombs, David Dawes, Joe Moss