Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ XmbufChangeBufferAttributes(3XEXT) — NEWS-os 4.2.1R

Media Vault

Software Library

Restoration Projects

Artifacts Sought

XMBUF(3XEXT)  —  NEWS-OS Programmer’s Manual

名称

XmbufQueryExtension, XmbufGetVersion, XmbufCreateBuffers, XmbufDestroyBuffers, XmbufDisplayBuffers, XmbufGetWindowAttributes, XmbufChangeWindowAttributes, XmbufGetBufferAttributes, XmbufChangeBufferAttributes, XmbufGetScreenInfo, XmbufCreateStereoWindow - X マルチバッファ関数

形式

#include <X11/extensions/multibuf.h>
Bool XmbufQueryExtension(
    Display ∗dpy,
    Display ∗dpy,
    int ∗event_base_return,
    int ∗error_base_return);
Status XmbufGetVersion(
    Display ∗dpy,
    int ∗major_version_return,
    int ∗minor_version_return);
int XmbufCreateBuffers(
    Display ∗dpy,
    Window window,
    int count,
    int update_action,
    int update_hint,
    Multibuffer ∗buffers_update);
void XmbufDestroyBuffers(
    Display ∗dpy,
    Window window);
void XmbufDisplayBuffers(
    Display ∗dpy,
    int count,
    Multibuffer ∗buffers,
    int min_delay,
    int max_delay);
Status XmbufGetWindowAttributes(
    Display ∗dpy,
    Window window,
    XmbufWindowAttributes ∗attributes);
void XmbufChangeWindowAttributes(
    Display ∗dpy,
    Window window,
    unsigned long valuemask,
    XmbufSetWindowAttributes ∗attributes);
Status XmbufGetBufferAttributes(
    Display ∗dpy,
    Multibuffer buffer,
    XmbufBufferAttributes ∗attributes);
void XmbufChangeBufferAttributes(
    Display ∗dpy,
    Multibuffer buffer,
    unsigned long valuemask,
    XmbufSetBufferAttributes ∗attributes);
Status XmbufGetScreenInfo(
    Display ∗dpy,
    Drawable drawable,
    int ∗nmono_return,
    XmbufBufferInfo ∗∗mono_info_return,
    int ∗nstereo_return,
    XmbufBufferInfo ∗∗stereo_info_return);
Window XmbufCreateStereoWindow(
    Display ∗dpy,
    Window parent,
    int x,
    int y,
    unsigned int width,
    unsigned int height,
    unsigned int border_width,
    int depth,
    unsigned int class,                 /∗ InputOutput, InputOnly ∗/
    Visual ∗visual,
    unsigned long valuemask,
    XSetWindowAttributes ∗attributes,
    Multibuffer ∗left_return,
    Multibuffer ∗right_return);
 

構造体

イベント:
typedef struct {
    int type;/∗ イベントの種類 ∗/
    unsigned long serial;/∗ サーバによる最新リクエスト番号 ∗/
    int send_event;/∗ SendEvent リクエストからなら真 ∗/
    Display ∗display;/∗ イベントを読み込んだディスプレイ ∗/
    Multibuffer buffer;/∗ イベントバッファ ∗/
    int state;/∗ Clobber ステート 定数 参照 ∗/
} XmbufClobberNotifyEvent;
typedef struct {
    int type;/∗ イベントの種類 ∗/
    unsigned long serial;/∗ サーバによる最新リクエスト番号 ∗/
    int send_event;/∗ SendEvent リクエストからなら真 ∗/
    Display ∗display;/∗ イベントを読み込んだディスプレイ ∗/
    Multibuffer buffer;/∗ イベントバッファ ∗/
} XmbufUpdateNotifyEvent;
 ウィンドウ属性の取得:
typedef struct {
    int displayed_index;/∗ どのバッファが表示されているか ∗/
    int update_action;/∗ Undefined, Background, Untouched, Copied ∗/
    int update_hint;/∗ Frequent, Intermittent, Static ∗/
    int window_mode;/∗ Mono, Stereo ∗/
    int nbuffers;/∗ バッファの大きさ ∗/
    Multibuffer ∗buffers;/∗ バッファ ∗/
} XmbufWindowAttributes;
 ウィンドウ属性の設定:
typedef struct {
    int update_hint;/∗ Frequent, Intermittent, Static ∗/
} XmbufSetWindowAttributes;
 バッファ属性の取得:
typedef struct {
    Window window;/∗ 接続しているウィンドウ ∗/
    unsigned long event_mask;/∗ 指定されたイベント ∗/
    int buffer_index;/∗ どのバッファか ∗/
    int side;/∗ Mono, Left, Right ∗/
} XmbufBufferAttributes;
 バッファ属性の設定:
typedef struct {
    unsigned long event_mask;/∗ 指定されたイベント ∗/
} XmbufSetBufferAttributes;
 スクリーン情報:
typedef struct {
    VisualID visualid;/∗ このデプスにて可能なヴィジュアル識別子 ∗/
    int max_buffers;/∗ このヴィジュアル用バッファ ∗/
    int depth;/∗ 作成されるバッファのデプス ∗/
} XmbufBufferInfo;
 

解説

X11 Double-Buffering、Multi-Buffering、およ び Stereo Extension 用アプリケーションプログラムライブラリは 以下のようなインタフェースを備えています。 XmbufQueryExtension を除いて、エクステンションをサポートして いないディスプレイで上記関数のいずれかが呼び出された場合、 ExtensionErrorHandler ( XSetErrorHandler(3X11) と同様な 方法で XSetExtensionErrorHandler によって設定できる ) が呼び出され、関数が返ります。

マルチバッファ/ステレオエクステンションが指定ディスプレイにて有効 な場合、XmbufQueryExtension は True を返します。 もし、ディスプレイが存在する場合、 最初のイベントコードの値 (実際の値を得るため、 イベントタイプ定数 MultibufferClobberNotify およ び MultibufferUpdateNotify に加えられる) は event_base_return に格納され、最初のエラーコード の値 (実際の値を得るため、 エラータイプ定数 MultibufferBadBuffer に加え られる)は error_base_return に格納されます。

XmbufGetVersion はエクステンションのメジャーおよび マイナーバージョンナンバを獲得します。 エラーが発生した場合リターン値は 0、エラーが発生しない場合 0 以外の 値を返します。

XmbufCreateBuffers は指定の update_action およ び update_hint によって "カウント" バッファ作成と、 それを表示ウィンドウに関連づけることをリクエストします。 生成バッファの数を返し(エラー発生時は 0)、 buffers_update がマルチバッファ識別子によって満たされます。

XmbufDestroyBuffers は指定ウィンドウに関連するバッファを破壊します。

XmbufDisplayBuffers は min_delay ミリ秒経過後、 max_delay ミリ秒以内にて、対応するウィンドウの指定バッファ を表示します。 同一のウィンドウに関連する二つのバッファは存在せず、 そうでない場合 BadMatch エラーが生成されます。

XmbufGetWindowAttributes は指定ウィンドウに関連する全バッファに 適応するマルチバッファ属性を獲得します。 バッファのリターン値リストは XFree によって開放されます。 成功時は 0 以外を返し、エラー発生時には 0 を返します。

XmbufChangeWindowAttributes は指定ウィンドウに関連する 全バッファに適応する マルチバッファの属性を設定します。 現在は update_hint に限定されています。

XmbufGetBufferAttributes は指定バッファに対する属性を獲得します。 成功時は 0 以外を返し、エラー発生時には 0 を返します。

XmbufChangeBufferAttributes は指定バッファに対する属性を 設定します。現在は event_mask に限定されています。

XmbufGetScreenInfo は指定された drawable のスクリーン 上に生成されるモノおよびステレオのウィンドウの制御パラメータを獲得します。 モノおよびステレオのスクリーン情報の数が nmono_return およ び nstereo_return に返されます。 nmono_return が 0 以上 の場合、 mono_info_return は使用可の様々なヴィジュアルおよびデプスを 記述する XmbufBufferInfo 構造体の配列のポインタに設定されます。 そうでなければ、mono_info_return は NULL に設定されます。 同様に、 stereo_info_return は nstereo_return に 従って設定されます。 mono_info_return お よび stereo_info_return で返された格納データは XFree によって開放する必要があります。

XmbufCreateStereoWindow は XCreateWindow(3X11) が モノウィンドウを生成する様にステレオウィンドウを生成します。 left バッファと right バッファの ID がそれぞれ、 left_return および right_return に返されます。 エクステンションがそのディスプレイに無効の場合、None が返されます。
 

定数

Update_action フィールド:

MultibufferUpdateActionUndefined
MultibufferUpdateActionBackground
MultibufferUpdateActionUntouched
MultibufferUpdateActionCopied

Update_hint フィールド:

MultibufferUpdateHintFrequent
MultibufferUpdateHintIntermittent
MultibufferUpdateHintStatic

Valuemask フィールド:

MultibufferWindowUpdateHint
MultibufferBufferEventMask

モノ/ステレオおよび左/右:

MultibufferModeMono
MultibufferModeStereo
MultibufferSideMono
MultibufferSideLeft
MultibufferSideRight

Clobber ステート:

MultibufferUnclobbered
MultibufferPartiallyClobbered
MultibufferFullyClobbered

イベントスタッフ:

MultibufferClobberNotifyMask
MultibufferUpdateNotifyMask
MultibufferClobberNotify
MultibufferUpdateNotify
MultibufferNumberEvents
MultibufferBadBuffer
MultibufferNumberErrors

 

バグ

本マニュアルが未完成。
 

関連事項

Extending X for Double Buffering, Multi-Buffering, and Stereo

NEWS-OSRelease 4.2.1R

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026