前へ | 次へ | 目次 | 索引 |
どんなイメージ・フォーマットでも使用可能な X imageとは異なり,共有メモリ拡張がサポートしている,共有メモリ上の pixmap (XYPixmap または ZPixmap)の保管データには, 1つのフォーマットしかありません。このフォーマットはイメージの深度および画面から独立しています (1 bit の pixmap にはフォーマットは関係しません)。
共有メモリ上の pixmap のフォーマットは, XShmPixmapFormat ルーチンによりサーバに返されます。 XShmPixmapFormat ルーチンは,次のようなフォーマットです。
int XShmPixmapFormat (display) Display *display; |
アプリケーションが使用できる共有メモリ上の pixmap は, XShmPixmapFormat ルーチンが返すフォーマット (ピクセル当たりビット数を含む)でのみ使用することができます。共有メモリ上の pixmap は,次のように作成します。
Pixmap XShmCreatePixmap (display, d, data, shminfo, width, height, depth); Display *display; Drawable d; char *data; XShmSegmentInfo *shminfo; unsigned int width, height, depth; |
引数は,data および shminfo の 2つのパラメータが追加されることを除けば, XCreatePixmap と同様です( 『X Window System』を参照)。
dataパラメータは共有メモリに対するポインタで, shminfo.shmaddr フィールドと同じです。また,shminfo パラメータは前記の構造体と同じです。
正常に終了した場合は,操作可能な pixmap が返されます。 pixmap の内容は,共有メモリ・セグメントから直接操作することができます。共有メモリ上の pixmap は, XFreePixmap ルーチンを使用して破壊することができます。破壊する際には,まず共有メモリ・セグメントを切り離してください ( 第 4.7.1.1.2 項
のステップ 4 を参照)。
V1.2
拡張includeファイルを含むプログラムを正しくコンパイルするためには, C include ディレクトリ検索リストに DECW$INCLUDE の論理名を追加してください。
この論理名を追加するには,VAX C では次のコマンドを入力します。
$ DEFINE C$INCLUDE DECW$INCLUDE |
この論理名を追加するには,DEC C では次のコマンドを入力します。
$ DEFINE DECC$USER_INCLUDE DECW$INCLUDE |
X イメージ拡張 (XIE)により, X クライアント・サーバ・モデルのサーバ側のリソースを使用してのイメージ表示処理を行うことができます。 XIEにより,イメージ・データをクライアントからサーバに繰り返し転送する必要がなくなり,またデータを圧縮した形で転送できるため,ネットワークの負荷を軽減します。
日本語 DECwindows Motif for OpenVMS バージョン 1.1には, XIE のクライアント側共有可能ライブラリ(XIE$SHRLIB.EXE),およびC 言語ヘッダ・ファイルが含まれています。これにより,アプリケーションはXIE拡張をサポートするすべてのX11サーバと交信することができます。
XIE プログラムはXIEImageという構造を使用して,クライアント側でイメージ・データを表現します。この一般的なメカニズムは,表示先サーバが処理できないデータを表現します。どのデータ・タイプやサイズがサポートされているかに関してはサーバ関連のマニュアルを参照してください。マニュアルで別の制限が指定されていないかぎり,サーバは符号なしのバイト(UdpK_DTypeBU),位置未調整ビット・フィールド(UdpK_DTypeVU),位置調整済ビット・フィールド(UdpK_DTypeV)データを,各構成要素につきピクセル当り8 ビットの最大深度で処理できます。 XIE クライアント・ライブラリは,これらのデータ・タイプとともに,符号なしのワード(UdpK_DTypeWU),そして各構成要素についてピクセル当り最大16 ビットの深度もサポートしています。
XIE プロトコルおよびプログラミング・インタフェースは,現在X Consortium内で標準化が進められており, XIEを使用するプログラムはおそらく変更が必要となるでしょう。 DECimage Application Services for VMS の IDS (Image Display Services) 構成要素を, XIE ライブラリ・インタフェースの代わりに使用することもできます。 IDSでは,よりレベルの高いモデルのイメージ表示が用意されており, XIEが利用できかつそれが適切であれば自動的にXIEを使用します。
4.7.1.4 クライアント側拡張ライブラリ
バージョン1.1以降,Xlibはクライアント側ライブラリを追加しました。これにより,VMS クライアントは,Shape,XInput,Multibuffer,共有メモリの各拡張要求を,このような機能を提供しているサーバに対して発行することができます (たとえば,日本語 OpenVMS VAX DECwindows X11 ディスプレイ・サーバは, Shape 拡張をサポートしていませんが,日本語 OpenVMS AXP ではサポートしています)。このライブラリの名前は,DECW$XEXTLIBSHR.EXEです。
Shape,XInput,Multibuffer,共有メモリのいずれかの拡張要求を行うクライアント・アプリケーション用に, SYS$LIBRARY:DECW$XEXTLIBSHR.EXEのXlib 拡張共有可能イメージとリンクできるよう,リンク・ファイルのオプションを変更しなければなりません。リンク・オプション・ファイルに次の行を追加してください。
SYS$LIBRARY:DECW$XEXTLIBSHR/SHARE |
Shape,XInput,Multibufferの拡張についての詳細は, SYS$HELPにある下記のテキスト・ファイルを参照してください。
DECW$SHAPE.TXT
DECW$XINPUT.TXT
DECW$MULTIBUFFER.TXT
この節は,国際化対応およびローカライゼーションに関するリリース・ノートです。
4.8.1 変更および拡張
この項では,国際化対応およびローカライゼーションのサポートに対して行われた変更および拡張について説明します。これらの変更により,ユーザはアジア言語文字を含むファイルの表示および変換が可能になります。
4.8.1.1 CDAビューアによるアジア言語文字の表示
V1.2--3
CDAビューアを使用してアジア文字を格納するファイルを表示するには 2つの方法があります。
CDAビューアの使用法についての詳細は,『DECwindows Motif for OpenVMSアプリケーション・ガイド』を参照してください。
4.8.1.1.1 オプション・ファイルの指定
オプション・ファイルを指定するには,次の形式で1行のエントリをファイルに挿入します。
TEXT TEXT_ENCODING text_encoding_value |
表 4-5 に,言語,コードセット,テキスト・エンコード値を示します。
言語 | コードセット | テキスト・エンコーディング |
---|---|---|
日本語 | DEC Kanji | DEC_KANJI |
日本語 | Super DEC Kanji | SDECKANJI |
中国語(旧字) | DEC Hanyu | DEC_HANYU |
中国語(簡略字) | DEC Hanzi | DEC_HANZI |
韓国語 | DEC Korean | DEC_HANGUL |
次の表は,1行エントリの例です。
オプション・ファイル | 1行エントリ |
---|---|
HANYU.CDA$OPTIONS | TEXT TEXT_ENCODING DEC_HANYU |
HANZI.CDA$OPTIONS | TEXT TEXT_ENCODING DEC_HANZI |
HANGUL.CDA$OPTIONS | TEXT TEXT_ENCODING DEC_HANGUL |
DEC Kanjiの日本語テキストの入ったEXAMPLES_CUSTOMERS.TXTファイルを表示するには,エディタを使用してKANJI.CDA$OPTIONSという名前のオプション・ファイルを作成します。次の1行エントリをファイルに追加します。
TEXT TEXT_ENCODING DEC_KANJI |
CDAビューアを使用して [オプション・ファイル]ダイアログ・ボックス経由でファイルにアクセスすると, DEC Kanjiコードセット(日本語)で EXAMPLES_CUSTOMERS.TXTファイルを表示することができます。
4.8.1.1.2 論理名の定義
アジア言語のファイルを表示できるようにするもう 1 つのオプションとして,次の2つの論理名を定義して,テキスト・ファイルとエンコーディング値を指定する方法があります。
表 4-6 に,論理名と対応するエンコーディング値を示します。
DDIF$READ_TEXT_GL | DDIF$READ_TEXT_GR | エンコーディング値 |
---|---|---|
LATIN1 | MCS | MCS |
LATIN1 | LATIN1 | ISO Latin--1 |
LATIN1 | KATAKANA | ASCII--Kana |
LATIN1 | KANJI | DEC Kanji |
ROMAN | MCS | Roman--MCS |
ROMAN | LATIN1 | Roman |
ROMAN | KANJI | Roman--Kanji |
ROMAN | KATAKANA | Roman--Kana |
LATIN1 | HANZI | DEC Hanzi |
LATIN1 | HANGUL | DEC Hangul |
LATIN1 | HANYU | DEC Hanyu |
DCLコマンド・ラインまたはLOGIN.COMファイルで論理名を定義することができます。次に例を示します。
$ DEFINE DDIF$READ_TEXT_GL LATIN1 $ DEFINE DDIF$READ_TEXT_GR KANJI |
この例は,DEC Kanji用のテキスト・エンコーディングを定義します ( 表 4-6 を参照してください)。
4.8.1.2 アジア言語文字格納ファイルの変換
オプション・ファイルを指定するか, 第 4.8.1.1.1 項 と 第 4.8.1.1.2 項 で説明した論理名DDIF$READ_TEXT_GLとDDIF$READ_TEXT_GRを定義して,アジア言語テキスト・ファイルを別の形式に変換することができます。
TEXTから別形式へドキュメントを変換するときの変換形式は次のとおりです。
$ CONVERT/DOCUMENT/OPTION=language.CDA$OPTIONS filename.TXT/FORMAT=TEXT - _$ filename.output_extension/FORMAT=output_format |
たとえば,中国語(旧字)テキスト・ファイルをDDIFファイルに変換するときは,次のコマンド・ラインを入力します。
$ CONVERT/DOCUMENT/OPTION=HANYU.CDA$OPTIONS - _$ GUIDELINES_PERSONNEL.TXT/FORMAT=TEXT GUIDELINES_PERSONNEL.DDIF |
DDIFが省略時の値であるため,このコマンド・ラインには, /FORMAT=DDIF修飾子が含まれていません。
出力ファイル,GUIDELINES_PERSONNEL.DDIFに言語データが格納されます。
DDIF,DTIF,またはテキスト(ASCII)ファイルからアジア言語PostScriptファイルを作成することもできます。たとえば,DDIFファイルをPostScript(.PS)ファイルに変換するには,次のコマンドを入力します。
$ CONVERT/DOCUMENT filename.DDIF filename.PS/FORMAT=PS |
言語データの入ったDDIFおよびDTIFファイルのみを,アジア言語PostScript形式に変換するようにしてください。 |
アジア言語PostScriptファイルをPostScriptプリンタで出力するときは,プリンタ側で必要な言語フォントを使用できることを確認してください。使用できなければ,省略時の設定で基本フォント・セットが使用されます。基本フォント・セットが存在しない場合, PostScriptファイルではCourierフォントが省略時のフォントになります。 表 4-7 に,言語と基本フォントの対応を示します。
言語 | 基本フォント |
---|---|
Japanese | Ryumin-Light-EUC-H あるいは Ryumin-Light-Hankaku |
Hanyu | Sung-Light-CNS11643,Sung-Light-DTSCS |
Hangul | Munjo |
Hanzi | XiSong-GB2312-80 |
CDAコンバータでは縦書きはサポートされていません。縦書きテキストもすべて横書きに表示されます。 |
この節では,XNLライブラリについて説明します。
4.9.1 変更および拡張
この項では,XNLライブラリに対して行われた変更と拡張について説明します。
4.9.1.1 xnl_parsedatetime
xnl_parsedatetime (およびそのVAXバインディング,XNL$PARSE_DATE_ TIME) は,入力の引数 XmString s (構文解析される日付時刻) に 2桁または4桁の年数を受け付けます。 2桁形式での有効な年数の値は70〜99の範囲で,1970〜1999年を意味します。値00〜69は無効です。 2000年以降は4桁形式が必須です。
4.9.1.2 xnl_langinfo
xnl_langinfo (およびそのVAXバインディング,XNL$LANGINFO)は, item引数にD_FMTまたはD_T_FMTを指定すると,日付時刻フォーマッティング用の文字列を返します。下記のロケールで,この関数は%yを含むフォーマッティング文字列を返します。 %yは2桁年数形式を意味するので,このフォーマッティング文字列は2000年以降は慎重に使用する必要があります。
この節では,Xlib に関する情報を説明します。
4.10.1 変更および拡張
この項では,Xlib に対して行われた変更と拡張について説明します。
4.10.1.1 X11 環境変数の解析
Xlib は現在では,次の環境変数と等価のX11 リリース 5 (X11 R5) 形式を受け付けます。
OpenVMS 形式 | X11 R5 形式 |
---|---|
DECW$DISPLAY | DISPLAY |
DECW$RESOURCE_NAME | RESOURCE_NAME |
起動時に,OpenVMS変数が定義されていない場合,Xlibは状態値を返す前に X11 R5 の等価なものがないかどうかをチェックします。
4.10.1.2 UIDPATH 環境変数
階層をオープンする際に,Xlib はUID (User Interface Definition) ファイルについて,DECW$USER_DEFAULTS および DECW$SYSTEM_DEFAULTS 領域を検索します。 UNIX システム上で X11 R5指定に従い,検索パスはUIDPATH変数とそのフォールバックを使用して定義されます。
現在では,Xlibは,前述のOpenVMS変数のいずれを使用しても UID ファイルが見つからない場合には,UIDPATH変数もチェックします。この変数はUNIX形式のパス名(たとえば /foo/bar) を参照し, X11標準で指定されているように,置換文字列を許可します。 UIDPATH 変数についての詳細は,『OSF/Motif プログラマーズ・リファレンス』を参照してください。
UIDPATH変数は,OpenVMSディレクトリ指定では機能しません。 OpenVMS形式の検索パスを指定するには, DECW$xxx_DEFAULTS論理名を使用します。 |
前へ | 次へ | 目次 | 索引 |