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
    ゼロより大きい場合には、サーバが次のモードに切り替わることを示し、そう でない場合には、前のモードに切り替わることを示す。

lock
    ゼロでない場合、モード切替えをロックすることを指定。

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 サーバにのみ当てはまる)、 関数はそれに対するメモリをアロケートする。 したがって、 がゼロでない場合、呼び出したプログラムは を呼び出してメモリを解放しなければならない。

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

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

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

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

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

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

の各フィールドには動的にメモリがアロケートされるので、呼び出し側が解放 しなければならない。

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

  その他の関数
関数 を使って、サーバに組み込まれているこの拡張のバージョンを知るためことが できる。

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

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

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