Scroll to navigation

XF86VIDMODE(3X11) X FUNCTIONS 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 サーバ拡張へのインタフェースを提供する。 この拡張は、ビデオモードの問い合わせと動的な変更、モード切替えの制御を できるようにする。 これらの関数を使うアプリケーションは、 -lXxf86vm を指定してリンクを行わなければならない。

モード行関数

関数 XF86VidModeGetModeLine は、現在選択されているビデオモードの設定の問い合わせに使用される。 この関数を呼び出すプログラムは、予め割り当てられている XF86VidModeModeLine 構造体へのポインタを渡さなければならない。この関数は、この構造体の 各フィールドに値を設定する。
サーバのプライベートな値がある場合(現在は S3 サーバにのみ当てはまる)、 この関数はその値のためにメモリを割り当てる。 したがって、 privsize が 0 でない場合、呼び出したプログラムは XFree(private) を呼び出してメモリを解放しなければならない。
XF86VidModeGetAllModeLines は全てのビデオモードに対する設定を返す。 この関数を呼び出すプログラムは、 XF86VidModeModeInfo 構造体の配列を指すように関数が設定するポインタのアドレスを与える。 配列が格納されるメモリは、関数 XF86VidModeGetAllModeLines が動的に割り当てるので、呼び出した側はこれを解放しなければならない。 配列の最初の要素は、現在のビデオモードに対応する。
関数 XF86VidModeModModeLine は、リクエストされた設定が有効(例えばモニタの能力を越えていない)ならば、 現在のビデオモードをその設定に変更できる。
XF86VidModeDeleteModeLine を使ってモードを削除することができる。指定されたモードは、存在するモー ドとマッチしなければならない。 マッチすると見なすためには、与えられた XF86VidModeModeInfo 構造体の全てのフィールドがマッチしなければならない。ただし、 privsize フィールドと private フィールドは除く。 削除するモードが現在のモードである場合、最初に次のモードへの切替えが行 われる。最後まで残ったモードを削除することはできない。
あるモードが有効であかどうかは、関数 XF86VidModeValidateModeLine でチェックできる。 指定されたモードをサーバが使用できるならば(すなわち、サーバ、カード、 モニタの組み合わせによるモードに対する条件が全て満たされている)、こ の関数は MODE_OK を返す。 そうでない場合には、関数はモードが不正である理由を示す値を返す(これは xf86.h で定義されている)。

モード切替え関数

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

モニタ関数

関数 XF86VidModeGetMonitor は、サーバがモニタについて認識している情報を返す。 hsync フィールドと vsync フィールドはそれぞれ XF86VidModeSyncRange 構造体の配列を指す。 配列 hsyncnhsync 個の要素を含み、配列 vsyncnvsync 個の要素を含む。 離散的な値が XF86Config ファイルで与えられた場合、 hilow の値は等しくなる。
vendor, model, hsync, vsync の各フィールドには動的にメモリが割り当てられるので、呼び出し側が解放 しなければならない。

ビューポート関数

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

その他の関数

関数 XF86VidModeQueryVersion を使うと、サーバに組み込まれているこの拡張のバージョンを調べられる。
関数 XF86VidModeQueryExtension は、この拡張に割り当てられた最も小さい番号のエラー番号とイベント番号を 返す。

関連項目

XFree86(1), XF86Config(4/5), xvidtune(1)

著者

Kaleb Keithley, Jon Tombs, David Dawes, Joe Moss
 
Version 4.1.0 XFree86