Display PostScript
Display PostScript (DPS) は、画面上の表示システムである。名前が示すとおり、Display PostScriptはPostScript (PS) のイメージモデルと言語を使って画面上のグラフィックスを生成する。
NeXTの一連のUNIXベースのコンピュータで表示システムとして採用された。当初のバージョンはアドビシステムズが開発したが、Display PostScriptの完全実装はNeXTが主体となってアドビの協力を得て行った。NeXTのオペレーティングシステム以外ではアドビが独自に標準化し、ライセンス条件を設定して製品化している。
PostScriptからの変更点
[編集]対話機能をサポートし、画面表示に耐えうる性能にするため、以下のような変更が加えられた。
- 複数実行コンテクスト
- 逐次的に処理されるプリンタの場合とは異なり、DPSは複数のウィンドウを同時に表示し、それぞれのウィンドウに様々な設定がある。そのため、ウィンドウ毎(プロセス毎)にコンテクスト(状態データのセット)をアクティブに保持するよう修正された。
- 名前の符号化
- PostScriptでは、プロシージャやデータ構造の多くは名前で参照される。DPSでは名前を数値に置き換えて、参照を高速化した。
- 対話機能サポート
- 当たり判定のような機能など、対話の制御のためのプロシージャが定義された。
- ハーフトーン・フェーズ
- スクロール性能を向上させるため、DPSでは新たに見える部分だけを描画し、それ以外の部分はすでにある画像データを再描画せずにシフトさせている。しかし、そのためにハーフトーンがうまく整わず、画像に不要な線や矩形が見えるようになる。DPSはハーフトーンを整えるコードを追加している。ただし、最近のフルカラーのディスプレイではハーフトーンを使うことはないため、この技術は現在ではあまり重要ではない。
- インクリメンタル・アップデート
- PSコードを解釈して印刷する場合、
showpage
に到達して初めて印刷が行われる。しかし、常に細かい更新が必要なディスプレイでは、この方式は不適切である。DPS では、ユーザープログラムから命令を受け取る度にほぼリアルタイムに描画するモードを追加した。 - ビットマップフォントのサポート
- DPSでは、PSフォントをビットマップフォントにマップし、その場で変換する機能が追加されている。PSのフォントは低解像度の機器で主にうまく機能するが、ここでいう「低解像度」とは300dpi程度のことであり、NeXTの画面の96dpiではない。その場合はビットマップフォントの方がよい出力が得られる。
- プログラミング言語サポート
- DPSでは、"
pswrap
" という概念が導入された。これはPostScriptコードをC言語の関数内に組み込み、アプリケーションから呼び出せるようにしたものである。
なお、DPSにはウィンドウシステムは組み込まれていない。ウィンドウシステムは別途実装する必要があり、これによってDPSを既存のウィンドウシステムと組み合わせて利用することができる。X Window Systemと組み合わされることが多く、そのような形で後にIBMやシリコングラフィックスがワークステーションにDisplay PostScriptを採用した。X WindowからDPSを呼び出す際のインタフェース部分のコードはDPS本体よりも複雑化することが多い。他にも選択肢はあるため、DPSは広く採用されるには至らなかった。
NeXTでのDisplay PostScript
[編集]NeXTの開発者は、NeXTのオブジェクト指向オペレーティングシステムの利点を最大限生かすため、全く新しいウィンドウシステムを開発した。DPSにウィンドウを生成するためのコマンドやイベントに対応するためのコマンドが追加された。これはNeWSにも似ているが、より単純である。APIを統一することで高い抽象レベルでのプログラミングが容易になり、NeXTはDPSを多用した数少ないシステムのひとつとなった。ユーザ空間でのウィンドウシステムのライブラリであるNEXTSTEP, OPENSTEPは、タイトルバーやスクロールバーなどのアイテムをPostScriptを使って描画している。これは、実際にはpswrap
を多用したもので、プログラマからはオブジェクトの形でアクセスできるようになっている。
NeXT以後
[編集]AppleがNeXTのOPENSTEP後継システムとしてリリースしたMac OS Xで採用した独自のウィンドウサーバQuartzは、PostScriptコードを格納し実行するのではなく、ビットマップとしてウィンドウのグラフィックスをキャッシュする。Quartz 2Dというグラフィックスライブラリは、PostScriptに似たPDFのグラフィックス・プリミティブを提供するが、これはあくまでもアプリケーションのフレームワークであり、ウィンドウサーバ内ではPostScriptもPDFも存在しない。Appleがこのようなモデルを採用した理由はいろいろあるが、アドビがDPSのライセンス料として提示した金額が大きかったこと、CarbonやClassicのコードをより効率的にサポートすること、QuickDrawベースのアプリケーションがビットマップによる描画を行っていることなどが挙げられる。アドビのPDF規格のライセンス条件はずっと緩く、条件付きで無料でソフトウェアにPDFフォーマットを採用できるようになっている。
参考文献
[編集]- 最新版 PDF specification, version 1.6
- PostScript Language Reference, Second Edition, Display PostScriptについての情報もある
- Display PostScript reference documents