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;
    XF86VidModeSyncRange*	vsync;
} 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