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 は、タイトルバーやスクロールバーなどのアイテムを PostScript を使って描画している。これは、実際には pswrap
を多用したもので、プログラマからはオブジェクトの形でアクセスできるようになっている。
その後の派生
アップルが Mac OS X で採用した独自のウィンドウサーバは、PostScript コードを格納し実行するのではなく、ビットマップとしてウィンドウのグラフィックスをキャッシュする。Quartz 2D というグラフィックスライブラリは、PostScript に似た PDF のグラフィックス・プリミティブを提供するが、これはあくまでもアプリケーションのフレームワークであり、ウィンドウサーバ内ではPostScriptもPDFも存在しない。アップルがこのようなモデルを採用した理由はいろいろあるが、アドビがDPSのライセンス料として提示した金額が大きかったこと、CarbonやClassicのコードをより効率的にサポートすること、QuickDrawベースのアプリケーションがビットマップによる描画を行っていることなどが挙げられる。アドビのPDF規格のライセンス条件はずっと緩く、条件付きで無料でソフトウェアにPDFフォーマットを採用できるようになっている。
参考文献
- 最新版 PDF specification, version 1.6
- PostScript Language Reference, Second Edition, Display PostScript についての情報もある
- Display PostScript reference documents