Display PostScript (またはDPS ) は、コンピュータ用の2D グラフィックス エンジンシステムであり、 PostScript (PS) イメージング モデルと言語 (元々はコンピュータ印刷用に開発) を使用して画面上のグラフィックスを生成します。DPS は、基本的な PS システムに対して、ビットマップディスプレイでの作業を容易にし、一般的なタスクのパフォーマンスを向上させるためのいくつかの機能を追加します。
PostScriptディスプレイ システムの初期バージョンは、 Adobe Systemsで開発されました。NeXT コンピュータの開発中、NeXT と Adobe は協力して公式の DPS システムを開発し、1987 年にリリースしました。NeXT はこれまでずっと DPS を使用していましたが、Adobe のバージョンは 1980 年代から 1990 年代にかけて一時期 Unix ワークステーションで人気がありました。
デザイン
適切なパフォーマンスでインタラクティブな画面上での使用をサポートするには、次の変更が必要でした。
- 複数の実行コンテキスト: PS インタープリタが一度に 1 つのジョブを処理するプリンタ環境とは異なり、DPS は、それぞれ独自の設定 (色、ブラシ設定、スケールなど) を持つ複数のウィンドウで同時に使用されます。このため、システムを変更して、プロセス (ウィンドウ) ごとに 1 つずつ、複数の「コンテキスト」(状態データのセット) をアクティブにしておく必要がありました。
- エンコードされた名前: PostScript の多くの手順とデータ構造は、名前、文字列識別子で検索されます。DPS では、これらの名前を整数に置き換えることができ、コンピューターが検索する速度が大幅に向上します。[引用が必要]
- インタラクションのサポート:ヒット検出を含むインタラクションを処理するためのいくつかの手順が定義されました。
- ハーフトーン フェーズ: スクロール パフォーマンスを向上させるために、DPS はウィンドウの表示される小さな部分のみを描画し、残りのイメージは再描画せずにシフトしました。ただし、これはハーフトーンが揃わず、グラフィックスの表示に線やボックスが表示される可能性があることを意味していました。DPS には、これらのケースを適切に処理するための追加コードが含まれていました。ハーフトーンのない最新のフルカラー ディスプレイでは、このアイデアはほとんど時代遅れになっています。
- 増分更新: 印刷アプリケーションでは、PS コードは を取得するまで解釈され
showpage、取得された時点で印刷されます。これは、常に多数のマイナー更新が必要な表示状況には適していません。DPS には、ユーザー プログラムから命令を受信すると、半リアルタイムで表示できるモードが含まれていました。 - ビットマップ フォントのサポート: DPS では、PS フォントを手描きのビットマップ フォントにマッピングし、オンザフライで切り替える機能が追加されました。Adobe PS の低解像度デバイス (300 dpiを大幅に下回る) でのフォント表示機能は非常に貧弱でした。たとえば、NeXT 画面では 96 dpi しか使用されませんでした。この PS の制限は、手作りのビットマップ フォントを使用することで回避され、まずまずの品質が提供されました。その後の PS の実装 ( Ghostscriptなどの互換性のある代替品を含む)では、グレースケールまたはカラー ディスプレイでアンチエイリアスフォントが提供され、品質が大幅に向上しました。ただし、この開発は遅すぎたため、あまり役に立ちませんでした。最新のディスプレイは依然として 100 dpi 程度ですが[更新が必要]、ビットマップ フォントを使用しなくてもフォントの品質ははるかに優れています。
- プログラミング言語のサポート: DPS では「」という概念が導入され
pswrap、開発者はPostScript コードをC 言語関数にラップして、アプリケーションから呼び出すことができるようになりました。
しかし、DPS はウィンドウ システムを追加しませんでした。これは実装に任されており、DPS は既存のウィンドウ エンジンと組み合わせて使用されることを想定していました。これは多くの場合X Window Systemであり、この形式の Display PostScript は後にIBMやSGIなどの企業によってワークステーションに採用されました。X ウィンドウから DPS コンテキストに移行するために必要なコードは、DPS インターフェイスの残りの部分全体よりもはるかに複雑であることが多くありました。[引用が必要]これにより、代替手段が利用可能であったときに DPS の人気が大幅に低下しました。[引用が必要]
歴史
NeXTの開発者は、 NeXT のオブジェクト指向オペレーティング システムの利点を最大限に活用するために、まったく新しいウィンドウ エンジンを作成しました。DPS には、ウィンドウを作成したりイベントに反応したりするためのコマンドがいくつか追加されました。これはNeWSに似ていますが、より単純です。単一の API によって高レベルのプログラミングがはるかに簡単になり、NeXT は DPS を広範に使用する数少ないシステムの 1 つになりました。ユーザー空間ウィンドウ システム ライブラリNeXTSTEP は、タイトル バーやスクロール バーなどの項目を描画するために PostScript を使用しました。これにより、 が広範に使用されpswrap、オブジェクトにラップされてオブジェクト形式でプログラマに提示されました。
現代のデリバティブ
AppleのMac OS Xオペレーティングシステムは、PostScript コードを保存して実行する代わりに、ウィンドウグラフィックスをビットマップとしてキャッシュする中央ウィンドウサーバー (完全に Apple によって作成) を使用します。[出典が必要] Quartz 2Dと呼ばれるグラフィックスライブラリは、PDF レンダリングモデル (PostScript モデルのサブセットと調整) を使用して PostScript スタイルのイメージングを提供しますが、これはアプリケーションフレームワークによって使用され、Mac OS X ウィンドウサーバーには PostScript は存在しません。Apple は、DPS のライセンス料の回避や、従来のCarbonおよびClassicコードのより効率的なサポートなど、さまざまな理由でこのモデルを選択しました。QuickDraw ベースのアプリケーションは、ビットマップ描画のみを使用します。
参照
- PostScript 標準エンコーディング(PostScript 文字セット)
- NeXT 文字セット
参考文献
さらに読む
- Adobe Systems Incorporated (1990) [1985]. PostScript言語リファレンスマニュアル(第2版). Addison-Wesley Publishing Company .(注: この版には、第 3 版では説明されていない Display PostScript の説明も含まれています。)
外部リンク
- C2 Wiki の説明
- GNU/バックボーン
- 最新のPDF仕様、バージョン1.7
- PostScript 言語リファレンス、第 2 版
- PostScript 参照ドキュメントを表示する
