![]() |
Display PostScript (DPS) は、画面上の表示システムである。名前が示すとおり、Display PostScriptはPostScript (PS) のイメージモデルと言語を使って画面上のグラフィックスを生成する。
NeXTの一連のUNIXベースのコンピュータで表示システムとして採用された。当初のバージョンはアドビシステムズが開発したが、Display PostScriptの完全実装はNeXTが主体となってアドビの協力を得て行った。NeXTのオペレーティングシステム以外ではアドビが独自に標準化し、ライセンス条件を設定して製品化している。
対話機能をサポートし、画面表示に耐えうる性能にするため、以下のような変更が加えられた。
showpage
に到達して初めて印刷が行われる。しかし、常に細かい更新が必要なディスプレイでは、この方式は不適切である。DPS では、ユーザープログラムから命令を受け取る度にほぼリアルタイムに描画するモードを追加した。pswrap
" という概念が導入された。これはPostScriptコードをC言語の関数内に組み込み、アプリケーションから呼び出せるようにしたものである。なお、DPSにはウィンドウシステムは組み込まれていない。ウィンドウシステムは別途実装する必要があり、これによってDPSを既存のウィンドウシステムと組み合わせて利用することができる。X Window Systemと組み合わされることが多く、そのような形で後にIBMやシリコングラフィックスがワークステーションにDisplay PostScriptを採用した。X WindowからDPSを呼び出す際のインタフェース部分のコードはDPS本体よりも複雑化することが多い。他にも選択肢はあるため、DPSは広く採用されるには至らなかった。
NeXTの開発者は、NeXTのオブジェクト指向オペレーティングシステムの利点を最大限生かすため、全く新しいウィンドウシステムを開発した。DPSにウィンドウを生成するためのコマンドやイベントに対応するためのコマンドが追加された。これはNeWSにも似ているが、より単純である。APIを統一することで高い抽象レベルでのプログラミングが容易になり、NeXTはDPSを多用した数少ないシステムのひとつとなった。ユーザ空間でのウィンドウシステムのライブラリであるNEXTSTEP, OPENSTEPは、タイトルバーやスクロールバーなどのアイテムをPostScriptを使って描画している。これは、実際にはpswrap
を多用したもので、プログラマからはオブジェクトの形でアクセスできるようになっている。
AppleがNeXTのOPENSTEP後継システムとしてリリースしたMac OS Xで採用した独自のウィンドウサーバQuartzは、PostScriptコードを格納し実行するのではなく、ビットマップとしてウィンドウのグラフィックスをキャッシュする。Quartz 2Dというグラフィックスライブラリは、PostScriptに似たPDFのグラフィックス・プリミティブを提供するが、これはあくまでもアプリケーションのフレームワークであり、ウィンドウサーバ内ではPostScriptもPDFも存在しない。Appleがこのようなモデルを採用した理由はいろいろあるが、アドビがDPSのライセンス料として提示した金額が大きかったこと、CarbonやClassicのコードをより効率的にサポートすること、QuickDrawベースのアプリケーションがビットマップによる描画を行っていることなどが挙げられる。アドビのPDF規格のライセンス条件はずっと緩く、条件付きで無料でソフトウェアにPDFフォーマットを採用できるようになっている。