JPH08512412A - ディスプレイ・コンポジティング・システム - Google Patents

ディスプレイ・コンポジティング・システム

Info

Publication number
JPH08512412A
JPH08512412A JP7504012A JP50401295A JPH08512412A JP H08512412 A JPH08512412 A JP H08512412A JP 7504012 A JP7504012 A JP 7504012A JP 50401295 A JP50401295 A JP 50401295A JP H08512412 A JPH08512412 A JP H08512412A
Authority
JP
Japan
Prior art keywords
image
display
graphic
images
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP7504012A
Other languages
English (en)
Other versions
JP3522275B2 (ja
Inventor
マーシュ,ドナルド,エム.
ズィアス,ジェフ
Original Assignee
タリジェント インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by タリジェント インコーポレイテッド filed Critical タリジェント インコーポレイテッド
Publication of JPH08512412A publication Critical patent/JPH08512412A/ja
Application granted granted Critical
Publication of JP3522275B2 publication Critical patent/JP3522275B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/14Display of multiple viewports
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/40Hidden part removal

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Geometry (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

(57)【要約】 ディスプレイ・コンポジティング・システムを提供することを目的としている。コンポジティング・アーキテクチャによれば、別のグラフィック・イメージの下にあるグラフィック・イメージの部分に対応するデータをバッファに入れておくことにより、別のイメージの上に浮動しているイメージが移動または操作されて、より深い層にあるグラフィック・イメージのピクセルが見えるようになったとき、ピクセルを高速に復元することによって、それぞれのグラフィック・イメージのオーバラップしている不透明および半透明領域のレンダリングを正確に行うことができる。グラフィック・イメージを表すデータは、グラフィック・イメージの不透明と深さ順序が判断されると、ペインタへ選択的に転送される。複数のペインタは、長さが異なるイメージ・レンダリング・パイプラインを備えていることが好ましい。ペインタは、コンポジットされるイメージの数に従って選択される。データ・バッファリングは、グラフィック・イメージの交差する領域に従ってバッファを動的に作成し、削除することにより最小化されている。

Description

【発明の詳細な説明】 ディスプレイ・コンポジティング・システム 発明の背景 発明の分野 本発明は、一般的には、ユーザに表示するためのコンピュータ・イメージの生 成に関し、さらに具体的には、特にスクリーン(画面)がマルチタスキング環境 で複数のタスクによって共有されている場合に、同一ディスプレイ・スペース( 表示空間)上にオーバレイされることがある、不透明(opaque)、半透明(translu cent)、透明(transparent)または半透明(semi-transparent)のアイテム(項目) またはオブジェクトのイメージをレンダリング(rendering)するコンポジティン グ(合成)・サブシテム(compositing subsystem)のアーテキテチャに関する。 従来技術の説明 データ・プロセシング・デバイスまたはシステムとオペレータと間の通信イン タフェースとしてビジュアル・ディスプレイが非常に好ましいことは、以前から 認められていた。ビジュアル・ディスプレイでは、入力したアクションをオペレ ータが確認できると共に、該当する入力オプションや指示(instructions)が多く の場合、アイコンおよび/またはメニューの形で表示され、マルチタスキング環 境などにおいて、データ・プロセシング・システム上で同時並行に実行されてい る複数のアプリケーションを制御できるようになっている。 現在では、ビジュアル・ディスプレイはかなり高度になり、ユーザとの通信を 強化するするために種々の表示属性が使用されている。可視性を向上するために カラー・アイコンとアニメーションが使用されているが、これらはシステム関数 (system function)はもちろんのこと、カーソル関数(cursor function)とアイデ ンティティ(ID)(例えば、カーソルを制御する入力デバイス)の両方も示してい る。ビジュアル・ディスプレイの体裁は、種々のディスプレイ機能(display fea tures)が用意されていればそれらも含めて、特定のデータ・プロセシング・アプ リケーションの「外観と感触」(look and feel)の主要要因となっている。同じ 意味で、ディスプレイの見かけ上の体裁は、特に、ユーザ・コマンドまたはシス テム関数やオペレーションを受けて変更されたときの見かけ上の体裁は、ユーザ がデータ・プロセシング・システムとそこで実行されるアプリケーションの両方 を信頼し、満足するときの主要要因となっている。 また、複数のディスプレイ機能を1つまたは複数のアプリケーションが利用す るためには、そのプレゼンテーションに一定の順序(ディスプレイ・スクリーン ・イメージ生成のレベルでは、「コンポジティング」(compositing)とも呼ばれ ている)が守られている必要があり、これにより、各イメージ部分の該当のレン ダリングが達成される。例えば、ウィンドウ・ディスプレイ環境では、オーバラ ップして表示されるウィンドウ間に一定の順序を設定して、あるアクティブ・ウ ィンドウで操作中のデータが別のウィンドウに関連するオブジェクトで隠されな いようにする必要がある。少なくともアクティブ・ウィンドウのメニューは隠さ れてはならない。カーソルは、カーソルが操作の対象としているデータによって 隠されてはならないが、メイン・カーソル(main cursor)と呼ばれるものを除き 、ウィンドウやメニューがその上にかぶさることは可能である。スプライト(spr ite)はカーソルとしても、アプリケーション・レベルのオブジェクトとしても使 用できる。そのようなものとして、対応する可視要件をもつアイコン(アニメー ション付きの場合と、アニメーションなしの場合とがある)がある。 マルチタスキング環境でよく使用されているウィンドウでは、順序付けがさら に複雑になっている。ウィンドウ自体は不透明(opaque)とも、透明(transparent )とも言われることがある。さらに、グラフィックス・アプリケーションがいず れかのウィンドウで実行されていると、そのウィンドウには、多数のオブジェク トが多数のカラーで(カーソル、メニュー、その他のディスプレイ機能と一緒に )表示されることがあり、これらはオーバラップすることがあり( 例えば、種々の組合せと順序でお互いを隠すこと)、また、不透明や透明(例え ば、半透明)の程度が様々であり、カラー、パターン、テクスチャ(texture)、 輝度(intensity)、アニメーション、その他の表示属性をもっている場合もある 。 別の複雑さは、ディスプレイ・イメージ機能の予想される作用(behavior)から 生じている。例えば、ヘルプ・ウィンドウやバルーン(baloon)などのポップアッ プ機能およびプルダウン・メニューはウィンドウ内で静止しているのが普通であ るが、これらは現れると、ほとんど瞬時に、しかも、ブランク・スペースや古く なったイメージなどのアーティファクト(artifact)を残さないでウィンドウから 消えることが期待される(例えば、あるオブジェクトのイメージが別のイメージ で隠されている間に、それを変更しておく必要があった場合)。グラフィック・ オブジェクトのイメージはあるロケーションから別のロケーションへドラッグさ れる場合もあれば、そのオブジェクトの境界(border)、コーナまたは他の部分の ハンドルをドラッグすると歪んだり、サイズが変わる場合もあるので、オブジェ クトやバックグランドで隠されていた部分は、そのオブジェクトで隠す必要がな くなったとき、即時に見えるようにして、正しくレンダリングされるようにすべ きである。同様に、3次元オブジェクトのイメージは空間で回転されることもあ るので、スクリーンの平面で投影を行うと、オブジェクトの表示されている境界 が変わることがある。ユーザは、オブジェクトがスクリーンやウィンドウに追加 されたり、そこから削除されるとき、スクリーンの再ドローイング(描画)に要 する時間に不満をもたないのが普通であるが、多くの他のユーザはデータ・プロ セシング・システムと対話(interaction)しているとき迅速な応答を期待してい る。 ディスプレイ生成は、高解像度の色彩、輝度および色相(hue)で制御されるピ クセルの数と、サポートしなければならないオブジェクトの数、ディスプレイ機 能とスクリーンおよびそれらの間のやりとり(interaction-相互作用)の点で、計 算集中型(computationally intensive)のプロセスである。従って、ディスプレ イ生成は、処理時間とイメージ・データ保管の点で非常に高価であるのが普通で ある。そのために、すべてのオブジェクトとディスプレイ機能をバッファリン グしても(最終的イメージで隠されている場合であっても)、ディスプレイの応 答時間を高速化する問題の解決にはならない。このように潜在的に大量の記憶容 量が必要になるため、管理とアクセスとための処理時間が大幅に必要になる。 さらに、レンダリングの完全な一般原理では、下位に位置する各層がその上の すべての層のレンダリングに影響を及ぼす潜在性をもっている。このため、ディ スプレイ・デバイスの制御のための正しいピクセル・イメージ値を開発する際に 考慮する必要のあるデータ層の数と共に、計算時間が指数的に増加する。つまり 、コンポジティング・プロセスは、半透明カラー・フィルタ(colored filters) がオーバレイしたときの影響のシミュレーションをサポートしていなければなら ない。そうすれば、その下のグラフィックをフリッカしたり、そのレンダリング を妨げることなく、それぞれの上と下に浮動して現れることができる不透明また は半透明の形状でディスプレイを作ることが可能になる。現時点では、コンポジ ティングの一般原理では、控え目に見ても、大量のハードウェアを準備する必要 がある。そして、また、許容時間制約内に高度化されたイメージ処理が収まる程 度の必要なイメージ処理時間は、最大のものは別として、すべてのデータ・プロ セシング・システムの能力を越えている。 発明の概要 従って、本発明の目的は、多数のウィンドウ、オブジェクトおよびスクリーン 機能のコンポジションを効率よく高速に行うことを可能にし、これらが相互の上 に浮動して見えるようにするイメージ・コンポジティング・サブシステム(image compositing subsytem)のアーキテクチャを提供することである。 本発明の別の目的は、複数の不透明および半透明オブジェクトとスクリーン機 能(以下、これらを「アイテム」と総称する)のレンダリングを正しく、フレキ シブルに行うことをサポートするイメージ・コンポジティング・サブシテムのア ーキテチャを提供することである。 さらに、本発明の別の目的は、少ないハードウェアで実現することが可能であ り、その結果、応答時間を短縮してディスプレイ生成を可能にする、汎用性が向 上したコンポジティング・サブシステムと方法を提供することである。 さらに、本発明の別の目的は、現イメージ・アイテムでの応答をほぼ即時化し 、アーティファクトをレンダリングすることから解放することである。 本発明の上記および他の目的を達成するために、データ・プロセシング・シス テムのディスレプイの、ある領域で交差する可能性がある複数のグラフィック・ イメージをレンダリングする方法が提供されている。この方法は、複数のグラフ ィック・イメージをいくつかのグループに分割するステップであって、各グルー プはレベルをもち、グループ内の各イメージはそのグループ内でレベルをもつも のと、アクティブ・イメージを含んでいるグループ内のイメージがそのアクティ ブ・イメージと交差しているかどうかをテストするステップであって、このテス トは、アクティブ・イメージを含んでいるグループを他のグループと突き合わせ てテストして、交差するイメージを含むことができないグループを判別すること も含んでいるものと、交差が検出されたとき、下位レベル・イメージからのイメ ージ・データをインターセプト(intercept)するステップとからなることを特徴 としている。 本発明の別の側面によれば、イメージ・コンポジティング方法が提供されてい る。この方法は、複数のアイテムの各々に対応するイメージ・データを生成する ステップであって、各アイテムはレベルをもっているのものと、それぞれのアイ テムの交差を検出し、比較的下位レベルにあるアイテムに対応するイメージ・デ ータをインターセプトするステップと、インターセプトしたイメージ・データを バッファと動的に選択されたペインタ(painter)のうち少なくとも一方へ転送す るステップとからなることを特徴としている。 さらに、本発明の別の側面によれば、オーバラップする可能性のあるグラフィ ック・イメージを表示する方法が提供されている。この方法は、グラフィック・ イメージのオーバラップしている部分の深さ順序(depth order)を検出するステ ップと、深さ順序の検出を受けて、前記グラフィック・イメージを表しているデ ータをペインタへ選択的に送るステップと、少なくとも1つのグラフィック・イ メージの少なくとも1つのオーバラップされた部分であって、該少なくとも1つ のグラフィック・イメージのオーバラップされた部分を隠している、別の グラフィック・イメージの部分の深さより大きい深さをもつものを、下方バッフ ァ(beneath buffer)にストアするステップとを含んでいることを特徴としている 。 さらに、本発明の別の側面によれば、ディスプレイ上のグラフィック・イメー ジをレンダリングする方法が提供されている。この方法は、一定順序に配列され た複数のイメージ・データに基づいてイメージ値を生成するステップであって、 イメージ・データは少なくとも2つのグラフィック・イメージの相対的深さの層 に従って配列されているものと、少なくとも一方のグラフィック・イメージの少 なくとも1つのオーバラップされた部分であって、該少なくとも一方のグラフィ ック・イメージの該少なくとも1つのオーバラップされた部分を隠している、前 記グラフィック・イメージのうちの他方の部分の深さより大きい深さをもつもの を、下方バッファにストアするステップとを含んでいることを特徴としている。 さらに、本発明の別の側面によれば、ディスプレイ・コンポジティング方法が 提供されている。この方法は、それぞれのグラフィック・イメージを表している データをストアするための複数の下方バッファを作成するステップと、これらの 下方バッファをウィンドウが現れるときのウィンドウの深さに従ってグループ化 するステップと、少なくとも1つのグループが収めている各下方バッファを、そ のグループから指しているポインタを作るステップと、低位の深さにある次のグ ループを指しているポインタを作るステップと、前記少なくとも1つのグループ 内のイメージと交差する可能性のあるグラフィック・イメージを表しているデー タを収めている各グループを指しているポインタを作るステップとを含んでいる ことを特徴としている。 さらに、本発明の別の側面によれば、ディスプレイ方法が提供されている。こ の方法は、ディスプレイ上の少なくとも1つのウィンドウを移動するステップと 、ウィンドウがディスプレイ上で移動すると、それを受けて該ディスプレイ上の ドローイング活動を凍結(freeze)するステップと、該ディスプレイ上の少なくと も1つのエリアをバッファリングするステップとを含んでいることを特徴として いる。 さらに、本発明の別の側面によれば、コンポジティング・ディスプレイ方法が 提供されている。この方法は、表示しようとするオブジェクトと境界をなしてい るスクリーン領域に対してドローイング・ロック(drawing lock)を要求するステ ップと、そのスクリーン領域にコンポジット・アイテム(composited item)があ るかどうかを検査するステップと、スクリーン領域のうち、1つまたは複数のオ ブジェクトの単一組合せだけを含んでいる第1領域についてドローイング・ロッ クを許可するステップと、1つまたは複数のオブジェクトの単一組合せに対応す るペインタをコールするステップと、ドローイング・ロックを解除するステップ とからなることを特徴としている。 図面の簡単な説明 上記およびその他の目的、側面および利点をもっと理解しやすくするために、 以下、添付図面を参照して本発明の好適実施例について詳しく説明する。添付図 面において、 第1A図は、好適実施例によるパーソナル・コンピュータ・システムを示すブロ ック図である。 第1B図は、好適実施例によるデータ・プロセシング・システムを示す概略図で ある。 第2図は、好適実施例によるコンポジティング問題の例を絵で表して示す図で ある。 第3図は好適実施例によるプルダウン・メニューを示し、複数カーソル操作環 境においてメニューがどのようにして下位カーソルを隠すかを絵で表して示す図 である。 第4図と第5図は好適実施例によるグラフィック・オブジェクトを示し、スプ ライトがユーザ制御のカーソルによって他のグラフィック・オブジェクトの個所 にドラッグされる様子を絵で表して示す図である。 第6図は、好適実施例によるマルチグラフィック・ウィンドウを絵で表して示 す図である。 第7図は、好適実施例においてピクセル値をフレーム・バッファ・デバイスに バッファリングするためにピクセル・バッファがどのように使用されるかを示す ブロック図である。 第8図は、本発明を実施するときのTBeneathBufferGroups(BBGs)の関係を示す ブロック図である。 第9図はカーソルと交差している長い対角線を示し、好適実施例において動的 ペインタの使われ方を絵で表して示す図である。 第10図は、好適実施例において半透明レッド・カーソルを使用して半透明グリ ーン・オブジェクトをドラッグする様子を絵で表して示す図である。 第11図は、好適実施例において2つの不透明コンポジット・アイテムがアクテ ィブ・ドローイングで交差している様子を絵で表して示す図である。 第12A図、第12B図、第12C図および第12D図は、好適実施例において第11図に示 すディスプレイを生成するに当たり、本発明によって実現されたバッファ作成お よび削除プロセスを絵で表して示す図である。 発明の好適実施例の詳しい説明 好適実施例は、好ましくは、IBM(登録商標)社PS/2(登録商標)またはアッ プル(登録商標)社マッキントッシュ(登録商標)コンピュータなどのパーソナ ル・コンピュータ上に置かれているオペレーティング・システムの環境(コンテ キスト)で実施される。代表的なハードウェア環境は第1A図に示されているが、 同図は、従来のマイクロプロセッサのような中央演算処理ユニット10、およびシ ステム・バス12を介して相互に接続された複数の他のユニットを装備した、本発 明によるワークステーションの代表的ハードウェア構成を示している。第1A図に 示すワークステーションはランダム・アクセス・メモリ(RAM)14、リード・オン リ・メモリ(ROM)16、ディスク・ユニット20などの周辺デバイスをバスに接続す るための入出力アダプタ18、キーボード24、マウス26、スピーカ28、マイクロホ ン32、および/またはタッチ・スクリーン・デバイス(図示せず)などのユーザ ・インタフェース・デバイスをバスに接続するためのユーザ・インタフェー ス・アダプタ22、ワークステーションをデータ処理ネットワークに接続するため の通信アダプタ34、およびバスをディスプレイ・デバイス38に接続するための表 示アダプタ36を装備している。ワークステーションには、アップル社System/7( 登録商標)オペレーティング・システムなどのオペレーティング・システムが置 かれている。 以下、図面を参照して説明するが、特に、第1B図には、本発明110を含んでい るデータ・プロセシング・システム100の概略ブロック図が示されている。デー タ・プロセシング・システム100内では、ストアされているデータや入力された データについて必要なオペレーションを行うために1つまたは2つ以上のアプリ ケーションが実行されている。説明の便宜上、以下では、アプリケーション111 が、マウス、トラックボール、タブレット、ライトペン、ジョイスティック、デ ータ・グローブなどの位置決め入力デバイス(グラフィックス入力デバイスとも 呼ばれる)から入力を受け取り、表示されるグラフィックス機能(graphic feat ures)の制御を行うものと想定している(ただし、そのようなグラフィックス機 能がシステムのハードウェアやアプリケーションのソフトウェアによってサポー トされることを条件としている)。例えば、アプリケーションは入力テキストと 、少なくとも基本的またはデフォルト形状をもつ、少なくともメイン・カーソル ・イメージの表示を直接に制御できるものと想定している。 スプライト(sprite)112(カーソルはこれで実現することが好ましい)、メニュ ー114およびラバーバンド(rubber band)116といったグラフィック・ディスプレ イ強化機能(graphic display enhancement features)は、アプリケーションから 提供することも、システムの一部として提供することも、あるいはこれらの組合 せで提供することも可能である。同様に、システムまたはアプリケーションはこ のような機能の各々を、図中に113,115,117で示すように、少なくとも1つの入 力デバイス(例えば、マウス、ライトペン、データ・グローブなど)と関連づけ てその制御を行うことも、特定のディスプレイ・デバイスと関連づけて、そこで かかる機能をレンダリングすることも可能である。このようにして得られた出力 はデバイス依存(device-dependent)にすることが好ましい。つまり、機能で実行 できる操作とその機能がレンダリングされるディスプレイ・デバイスに従っ て最適化すれば、様々な種類のディスプレイ・アクセラレーション(display acc eleration)を採用することが可能になる。 また、アプリケーションは、図中にグラフィックス・システム118で示すよう に、オブジェクトのグラフィック・イメージの生成を制御できるものと想定して いる。グラフィックス・システム118によって処理されたオブジェクトは、カー ソルを使用して、あるいはアプリケーション自身によってドローイングされてい た可能性のあるオブジェクトを表示するが、これらのオブジェクトは、コンポジ ティングを必要とする他のアイテムの間に組み込まれていなければならない。そ のため、データ・プロセシング・システム100はディスプレイを制御するための 複数のデータ・ソースを含んでいるが、これらのデータ・ソースはなんらかの方 法で結合して、ディスプレイ130の各ピクセルごとに表示値をレンダリング・エ ンジン(rendering engine) 120から得て、その間に、表示されたアイテムのレン ダリングを高速かつ正確に行わなければならない。ユーザ・アクションに対する 応答を迅速化するためには、コンポジティングされる各アイテムの生成は、コン ポジティングされる他のアイテムの生成と同期して行われることがあるので、1 つまたは非常に少数のディスプレイ・フレーム内で再ドローイングして、表示で きるようにする必要がある。アプリケーション内のどのスレッド(thread)も、ス クリーンの自分の部分を非同期に更新することができるので、他のスレッドによ って生成されたアイテムが占めているスクリーン部分の上に、異なるスレッドが 統一的にかつ正確にグラフィックを表示することは容易になっていない。従って 、本発明が提供するコンポジティング・アーキテクチャ110では、透明や不透明 といったアイテム属性とアイテム優先度を複数のアイテムに対して組み合わせて 、高速にレンダリング・エンジンへ渡すことができ、しかも、データと属性の正 しいレンダリングが、必要なメモリ量を増やすことなく正しく行えるような形で 行われる。 本発明のコンポジティング・アーキテクチャによれば、コンポジティング・オ ペレーションは、下位レベルのレンダリング・パイプラインとそこから下方バッ ファまでの経路でピクセル値をインターセプトすることにより行われ、これらの ピクセル値は、隠しているアイテムが移動したとき下方バッファから再コールす ることによってディスプレイ応答を高速化している。動的ペインタ・インスタン ス化(dynamic painter instantiation)に基づくストラテジを使用して、レンダ リング時間が最小化されている。必要な記憶量は、下方バッファを動的に作成し 、削除すると共に、頻繁に変化することが予想される交差アイテムが見つかった ディスプレイの小さなエリアだけでコンポジティングを行うことにより最小化し ている。他の場合には、従来のクリップと更新ストラテジが使用される。隠され ているアイテムを見つける探索も単純化され、下方バッファをいくつかのグルー プに分け、ポインタで探索を短縮化することによって高速化されている。 第2図は、コンピュータ生成イメージを図1のスクリーン130上に形成する際 に起こる、基本的であるが、なお困難であるコンポジティング問題を示している 。2つのコンポジット・アイテム212と213(図には、それぞれ不透明スプライト Aおよび透明スプライトBと示されている)の下にライン211が引かれるとき、 ラインの中間(211a)と終端にあるピクセルをスクリーン上に引かなければならな い。スプライトAとBの形状とラインの特徴(例えば、幅)はその属性と同じよ うに、レンダリングを制御する情報を収めているが、他の場合には、本発明によ るコンポジティング・アーキテチャにとって重要でないオブジェクトのクラスに 従って判断することが好ましい。不透明スプライトAの下のライン211(または バックグラウンド)を表すピクセルは、「下方バッファ」と呼ばれる特殊なバッ ファへ送っておくことが好ましい。そうすれば、スプライトAが移動したり、イ メージから削除されたりしたとき、これらのピクセルを迅速に再コールすること が可能になる。半透明スプライトBの下のピクセルも下方バッファへ送っておく ことが好ましいが、これらはスプライトBのイメージと一緒にレンダリング・パ イプラインでコンポジットして、スクリーン130に再ドローイングしなければな らない。 ドロップ・シャドゥ(drop shadow)を含めて、半透明アイテムのコンポジティ ングを可能にするには、イメージ・アイテムの少なくとも一部について2つの判 断を行わなければならない。特定のスクリーン・ロケーションについては、ある アイテムが上位レベル(例えば、高優先度の層)のアイテムで隠されているかど うか、上位レベルのアイテムが不透明であるかどうかを判断しなければならな い。このプロセスとそれを実現するハードウェアまたはソフトウェアは、以下で 説明するように短縮化することが可能である。あるアイテムが特定のスクリーン ・ロケーションに存在していて、そのアイテムの一部(これは、数値位置と層番 号の比較を高速に実行することで判断できる)で隠されていなければ(例えば、 別のオブジェクトがその上に浮動している)、情報は多かれ少なかれ直接にスク リーン・メモリへ送ることができる。アイテムがあるロケーションにあって、そ のロケーションで上位レベルのアイテムで隠されていれば、イメージ値はインタ ーセプトされる。そのアイテムのインターセプトされたイメージ値(これは、そ こではどのロケーションでも任意であり、アニメーション化することも、時間と 共に変化させることもできる)は、上位レベル・アイテムが半透明であるかどう かを判断するテストに従って送られる。具体的に説明すると、不透明の上位レベ ル・アイテムがなければ、イメージ値はレンダリング・パイプラインの順次ステ ージに置かれると共に、そのアイテムの下方バッファにも置かれて、隠している アイテムが移動または削除されたとき、イメージ値が高速に回復される。 この点に関して述べておきたいことは、あるアイテムが、頻繁に移動すること が予想されない別の不透明アイテムによって隠されているときは、そのアイテム 自身のイメージ値は時間の経過に対して相対的に静的であり、アイテム処理を短 縮化することが好ましいことである。従って、隠されているアイテムの処理は、 そのアイテムが隠されている間省くことができ、イメージ値は、そのアイテムが 隠しているアイテムの下からスイッチ341′に対応するスイッチの上に現れたと き(およびそのアイテムの再計算された表示値が多数のデータ・プロセシング・ サイクルのあとで使用可能になったとき)特殊バッファから取り出される。同じ 意味で、2つ以上のアイテムによって隠されていて、そのうちの少なくとも1つ が相対的に静的であるか、あるいはアクティブ・コントロール下に置かれている ようなアイテムに対応するバッファは、省くことができるのが通常であり、かか る特殊バッファの数は本発明によれば動的に変更することができる。これらのセ ーブ(save)、取出し(retrieval)およびレンダリング(render)オペレーションは 、その領域における他のレンダリングまたはドローイングと同期させる必要があ る が、これはスクリーンまたはウィンドウ位置に基づく公知の方法によって簡単に 行うことができる。 もう1つ触れておきたいことは、イメージ・レンダリング・パイプラインを単 一のマルチステージ(多段)パイプラインにする必要がないことである。例えば 、1つのアイテムだけがあるウィンドウまたはスクリーン・ロケーションに存在 していれば、パイプラインは、基本的に縮退パイプライン(degenerate pipeline )にすることができるので、上述したように、多かれ少なかれ直接にスクリーン ・メモリに書くことができる。また、不透明アイテムが見つかると、パイプライ ンのステージへの入力(例えば、下位レベル・アイテムからの)はそこへ入力さ れることが中止され、その代わりに、インターセプトされて特殊バッファへ送ら れる。これが重要であるのは、レンダリング・パイプラインで実際に使用されて いるステージ数によって、正しいレンダリングを得るために必要な時間量が決ま るからである。従って、本発明の重要な特徴は、本発明によると、イメージ値を 選択して、それを長さが異なるパイプラインを含む複数のパイプライン回路に入 力して、あるアイテムと上位レベルのすべての透明アイテムを表すデータを最適 に処理できることである。これについては、以下で詳しく説明する。 本発明によれば、上位レベル・アイテムによって隠されているアイテムのレン ダリングは公知のシステムに比べて大幅に単純化されているが、これは、上位レ ベルのアイテムを探す検査がレンダリング・オペレーションとは基本的に逆に行 われるように、コンポジティング・サブシステムのアーキテクチャを構成し、オ ーバレイしているアイテムまたはウィンドウや機能エリアが不透明であるか、透 明であるかに応じてイメージ・データをレンダリング・パイプラインまたはオフ スクリーン・ストア(off-screen store)へ送ることによって実現している。 本発明によれば、コンポジティングを行うときの順序付け規則は、カーソルと その操作対象となるアイテムとが強く結びついているという基本原理に基づいて いる。例えば、ドラッグされるアイテムは、それをドラッグしているカーソルと 強く結びついている。他のどのオブジェクトも、カーソルとドラッグされるアイ テムとの間に表示されることは許されない(別のカーソルであっても許されな い)。同様に、メニューはそれをアクティベートするカーソルと強く結びついて いる。 この点がマッキントッシュ(登録商標)システム7.0と異なっている。このシ ステムでは、ユーザがコマンド・キーを使用してバックグラウンド・ウィンドウ をドラッグすると、アウトラインが表示され、これはフォアグラウンド・ウィン ドウによってクリップされている。このアウトラインは、小さなバックグラウン ド・ウィンドウが大きなフォアグラウンド・ウィンドウの下にドラッグされると 完全に見えなくなる。これに対して、本発明が実現されている環境の好ましい作 用では、層の順序が並べ替えられるので、ユーザが操作中のオブジェクトを見失 うことがないようになっている。 本発明の好ましいアプリケーションと環境では、複数カーソルは、複数の入力 デバイスで駆動させることも(これらはデバイス・カーソルと呼ぶことにする) 、ネットワークを通して共同で作業しているリモート・ユーザが駆動させること もできる(これらはリモート・カーソルと呼ぶことにする)。リモート・カーソ ルには2種類ある。1つは、特定の協同アプリケーションのビュー(view)内だけ でアクティブになっているものであり、もう1つは、デスクトップ全体をアクセ スできるので、その縦横にわたって無制限に移動できるものである。複数カーソ ルは深さの順序(depth ordering)が決まっているが、これはユーザが変更するこ とができる。例えば、マウスによって駆動されるカーソルはデータ構造によって 駆動されたカーソルの上に現れるが、これはユーザがコントロール・パネルから この順序を変更するまでそこに現れている。メイン・カーソル(main cursor)は 、ユーザが他のすべてのカーソルの上に現れるように選択したカーソルである( システム・マウス・デバイスでは、デフォルトを使用することが好ましい)。こ の深さ順序を除けば、すべてのカーソルはコンポジティング・アーキテクチャか ら見たとき同等になっている。 メイン・カーソルは、ユーザの選択によってすべての上に現れるものとしたデ バイス・カーソルである。メイン・カーソルが隠されることはない。これはフリ ッカすることもなく、切れることもなく、デスクトップの境界に固定している。 例えば、図3において、トップまたはメイン・カーソル410は、アプリケー ション・スクリーンやウィンドウの上方に設けられているのが普通である、メニ ュー・ラベルが置かれているバー420からメニュー450をプルダウンしている。同 図に示すように、メニュー450は下位カーソル430を隠し、下位カーソル440を部 分的に隠している。カーソル430と440の相対レベルは重要ではない。その理由は メイン・カーソル410に最高優先度が与えられており、あるカーソルとそのカー ソル(この例ではメイン・カーソル)が操作しようとするアイテムとの間に他の アイテムが入り込むことが許されないためである。 メニューとヘルプ・バルーン(help balloon)がコンポジティング・サポートの 候補となっているのは、これらが非同期にドローイングが行われている可能性の あるすべてのウィンドウとその内容の上に現れるので、即時に消す必要があるた めである。メニューを即時に消す唯一の方法は、その下のスクリーンの内容をバ ッファに入れておくことである。しかし、スクリーン内容の一部をバッファに入 れておくと、メニューが表示されている間にその領域が変更されるという可能性 はなくなる。しかしながら、このようなバッファリングは、本発明のコンポジテ ィング・アーキテクチャによれば、現スクリーン情報がインターセプトされてバ ッファに入れられるので、メニューの下のすべての活動を凍結しなくても行うこ とができる。 他のコンポジット・アイテムに対するメニューの深さ順序は、それをアクティ ベートしたカーソルの深さ順序によって決まる。しかし、メニューは、メニュー のイメージ(ロケーションではなく)がユーザ・アクションに応答して即時に変 化しなければならない点で(例えば、ユーザがその上をカーソルを通過させると 異なるアイテムがハイライトになる)、カーソルと異なっている。メニュー・ピ クセル(バルーン・ヘルプ・オブジェクト内のアニメーションのピクセルを含む )はディスプレイ・バッファから取り出すことができるので、メニューまたはそ の一部が選択されたときやカーソルによって隠されるときは特殊バッファを用意 したり、生成したりする必要がない。しかし、メニューは即時に消えなければな らないので、少なくとも一部の下位レベル・アイテム(これらはウィンドウ枠を 越えることがある)用に特殊バッファを用意または生成することが好ましい。こ の場合も、カーソルとその操作対象となっているメニューの間に他のアイテム が入り込むことは許されない。 ドラッグのビジュアル効果は、ドラッグを行うときの事情が異なると異なる。 アイテムのロケーションは調整されるだけのときもあるので、アイテムの最終的 体裁は、ドラッグするときに、できる限りその体裁に近くなるようにシミュレー トしておく必要がある。そのような場合には、ドラッグされて、オーバラップし ているオブジェクトで正しく隠されているアイテムを実線で表したものを使用す ることが望ましい。別の場合には、ドラッグされたアイテムは、相対的に小さな ターゲット上でドロップしなければならない。ターゲットが隠れるのを防止する には、ドラッグされたアイテムを半透明かアウトラインかアイコンで表した方が 望ましく、そのようにすると、スプライトで簡単に実現することができる。 ドラッグされたアイテムは、ドラッグのやりとりのタイプに応じて、アウトラ インまたは実線スプライトで表示することが好ましい。実線スプライトの方がイ メージの最終的体裁に近い体裁を表現するが、アウトラインを使用すると、スプ ライトの下のターゲットの収集が容易になる。本発明によれば、スプライト510 は、第4図に示すように、アウトライン510aで表示することも半透明スプライト で表示することもでき、操作はアウトラインに基づいて行うことができる。これ は、スプライトが本来もつ機能ではないが、本発明によれば、ドラッギング・オ ペレーションの開始時にあるいは隠しているオブジェクトが見つかったとき、ス プライトのグラフィックをいずれかのアウトライン・グラフィックにセットする ことで簡単に行うことができる。コンポジティングの目的に異なるレベルでセッ トすることも可能である。 ドラッギングを行うと、アウトラインはカーソルの下に表示され(例えば、ス プライトをカーソルのレベルに隣接するレベルに表示されるアウトライン「アイ テム」に変換することによって)、カーソルとスプライトの間に入り込むアイテ ムによってクリップされない。これに対して、実線スプライトは、従来の手法と 同じように、スプライトがドラッグされたときアイテム520によって隠されると 、クリップされることがあり、アウトライン510a′はユーザには見えなくなる。 任意のレベルにある実線スプライトがドラッグされるとき望ましいことは、カー ソルのすぐ下のレベルに代用(surrogate)オブジェクトを作ることである。 そうすれば、コンポジティングを行っていないと、クリッピングが行われるはず の個所を判断することが容易になる。その場合には、代用物と実線スプライトの 間でオブジェクトにオーバラップしている代用物が検出されると、クリップされ る実線スプライトの個所が明確化されることになる。 最初の2モード(つまり、クリップされた実線とアウトライン)は本発明を使 用すると、組み合わせることも可能である。スプライト510bを実線で表したもの は、スプライトがオーバラップしているオブジェクト530,540によって代用オブ ジェクトに従ってクリップされる個所を除き、第5図に示されている。クリッピ ングが行われる個所では、クリップされていないアウトラインは、コンポジティ ングが行われる個所で上位レベルにある代用オブジェクトに従って、実線スプラ イトをアウトライン・スプライト・グラフィックで置き換えることにより上に表 示される。隠されていないスプライトの部分では、コンポジティングを行う必要 がなく、オリジナル・グラフィックは、特にクリップされた個所を迅速に復元す るために使用できる。これにより、実線グラフィックを「物理的」感触でドラッ ギングすることがシミュレートされるが、ドラッグされたオブジェクトが隠され たとき、位置と形状に関する情報がユーザに与えられる。ユーザは、スプライト をそれが完全には隠されない位置まで移動するだけで、実線スプライト・グラフ ィック内の情報(例えば、モーダル機能情報(modal functionality information ))を即時に得ることができる。 マッキントッシュ(登録商標)システム7.0と同じように、ユーザがバックグ ラウンド・ウィンドウをドラッグし、そのあとでアウトラインとして表されるの を許される場合が時にはある(その代表例は第4図にも示されている)。ウィン ドウを表すアウトラインはフル・ウィンドウ(またはスプライト)が隠されるの と同じように、また同じ理由でフォアラウンド・ウィンドウによって隠される。 これは、小さなウィンドウが大きなフォアグラウンド・ウィンドウの下にドラッ グされると、上述したようにスプライトをドラッグした場合と同じように、アウ トラインが完全に見えなくなるので、混乱することになる。ウィンドウは、本発 明によれば、スプライトと同じように処理できるので、この混乱は同じように回 避される。 しかし、スプライトの処理の他に、移動するウィンドウまたはビュー(グラフ ィック・データとコントロール・アイテムまたは「ツール」の両方を含んでいる )は、スクリーン上のすべてのドローイング活動を凍結することが好ましい。そ うすれば、スクリーンの以前に隠されていなかったエリアのバッファリングが可 能になるが、変化するイメージの大きなエリアをコンポジティングするときの計 算負担から生じる応答時間が大幅に増加することはない。ウィンドウ・アウトラ インは大きくなり、単純化される傾向にあるので、特に最適化するのに格好の候 補である。ウィンドウ・オープニングや「アンドゥ」(undo)アニメーションなど の、ラバーバンディング(rubberbanding)、ウィンドウ再サイジング(resizing) およびスクリーン・アニメーションは、ウィンドウ・アウトラインと同じように 表示される。 上述したように、必要とするハードウェアと処理オーバヘッドを最小化するた めには、オーバラップまたは交差しているオブジェクトの検出がコンポジティン グをいつ行うかの判断の基礎になっている。以下では、本発明による好ましい探 索ストラテジの実現方法について説明する。第6図は、ディスプレイ・スクリー ンの概念化した部分の例を示す図である。ウィンドウ3のDの個所のアクティブ ・ドローイングは、ウィンドウ1が不透明であるので、ウィンドウ1の内側のス プライトAと交差することはできない。これがウィンドウ4内のスプライトCと も交差できないのは、ウィンドウ4がウィンドウ3の下にあるためである。しか し、スプライトBは透明ウィンドウ2の内側にあり、ウィンドウ2はウィンドウ 3にオーバラップしている。通常、このようになっていると、スプライトBは交 差の候補となるが、この場合には、ウィンドウ2の境界はスプライトDの個所の アクティブ・ドローイングの境界と交差していないので、取り囲まれたスプライ トはいずれも交差することができない。他方、ライン650は透明ウィンドウ2と 交差しているので、ライン650については透明ウィンドウと共にコンポジティン グが行われるはずである。 好ましい探索ストラテジは、ビューまたはウィンドウ内のコンポジット・アイ テムをグループ化して交差テストとウィンドウ・レンダリングを行いやすくする ように実現されている。そのような理由から、スクリーン・フレーム・ バッファからサブクラス化したオブジェクトの下方バッファ・グループ・クラス (beneath buffer group class-BBG)を用意しておくと、本発明を実施する上で好 都合である。BBGは、特定のウィンドウ内のコンポジット・アイテムに関連する 下方バッファのリストを維持している。第7図は、この側面から見たアーキテク チャを示す図である。ピクセル・バッファは、フレーム・バッファ・デバイスに ピクセル値をバッファリングするために使用される。バウンド・レクタングル(b ounds rectangle)651は即時に検査されて、ウィンドウ内の下方バッファで、ア クティブ・ドローイングと交差するおそれのものがあるかどうかが判断される。 BBGのリストは、フレーム・バッファによって共有メモリに維持されている。共 有メモリが実装されていると、オーバラップしているコンポジット・アイテムを 各ドローイング・コール時に判断するとき必要になるプロセス間通信(interproc ess communication)を省くことができる。ピクセル・バッファは、下方バッファ が特定のスプライトのために作成されたとき、その下方バッファからのスプライ ト・バッファからピクセル値を入手する。 クリッピングとコンポジティングは、オブジェクトまたはアイテムをどのよう にレンダリングするかの情報を収めている下方バッファ基底クラス(base class) でサポートされている。クリッピングとコンポジティングは相互に排他的である ので、1つのメソッド・コールに一本化することはできない。下方バッファの特 定サブクラスはクリッピングかコンポジティングのどちらかを実装し、両方を実 装することはない。サブクラスは、クリッピングを使用すべきか、コンポジティ ングを使用すべきか(つまり、どちらのメソッドをコールすべきか)をコンポジ ティング・アーキテクチャに判断させるタイプのメソッドを無効化(override)す る。コンポジティングを実装するサブクラスは「コンポジティング」下方バッフ ァと呼ばれるのに対し、クリッピングを実装するサブクラスは「クリッピング」 下方バッファと呼ばれる。不透明アイテムは、効率性に応じてクリッピングとコ ンポジティングのどちらでも使用できるが、半透明アイテムは正しい結果を得る ためにコンポジティング下方バッファを使用しなければならない。これらの一般 タイプの2下方バッファの他に、サブクラス化(subclassing)によると、コンポ ジット・アイテムの特定タイプ別の記憶とコンポジティングの実装を最適化 することができる。例えば、ラバーバンドは、スパース(sparse-疎)で動的性格 をもつラバーバンドに適した特殊下方バッファ・サブクラス上に構築することが 可能である。 第6図に示すように、アプリケーションは、ウィンドウ3でライン650を引こ うとしているが、ウィンドウ3は不透明ウィンドウ1と半透明ウィンドウ2の下 にある。コンポジット・アイテムは8つあり(この例では、スプライトA-H)、 これらは引こうとしているラインにオーバラップする可能性がある。効率化のた めに、交差テスト(intersection test)は、実際に交差する可能性のあるスプラ イトだけに対して行われる。スプライトCが交差することがないのは、これがウ ィンドウ4にあり、ウィンドウ4がウィンドウ3の下にあるためである。スプラ イトAが交差することがないのは、これが不透明ウィンドウ1にあるためである 。交差テストは、ライン650と同じウィンドウにあるスプライトDとEとH、透 明ウィンドウ2にあるスプライトBとG、およびデスクトップ・スプライトであ るスプライトFに対して行わなければならない。 第8図は対応するBBGリストを示している。各BBGは特定のウィンドウまたはビ ュー内に置かれている、コンポジット・アイテムに対応する下方バッファ(第7 図にOとnの基数表記(cardinality designation)で示されている)のリストを 維持している。また、各BBGは、次のBBGと次に関心のあるBBGを指している、少 なくとも2つのポインタをもっている。「関心のある」BBGとは、下位層でドロ ーイングに交差する可能性のあるスプライトを含んでいるようなBBGである。例 えば、BBG1とBBG2の間では、これらのポインタが同じになっているのは、ウィン ドウ1とウィンドウ2が交差しないためである。不透明BBGが関心のあるBBGとな らないのは、下位層でのレンダリングがこれらに、あるいは取り囲まれたコンポ ジット・アイテムに影響しないからである。さらに、交差テストを行いやすくす るために、第8図に示すリスト中の各BBGは、その下方バッファを指しているポ インタをもっている。 ライン650を引くことを始める前に、交差テストは矢印で示すようにBBG3から 始められる。下位層のスプライトは、交差に関しては無視しても構わない。下方 バッファ5,6および8は交差テストが行われる。次に、関心のあるBBGポイン タはBBG2までトラバース(traverse-走査)される。これにより、BBGIでの無用な テストが防止される。BBG2の境界は引こうとするラインの境界と交差しているの で、BBG2内のすべてのコンポジット・アイテムはテストしなければならない。従 って、交差テストは下方バッファ2と3に対して行われる。最後に、関心のある BBGポインタはデスクトップBBGまでトラバースされる。デスクトップBBGの境界 は、デバイス全体をカバーしているので、これもラインの境界と交差するので、 交差テストが下方バッファ1に対して行われる。 どのピクセルもペイントするためには、その前に、特定のペイント・オペレー ション(カラー、トランスファ・モード、およびパターンを指定する)に基づい てTPainterを作成しておかなければならない。コンポジティング・アーキテクチ ャが要求する同期条件を満足するためには、レンダラ(renderer)は、TDrawingLo ckと名づけたスタック・ベースのオブジェクト(stack-based object)を通してペ インタを取得しなければならない。TDrawingLockは、簡単に言えば、スタック・ ベースのラッパ(stack-based wrapper)であり、例外処理を行っているとき資源 を回復する目的だけに存在するものである。プリミティブ(primitive)がレンダ リングされる前に、レンダラは、次のようなコードを実行しなければならない。 TDrawing1ock myLock(thePaint,deviceCache); TDrawingLockは、thePaintに対応するペインタをdeviceCacheに要求することに より、簡略TPainterオブジェクトを取得する。デバイス・キャッシュは、該当す るTPainterをすでにそのキャッシュにもっている場合がある。そうでなければ、 それを作成する。 TDrawingLockが作成されたあと、レンダラは必要とするどのような種類の準備 または計算でも、自由に行うことができる。ロックが実際に獲得されるのは、ラ ンダラがなんらかのピクセルをペイントする準備状態になったときである。この 時点で、レンダラはTPainterオブジェクト上のメソッドをコールする必要がある が、メソッドをまだもっていない。そこでlockにメソッドを要求して取得する。 lockメソッドは、まず、共有フレーム・バッファのエリアをロックダウンするこ とが好ましく、そうすれば、このレンダリング・タスクが排他的にアクセスする ことができる。スプライト、コンポジット・アイテムまたは他のドローイング・ タスクは、このロックが取得される時間の間干渉することは許されない。第2に 、lockメソッドは、オーバラップするコンポジット・アイテムの下にレンダリン グするとき必要とされる、いずれかのコンポジティング・オペレーションを実行 できる動的ペインタを作成することが好ましい。 レンダラは、変更しようとするエリアのバウンディング・レクタングル(方形 境界線)を判断し(これはプリミティブ全体の境界と同じように単純であること もあれば、次のいくつかのペインタ・コールだけをカバーするサブレクタングル であることもある)、これをlockメソッド・オブジェクトに引き渡す。なお、lo ckはこの要求の一部だけを許可することを決定する場合がある。lockからは最後 のスキャン・ライン(走査線)のY座標が返却され、レンダラはロックを再獲得 しなくても、それをアクセスすることが許される。 本発明のこの特徴によれば、ドローイング・ロックは、コンポジット・アイテ ムが存在するかどうかに応じて、異なるペインタを返却することができる。例え ば、第9図に示すケースを検討することにする。長い対角線900は、カーソルの 1つのピクセルと交差している。ドローイング・ロックがラインのバウンディン グ・レクタングル全体に対応する1つのペインタだけを返却することを許されて いれば、事物全体に対して非常に高価なペインタを返却しなければならないこと になる。その代わりに、lockは、ラインの一部だけを収めている、901と名づけ たサブレクタングルに対してダイレクト・ペインタ(direct painter)を返却する ことができる(これにより、事実上コンポジティングは無効化される)。レンダ ラはレクタングル901内のライン部分をレンダリングしたあと、バウンド・レク タングルの残余部分またはラインの残余部分のバウンド・レクタングルに対する ロックを獲得しようとする。その間にカーソルが動いていなければ、lockはコン ポジティング・ペインタと変更されたY値を返却し、可能な限り小さなエリア( オブジェクト、つまり、ラインとカーソルの1つの組合せを含んでいるレクタン グル902)で高価なペインタが使用されるようにする。最後に、レンダラは三回 目のロックを獲得し、サブレクタングル903のためのダイレクト・ペインタを取 得するが、このサブタングルは、レクタングル901と同様に、ラインだけを含ん でいる。この種のオペレーションによると、少数のピクセルだけがコンポジティ ングを必要とするとき、処理時間が大幅に削減されるので、単一のピクセルをコ ンポジティングするとき(例えば、カーソルのホットスポット(hot spot)の場合 )最適化される特殊ケース・プロセスで行うことが好ましい。 スクリーン・フレーム・バッファ・クラス内のオブジェクトは、ある与えられ たバウンド・レクタングルと交差するすべてのコンポジット・アイテムにわたっ てイタレータ(iterator:反復子)を返却するメソッドを提供する。 TBeneathBufferIterator MScreenFrameBuffer::CreateBeneathBufferIterator(c onst TLongRect& bounds,const TGrafState&); このコールは、バウンド・レクタングルにオーバラップするすべての下方バッフ ァにわたって繰り返すイタレータを作成するが、交差する下方バッファが見つか らなければNILを返却する(これは空のイタレータが作成されるのを禁止するの で速度が最適化される)。TGrafStateパラメータは、現ウィンドウに対応するBB Gを指すポインタを含んでいる。このウィンドウの下のウィンドウ内のコンポジ ット・アイテムは無視しても構わない。 CreateBeneathBufferIteratorからNILが返されたときは、オブジェクトのドロ ーイングを開始するコマンド(StartDrawing)は、簡略ペインタを返してくるので 、レンダラはこれを使用して、スクリーン上に直接にドローイングする。Create BeneathBufferIteratorから返却されたポインタが非NILポインタならば、イタレ ータ・インタフェースが有用になる。交差する下方バッファのリストは、そのあ とに続く処理のときに前方向と逆方向にトラバースされなければならない。イタ レータ(TBeneathBufferIterator)は、すべての非交差下方バッファを考慮外にお くことにより、以後に行われるトラバースを最適化する。ペインタが返却される が、これは、クリッピングまたはコンポジティングの動的に選択されたコンポジ ティング・ストラテジを実装している。 レンダラは、次に、返却されたペインタを使用してプリミティブをドローイン グする。これらが終わると、レンダラはドローイング・ロックの解除を要求する 。これにより、コンポジティング・アーキテクチャはコンポジティング・オペ レーションを終了し、その結果をスクリーンへ転送し、スプライト移動を可能に し、場合によっては、コンポジティング・ペインタおよび関連のデータ構造を削 除する。 本発明のオペレーションの例として、第10図に示すように、複数のコンポジテ ィング下方バッファがレンダリングしようとするプリミティブの境界に交差して いると、コンポジット・アイテムは相互にオーバラップする可能性があるので、 正しい結果を得るためには複数のコンポジティング・ステップと下方バッファの 更新が必要になる。第10図に示すように、ユーザは、半透明レッド・カーソル10 02を使用して半透明グリーン・オブジェクト1005をドラッグしようとしている。 これと同時に、別のスレッドは、ドラッグされるオブジェクト1005の現在位置の 下にブルー・ライン1001を引こうとしている。ラインがスプライトと交差してい ない個所にはブルー・ピクセルが、ラインがグリーン・オブジェクトと交差する 個所(1004)にはシアン・ピクセルが、ラインがグリーン・オブジェクトとレッド ・カーソルの両方と交差する個所(1003)にはダークピンク・ピクセルが表示され るはずである。透明レッド・カーソルは、それがドラッグされるグリーン・オブ ジェクトの上に重なっている個所ではイエローで現れる。 上記のような場合には、ドローイング・ロックは、レンダラがラインを短い線 分(segment)で引くように強制する。ある線分は簡略ペインタを用いてスクリー ンに直接に引くことができ、別の線分は短パイプライン・ペインタを使用し(ラ インがグリーン・スプライトだけで隠される個所に)、ラインが両方のオブジェ クトで隠される個所にはもっと高価な複数オブジェクト・コンポジティング・ペ インタが使用される。 複数オブジェクト・コンポジティングの場合のペインタは、バウンド・レクタ ングルの交差と同一サイズのバッファを作成する。これはスクリーン内容をコピ ーしてバッファに入れ、各コンポジット・アイテムの下方バッファの内容をコピ ーしてバッファに入れることによって内容を「アンワインド(unwind)」する。最 終的には、レンダラは、スクリーン・ピクセルのイメージをすべてのコンポジッ ト・アイテムの下に構築している。次に、レンダラは線分を引いてこのバッファ に入れる。StopDrawing メソッドによると、各コンポジット・アイテムは再 結合されてバッファに入れられて、最終結果がスクリーンにフラッシュ(flush) される。 TBeneathBufferIteratorは、上から下へ向かってリストをトラバースしてコン ポジット・アイテムを「アンドロー」(undraw)するときにも、再コンポジティン グ時に下から上へ向かってトラバースするときにも、有用なインタフェースとな っている。第11図は、2つの不透明コンポジット・アイテムがアクティブ・ドロ ーイングと交差するとき、これがどのような働き方をするかを示している。第11 図に示すように、不透明カーソルは、ラインを両方の下に引かなければならない とき、不透明の星形オブジェクトをドラッグしている。ステップAでは、第12A 図に示すように、第11図のバウンディング領域1104に対応して新しいコンポジテ ィング領域が割り振られる。次に、第12B図に示すように、星形オブジェクトか らの形状領域はマージされてコンポジティング領域に入れられる(ステップB) 。コンポジティング領域のこの部分にあるピクセルは、ペイントして星形の下方 バッファに入れる簡略ペインタを指している。第12C図に示すように、カーソル に属する形状領域はステップCでマージされ、これらのピクセルは、ペイントし てカーソルの下方バッファに入れるペインタを指している。ここで触れておきた いことは、カーソルの形状領域は、星形の形状領域によってまだカバーされてい ないエリアだけでマージされて、カーソルの下方バッファに入れられることであ る。これは、星形がカーソルの下にあるためである。2つがオーバラップすると きは、星形の下方バッファは、ラインで書かれたピクセルがカーソルの下方バッ ファに到達する前に、これらのピクセルをインターセプトしなければならない。 複数オブジェクト・クリップ・ペインタが返却されると、すべてのペインタ・コ ールがインターセプトされて、コンポジティング領域が示すように該当のペイン タへ転送される。単一ペインタ・コールは、コンポジティング領域内の異なるデ スティネーション(宛先)へ転送されるピクセルに影響を与える場合には、複数 ペインタ・コールに分割することが可能である。完了すると、コンポジティング 領域は削除される。それ以降のピクセル転送は不要である。スクリーンと下方バ ッファはすでに更新されているからである。ステップDで、コンポジティング領 域は削除される。 以上説明してきたことから理解されるように、本発明が提供するアーキテクチ ャによれば、不透明、半透明および透明グラフィック・イメージの交差を即時に 検出して、オーバラップしている領域が高速に変化するときでも正しくレンダリ ングすることができる。また、本発明によれば、必要なハードウェア記憶量が最 小化され、レンダリング速度が動的に最適化されると共に、マルチタスキングと マルチウィンドウ・ディスプレイがサポートされる。
【手続補正書】特許法第184条の8 【提出日】1995年7月12日 【補正内容】 請求の範囲 1.複数のオーバラップする不透明のおよび不透明でないグラフィック・イメー ジ(530,540,510b)からコンポジット・グラフィック・イメージ(110)を生成する 方法であって、前記各複数のグラフィック・イメージは複数のグループのひとつ に含まれ、ひとつのグループ内で、前記グラフィック・イメージは、前記グルー プの他のイメージと相対的な観察者(viewer)からの前記グラフィック・イメージ の視覚上の距離を決定する深さのレベルで表示され、前記各複数のグループは、 その他のグループと相対的な前記観察者(viewer)からの前記各グループの視覚上 の距離を表わすグループ・レベルに関連している(第1b図)前記方法において、 (a)前記複数のグラフィック・イメージからアクティブ・イメージを選び、前 記アクティブ・イメージが位置している前記複数のグループのうちのひとつを決 定し(530)、 (b)前記アクティブ・イメージが前記ひとつのグループに位置しており、かつ 、より大きい深さのレベルをもつグラフィック・イメージと交差しているかどう かを判別し(第7図)、 (c)前記ひとつのグループより高位のグループ・レベルをもつ前記複数のグル ープのどれかにあるグラフィック・イメージが前記アクティブ・イメージと交差 しているかどうかを判別し(510b,530,540)、 (d)交差した不透明でないイメージと前記アクティブ・イメージを結合して前 記コンポジット・グラフィック・イメージを生成する(第5図) ステップを具備することを特徴とする方法。 2.(e)共通基底クラスのバッファ・サブクラスから各前記複数のグラフィック ・イメージに対する下方バッファ・オブジェクトをダイナミックに生成し、前記 下方バッファ・オブジェクトは、前記各グラフィック・イメージを含むグループ とリンクされ、前記イメージの深さのレベルを表わす深さの順序をもつ(第7図 ) ステップをさらに具備することを特徴とする請求の範囲第1項に記載の方法。 3.前記ステップ(e)が、 (e1)前記各複数のグループに対する下方バッファ・グループ・オブジェクトを 生成し、グループに対する前記下方バッファ・グループ・オブジェクトが前記グ ループに含まれる下方バッファ・オブジェクトへのポインタをもち、前記グルー プに含まれる前記下方バッファ・オブジェクトに対するリンクを提供する(第7 図と第8図) ステップをさらに具備することを特徴とする請求の範囲第2項に記載の方法。 4.(f)ピクセルがそこからレンダリングされるピクセル・バッファ・オブジェ クトを、前記共通基底クラスのピクセル・サブクラスから生成する ステップをさらに具備し、 ステップ(d)が (d1)前記アクティブ・イメージを前記交差したイメージと結合させ、前記結合 を前記ピクセル・バッファ・オブジェクトへ置く(第7図) ステップを具備することを特徴とする請求の範囲第3項に記載の方法。 5.前記共通基底クラスが仮想メソッドを具備し、かつ前記ステップ(e)が (e2)各バッファ・サブクラスの前記仮想メソットをオーバライドするサブクラ スから前記下方バッファ・オブジェクトを生成し、 前記ステップ(f)は (f1)前記ピクセル・サブクラスの前記仮想メソッドをオーバライドするサブク ラスから前記ピクセル・バッファ・オブジェクトを生成し、前記ピクセル・バッ ファ・オブジェクトに置かれた結合データが、イメージデータを定義するタイプ に基づいて下方バッファ・オブジェクトあるいはピクセル・バッファ・オブジェ クトをダイナミックに選択することにより、下方バッファ・オブジェクトが前記 イメージ・データをインターセプトすることを可能にする(第8図) ステップを具備することを特徴とする請求の範囲第4項に記載の方法。 6.前記ステップ(d)が、 (d1)前記アクティブ・イメージと交差するイメージとの最小の交差で定義され る前記アクティブ・イメージの領域をロックして、ロックされるイメージ・デー タの量を最小化する ステップを具備することを特徴とする請求の範囲第1項に記載の方法。 7.前記アクティブ・イメージと前記交差したイメージとのふたつの共通の範囲 のうちの小さい方で前記領域を定義すること(第10図)を特徴とする請求の範囲 第5項に記載の方法。 8.(g)そのサロゲート(surrogate)・イメージ・オブジェクトが前記アクティブ ・イメージの深さのレベルからひとつ下位のレベルの深さのレベルをもつ前記ア クティブ・イメージを表わすサロゲート・イメージ・オブジェクトを生成し、 (h)ステップ(b)と(c)にしたがって前記サロゲート・イメージが他のイメージ と交差するかどうかを判別し、 (i)ステップ(g)で判別される前記交差で定義される前記アクティブ・イメージ の前記部分をクリッピングし、ステップ(d)にしたがって前記アクティブ・イメ ージの残りの部分を結合する(第4図) ステップをさらに具備することを特徴とする請求の範囲第2項に記載の方法。 9.複数のオーバラップする不透明のおよび不透明でないグラフィック・イメー ジ(530,540,510b)からコンポジット・グラフィック・イメージ(110)を生成する 装置であって、前記各複数のグラフィック・イメージは複数のグループのひとつ に含まれ、ひとつのグループ内で前記グラフィック・イメージは前記グループの 他のイメージと相対的な観察者からの前記グラフィック・イメージの視覚上の距 離を決定する深さのレベルで表示され、前記各複数のグループは、その他のグル ープに関し前記観察者からの前記各グループと相対的な視覚上の距離を表わすグ ループ・レベルに関連している(第1b図)前記装置において、 (a)前記複数のグラフィック・イメージからアクティブ・イメージを選ぶ手段 と、前記アクティブ・イメージの選択に応じて前記アクティブ・イメージが位置 している前記複数のグループのうちのひとつを決定する手段(530)と、 (b)前記複数のグラフィック・イメージに応じて、前記ひとつのグループに位 置しており、かつ、より大きい深さのレベルをもち前記アクティブ・イメージと 交差するグラフィック・イメージを判別する第1手段(第7図)と、 (c)前記複数のグラフィック・イメージに応じて、前記ひとつのグループより 高位のグループ・レベルをもつ前記複数のグループのどれかにありそして前記ア クティブ・イメージと交差するグラフィック・イメージを判別する第2手段(510 b,530,540)と、 (d)前記第1判別手段と前記第2判別手段により判別された前記複数のグラフ ィック・イメージのいくつかに応じて、前記アクティブ・イメージを交差するす べての不透明でないイメージと結合して前記コンポジット・グラフィック・イメ ージを生成する手段(第5図)と を具備することを特徴とする装置。 10.(e)前記複数のグラフィック・イメージに応じて、共通基底クラスのバッフ ァ・サブクラスから各前記複数のグラフィック・イメージに対する下方バッファ ・オブジェクトをダイナミックに生成し、前記下方バッファ・オブジェクトは、 各前記グラフィック・イメージを含むグループとリクされ、前記イメージの深さ のレベルを表わす深さの順序をもつ手段(第7図)と をさらに具備することを特徴とする請求の範囲第9項に記載の装置。 11.前記下方バッファ・オブジェクト生成手段が、前記複数の下方バッファ・グ ループに応じて前記各複数の下方バッファ・グループに対する下方バッファ・グ ループ・オブジェクトを生成する手段をさらに具備し、グループに対する前記下 方バッファ・グループ・オブジェクトが前記グループに含まれる下方バッファ・ オブジェクトへのポインタをもち、前記グループに含まれる前記下方バッファ・ オブジェクトに対するリンクを備えること(第7図と第8図)を特徴とする請求 の範囲第10項に記載の装置。 12.ピクセルがそこからレンダリングされるピクセル・バッファ・オブジェクト を、前記共通基底クラスのピクセル・サブクラスから生成する手段と、前記アク ティブ・イメージおよび前記第1判別手段と前記第2判別手段により判別された 前記複数のグラフィック・イメージのいくつかに応じて、前記アクティブ・イメ ージを前記交差したイメージと結合させ、前記結合を前記ピクセル・バッファ・ オブジェクトへ置く手段をさらに具備すること(第7図)を特徴とする請求の範 囲第1項に記載の装置。 13.前記共通基底クラスが仮想メソッドを具備し、前記下方バッファ・オブジェ クト生成手段が各バッファ・サブクラスの前記仮想メソッドをオーバライドする サブクラスから前記下方バッファ・オブジェクトを生成する手段を具備し、前記 ピクセル・バッファ・オブジェクト生成手段が前記ピクセル・サブクラスの前記 仮想メソッドをオーバライドするサブクラスから前記ピクセル・バッファ・オブ ジェクトを生成する手段を具備し、前記ピクセル・バッファ・オブジェクトに置 かれた結合データが、イメージ・データを定義するタイプに基づいて下方バッフ ァ・オブジェクトまたはピクセル・バッファ・オブジェクトをダイナミックに選 択し下方バッファ・オブジェクトが前記イメージ・データをインターセプトする ことを可能にすること(第8図)を特徴とする請求の範囲第12項に記載の装置。 14.第2判別手段が、前記アクティブ・イメージと交差するイメージとの最小の 交差で定義される前記アクティブ・イメージの領域をロックしてロックされるイ メージ・データの量を最小化する手段を具備すること(第9図)を特徴とする請 求の範囲第9項に記載の装置。 15.前記アクティブ・イメージと前記交差するイメージとの2つの共通の範囲の うちの小さい方で前記領域を定義すること(第10図)を特徴とする請求の範囲第 14項に記載の装置。 16.(f)前記アクティブ・イメージ・オブジェクトに応じて、そのサロゲート・ イメージ・オブジェクトが前記アクティブ・イメージの深さのレベルからひとつ 下位のレベルの深さのレベルをもつ前記アクティブ・イメージを表わすサロゲー ト・イメージ・オブジェクトを生成する手段と、 (g)前記サロゲート・イメージ・オブジェクトに応じて、前記サロゲート・イ メージが、前記第1判別手段と前記第2判別手段とにより判別される他のイメー ジと交差するかどうかを判別する手段と、 (h)前記イメージ交差手段により判別される前記交差で定義される前記アクテ ィブ・イメージの部分に応じて、前記アクティブ・イメージの残りの部分を結合 し前記コンポジット・グラフィック・イメージを生成する手段(第4図)と をさらに具備することを特徴とする請求の範囲第10項に記載の装置。
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,DE, DK,ES,FR,GB,GR,IE,IT,LU,M C,NL,PT,SE),OA(BF,BJ,CF,CG ,CI,CM,GA,GN,ML,MR,NE,SN, TD,TG),AT,AU,BB,BG,BR,BY, CA,CH,CN,CZ,DE,DK,ES,FI,G B,HU,JP,KP,KR,KZ,LK,LU,LV ,MG,MN,MW,NL,NO,NZ,PL,PT, RO,RU,SD,SE,SK,UA,UZ,VN

Claims (1)

  1. 【特許請求の範囲】 1.データ・プロセシング・システムのディスプレイの領域で交差する可能性の ある複数のグラフィック・イメージをレンダリングする方法であって、 (a) 複数のグラフィック・イメージをいくつかのグループに分割するステップ であって、各グループはレベルをもち、グループ内の各イメージはそのグループ 内でレベルをもっているものと、 (b) アクティブ・イメージを含んでいるグループ内のイメージがそのアクティ ブ・イメージと交差しているかどうかをテストするステップであって、このテス ト・ステップは、アクティブ・イメージを含んでいるグループを他のグループと 突き合わせてテストして交差するイメージを含むことができないグループを判別 することを含んでいるものと、 (c)テスト・ステップで交差が検出されたとき、下位レベル・イメージからの イメージ・データをインターセプトするステップとからなることを特徴とする方 法。 2.請求の範囲第1項に記載の方法において、グラフィック・イメージの2つま たはそれ以上が交差している個所の、ディスプレイの領域の境界に従って選択さ れた選択ロケーションで、複数のイメージのうちのイメージをサブイメージに分 割するステップを含んでいることを特徴とする方法。 3.請求の範囲第2項に記載の方法において、選択ロケーションは、グラフィッ ク・イメージの2つまたはそれ以上が交差している個所の、ディスプレイの領域 の境界のうち少なくとも1つのバウンディング・レクタングルを含むことを特徴 とする方法。 4.イメージ・コンポジティング方法であって、 (a)複数のアイテムの各々に対応するイメージ・データを生成するステップで あって、各アイテムはレベルをもっているものと、 (b)アイテムの1つひとつの交差を検出するステップと、 (c)交差を検出するステップで交差が検出されると、比較的に下位レベルをも つアイテムに対応するイメージ・データをインターセプトするステップと、 (d)イメージ・データをインターセプトするステップでインターセプトされた イメージ・データを、バッファおよび動的に選択されたペインタの少なくとも一 方へ転送するステップとからなることを特徴とする方法。 5.請求の範囲第4項に記載の方法において、バッファを動的に作成し、削除す るステップを含んでいることを特徴とする方法。 6.請求の範囲第4項に記載の方法において、イメージ・データを少なくとも2 つのペインタの一方へ転送するステップを含み、少なくとも2つのペインタの少 なくとも一方は、あるロケーションで交差していると検出された特定数のイメー ジをドローイングするように最適化されていることを特徴とする方法。 7.オーバラップしている可能性のあるグラフィック・イメージを表示する方法 であって、 (a)グラフィック・イメージのオーバラップしている部分の深さ順序を検出す るステップと、 (b)深さ順序を検出するステップで深さ順序が検出されると、グラフィック・ イメージを表すデータをペインタへ選択的に送るステップと、 (c)少なくとも1つのグラフィック・イメージの少なくとも1つのオーバラッ プされた部分であって、少なくとも1つのグラフィック・イメージの少なくとも 1つのオーバラップされた部分を隠している、別のグラフィック・イメージの部 分の深さより大きい深さをもつものを下方バッファにストアするステップとを含 んでいることを特徴とする方法。 8.請求の範囲第7項に記載の方法において、グラフィック・イメージの各々の 不透明を検出するステップを含んでいて、データを選択的に送るステップは少な くとも1つのグラフィック・イメージを表すデータをインターセプトして、下方 バッファへ転送するステップをさらに含んでいることを特徴とする方法。 9.請求の範囲第7項に記載の方法において、データを下方バッファからペイン タへ転送するステップを含んでいることを特徴とする方法。 10.ディスプレイ上のグラフィック・イメージをレンダリングする方法であって 、 (a)一定順序に並んだ複数のイメージ・データに基づいてイメージ値を生成す るステップであって、イメージ・データはグラフィック・イメージの少なくとも 2つの相対的深さ層に従って順序付けされているものと、 (b)少なくとも1つのグラフィック・イメージの少なくとも1つのオーバラッ プされた部分であって、少なくとも1つのグラフィック・イメージの少なくとも 1つのオーバラップされた部分を隠している、別のグラフィック・イメージの部 分の深さより大きい深さをもつものを下方バッファにストアするステップとを含 んでいることを特徴とする方法。 11.請求の範囲第10項に記載の方法において、データを下方バッファからペイン タへ転送するステップをさらに含んでいることを特徴とする方法。 12.ディスプレイ・コンポジティング方法であって、 (a)それぞれのグラフィック・イメージを表すデータをストアするための複数 の下方バッファを作成するステップと、 (b)下方バッファを、ウィンドウが現れるときのウィンドウの深さに従ってグ ループ化するステップとを含んでいて、下方バッファをグループ化するステップ は、 (c)少なくとも1つのグループから、そのグループが含んでいる各下方バッフ ァを指しているポインタを作成するステップと、 (d)下位の深さにある次のグループを指しているポインタを作成するステップ と、 (e)少なくとも1つのグループ内のイメージと交差する可能性のあるグラフィ ック・イメージを表すデータを含んでいる各グループを指しているポインタを作 成するステップとを含んでいることを特徴とする方法。 13.ディスプレイ方法であって、 (a)ディスプレイ上の少なくとも1つのウィンドウを移動するステップと、 (b)ディスプレイ上のウィンドウを移動するステップでウィンドウが移動され ると、ディスプレイ上のドローイング活動を凍結するステップと、 (c)ディスプレイ上の少なくとも1つのエリアをバッファリングするステップ とを含んでいることを特徴とする方法。 14.コンポジティング・ディスプレイ方法であって、 (a)表示しようとするオブジェクトと境界を接しているスクリーン領域につい てドローイング・ロックを要求するステップと、 (b)スクリーン領域にコンポジット・アイテムがあるかどうかをチェックする ステップと、 (c)1つまたは2つ以上のオブジェクトの単一組合せだけを含んでいる、スク リーン領域の第1領域についてドローイング・ロックを許可するステップと、 (d) 1つまたは2つ以上のオブジェクトの単一組合わせに対応するペインタ をコールするステップと、 (e)ドローイング・ロックを解除するステップとを含んでいることを特徴とす る方法。 15.請求の範囲第14項に記載の方法において、 (a)スクリーン領域に残っている第2スクリーン領域でドローイング・ロック を要求するステップと、 (b)コンポジット・アイテムがあるかどうかをチェックするステップ、第2ス クリーン領域の少なくとも一部についてドローイング・ロックを許可するステッ プ、ペインタをコールするステップ、およびドローイング・ロックを解除するス テップを繰り返すステップとを含んでいることを特徴とする方法。 16.データ・プロセシング・システムのディスプレイの領域で交差する可能性の ある複数のグラフィック・イメージをレンダリングする方法であって、 (a)複数のグラフィック・イメージをいくつかのグループに分割するステップ と、 (b)アクティブ・イメージを含んでいるグループ内のイメージがそのアクティ ブ・イメージと交差しているかどうかをテストするステップであって、このテス ト・ステップは、アクティブ・イメージを含んでいるグループを他のグループと 突き合わせてテストして交差するイメージを含むことができないグループを判別 することを含んでいるものと、 (c)テスト・ステップで交差が検出されたとき、下位レベル・イメージからの イメージ・データをインターセプトするステップとからなることを特徴とする方 法。 17.請求の範囲第16項に記載の方法において、ラバーバンディングされたイメー ジをアクティブ・イメージとして表示するステップを含んでいることを特徴とす る方法。 18.請求の範囲第17項に記載の方法において、カーソルをアクティブ・イメージ として表示するステップを含んでいることを特徴とする方法。 19.請求の範囲第18項に記載の方法において、スプライトをアクティブ・イメー ジとして表示するステップを含んでいることを特徴とする方法。 20.データ・プロセシング・システムのディスプレイの領域で交差する可能性の ある複数のグラフィック・イメージをレンダリングする装置であって、 (a)プロセッサと、 (b)プロセッサに接続され、その制御を受けるメモリと、 (c)プロセッサに接続され、その制御を受けるディスプレイと、 (d)複数のグラフィック・イメージをメモリにストアし、該複数のグラフィッ ク・イメージをいくつかのグループに分割する手段と、 (e)アクティブ・イメージを含んでいるイメージ・グループがディスプレイ上 でそのアクティブ・イメージと交差しているかどうかをテストする手段であって 、該テスト手段は、アクティブ・イメージを含んでいるグループを他のグループ と突き合わせてテストして、交差するイメージを含むことができないグループを 判別する手段を含んでいるものと、 (f)ディスプレイ上でテスト手段によって交差が検出されたとき、メモリ内の イメージ・データをインターセプトする手段とを備えていることを特徴とする装 置。
JP50401295A 1993-07-09 1994-01-03 ディスプレイ・コンポジティング・システム Expired - Lifetime JP3522275B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/089,924 US5487145A (en) 1993-07-09 1993-07-09 Method and apparatus for compositing display items which minimizes locked drawing areas
US08/089,924 1993-07-09
PCT/US1994/000059 WO1995002236A1 (en) 1993-07-09 1994-01-03 Display compositing system

Publications (2)

Publication Number Publication Date
JPH08512412A true JPH08512412A (ja) 1996-12-24
JP3522275B2 JP3522275B2 (ja) 2004-04-26

Family

ID=22220243

Family Applications (1)

Application Number Title Priority Date Filing Date
JP50401295A Expired - Lifetime JP3522275B2 (ja) 1993-07-09 1994-01-03 ディスプレイ・コンポジティング・システム

Country Status (7)

Country Link
US (1) US5487145A (ja)
EP (1) EP0698265B1 (ja)
JP (1) JP3522275B2 (ja)
AU (1) AU5989594A (ja)
CA (1) CA2144871A1 (ja)
DE (1) DE69405225D1 (ja)
WO (1) WO1995002236A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004354896A (ja) * 2003-05-30 2004-12-16 Matsushita Electric Ind Co Ltd 描画処理装置及び描画処理方法

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5586243A (en) * 1994-04-15 1996-12-17 International Business Machines Corporation Multiple display pointers for computer graphical user interfaces
US5546518A (en) * 1995-01-06 1996-08-13 Microsoft Corporation System and method for composing a display frame of multiple layered graphic sprites
US5966136A (en) * 1995-04-12 1999-10-12 Hewlett-Packard Co. Efficient method for clipping numerous objects against an arbitrary clipping path
US5880739A (en) * 1995-06-06 1999-03-09 Compaq Computer Corporation Blitting of images using instructions
US5767851A (en) 1996-01-29 1998-06-16 Sun Microsystems, Inc. Method and apparatus for emulating an environment's drag and drop functionality in a host environment
US6317128B1 (en) 1996-04-18 2001-11-13 Silicon Graphics, Inc. Graphical user interface with anti-interference outlines for enhanced variably-transparent applications
US6118427A (en) * 1996-04-18 2000-09-12 Silicon Graphics, Inc. Graphical user interface with optimal transparency thresholds for maximizing user performance and system efficiency
US5764229A (en) * 1996-05-09 1998-06-09 International Business Machines Corporation Method of and system for updating dynamic translucent windows with buffers
US6272555B1 (en) 1996-07-01 2001-08-07 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server-centric interprise computing framework system
US6424991B1 (en) 1996-07-01 2002-07-23 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server communication framework
US6304893B1 (en) 1996-07-01 2001-10-16 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server event driven message framework in an interprise computing framework system
US6434598B1 (en) 1996-07-01 2002-08-13 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server graphical user interface (#9) framework in an interprise computing framework system
US5999972A (en) 1996-07-01 1999-12-07 Sun Microsystems, Inc. System, method and article of manufacture for a distributed computer system framework
US6038590A (en) 1996-07-01 2000-03-14 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server state machine in an interprise computing framework system
US6266709B1 (en) 1996-07-01 2001-07-24 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server failure reporting process
US5848246A (en) 1996-07-01 1998-12-08 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server session manager in an interprise computing framework system
US5987245A (en) 1996-07-01 1999-11-16 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture (#12) for a client-server state machine framework
US5974198A (en) 1996-08-26 1999-10-26 Adobe Systems Incorporated Adjustment layers for composited image manipulation
US5920325A (en) * 1996-11-20 1999-07-06 International Business Machines Corporation Prioritization of background display during animation
JPH10208025A (ja) * 1997-01-17 1998-08-07 Namco Ltd 画像生成装置及び画像生成方法
US6069633A (en) * 1997-09-18 2000-05-30 Netscape Communications Corporation Sprite engine
US6674485B2 (en) 1998-08-31 2004-01-06 Hitachi Software Engineering Co., Ltd. Apparatus and method for image compositing
US6476828B1 (en) 1999-05-28 2002-11-05 International Business Machines Corporation Systems, methods and computer program products for building and displaying dynamic graphical user interfaces
GB2355633A (en) * 1999-06-28 2001-04-25 Pixelfusion Ltd Processing graphical data
US6657644B1 (en) * 1999-09-07 2003-12-02 International Business Machines Corporation Layer viewport for enhanced viewing in layered drawings
US7088375B1 (en) * 2000-04-27 2006-08-08 Adobe Systems Incorporated Grouping layers in composited image manipulation
US6678889B1 (en) 2000-05-05 2004-01-13 International Business Machines Corporation Systems, methods and computer program products for locating resources within an XML document defining a console for managing multiple application programs
AUPS028702A0 (en) * 2002-02-01 2002-02-28 Canon Kabushiki Kaisha Efficient display update from changing object graphics
US20040221265A1 (en) * 2003-02-07 2004-11-04 Smart Technologies Inc. Connected and overlapped shapes enhancements
US7817163B2 (en) * 2003-10-23 2010-10-19 Microsoft Corporation Dynamic window anatomy
US7839419B2 (en) * 2003-10-23 2010-11-23 Microsoft Corporation Compositing desktop window manager
JP4522404B2 (ja) * 2004-04-22 2010-08-11 富士通セミコンダクター株式会社 画像処理装置
US8799206B2 (en) * 2005-02-07 2014-08-05 Mimosa Systems, Inc. Dynamic bulk-to-brick transformation of data
US8812433B2 (en) * 2005-02-07 2014-08-19 Mimosa Systems, Inc. Dynamic bulk-to-brick transformation of data
US8918366B2 (en) * 2005-02-07 2014-12-23 Mimosa Systems, Inc. Synthetic full copies of data and dynamic bulk-to-brick transformation
WO2007024479A2 (en) * 2005-08-23 2007-03-01 Mimosa Systems, Inc. Enterprise service availability through identity preservation
EP2030171A1 (en) 2006-04-10 2009-03-04 Avaworks Incorporated Do-it-yourself photo realistic talking head creation system and method
US7716023B2 (en) * 2007-02-13 2010-05-11 Oracle America, Inc. Multidimensional process corner derivation using surrogate based simultaneous yield analysis
US7907151B2 (en) * 2007-05-14 2011-03-15 Business Objects Software Ltd. Apparatus and method for associating non-overlapping visual objects with z-ordered panes
US8201102B2 (en) * 2007-09-04 2012-06-12 Apple Inc. Opaque views for graphical user interfaces
WO2009094673A2 (en) * 2008-01-27 2009-07-30 Citrix Systems, Inc. Methods and systems for remoting three dimensional graphics
US8751844B2 (en) 2009-09-24 2014-06-10 Citrix Systems, Inc. Systems and methods for attributing an amount of power consumption to a workload
US20130249813A1 (en) * 2012-03-26 2013-09-26 Lenovo (Singapore) Pte, Ltd. Apparatus, system, and method for touch input
US10042440B2 (en) 2012-03-26 2018-08-07 Lenovo (Singapore) Pte. Ltd. Apparatus, system, and method for touch input
US20160117086A1 (en) * 2014-10-22 2016-04-28 Grand Mate Co., Ltd. Method of setting user interface of remote control system

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2585515B2 (ja) * 1985-08-16 1997-02-26 株式会社日立製作所 図形描画方法
US4954818A (en) * 1985-10-18 1990-09-04 Hitachi, Ltd. Multi-window display control system
EP0223557A3 (en) * 1985-11-15 1989-04-05 Data General Corporation Display control in a data processing system
JPH0766317B2 (ja) * 1986-04-09 1995-07-19 株式会社日立製作所 表示制御方法
JPS63670A (ja) * 1986-06-05 1988-01-05 Hitachi Ltd マルチウィンドウ機能を有するワークステーションのマルチウィンドウ制御方法および装置
US4821220A (en) * 1986-07-25 1989-04-11 Tektronix, Inc. System for animating program operation and displaying time-based relationships
US4885717A (en) * 1986-09-25 1989-12-05 Tektronix, Inc. System for graphically representing operation of object-oriented programs
US4954819A (en) * 1987-06-29 1990-09-04 Evans & Sutherland Computer Corp. Computer graphics windowing system for the display of multiple dynamic images
JPS6426221A (en) * 1987-07-22 1989-01-27 Sharp Kk Fast page turning control system
US4891630A (en) * 1988-04-22 1990-01-02 Friedman Mark B Computer vision system with improved object orientation technique
US4953080A (en) * 1988-04-25 1990-08-28 Hewlett-Packard Company Object management facility for maintaining data in a computer system
US5216413A (en) * 1988-06-13 1993-06-01 Digital Equipment Corporation Apparatus and method for specifying windows with priority ordered rectangles in a computer video graphics system
EP0347162A3 (en) * 1988-06-14 1990-09-12 Tektronix, Inc. Apparatus and methods for controlling data flow processes by generated instruction sequences
US5041992A (en) * 1988-10-24 1991-08-20 University Of Pittsburgh Interactive method of developing software interfaces
US5133075A (en) * 1988-12-19 1992-07-21 Hewlett-Packard Company Method of monitoring changes in attribute values of object in an object-oriented database
US5050090A (en) * 1989-03-30 1991-09-17 R. J. Reynolds Tobacco Company Object placement method and apparatus
US5060276A (en) * 1989-05-31 1991-10-22 At&T Bell Laboratories Technique for object orientation detection using a feed-forward neural network
US5125091A (en) * 1989-06-08 1992-06-23 Hazox Corporation Object oriented control of real-time processing
JPH0359719A (ja) * 1989-07-28 1991-03-14 Hitachi Ltd ウィンドウ表示方法
US5181162A (en) * 1989-12-06 1993-01-19 Eastman Kodak Company Document management and production system
US5093914A (en) * 1989-12-15 1992-03-03 At&T Bell Laboratories Method of controlling the execution of object-oriented programs
US5075848A (en) * 1989-12-22 1991-12-24 Intel Corporation Object lifetime control in an object-oriented memory protection mechanism
DE69115762T2 (de) * 1990-06-19 1996-06-13 Fujitsu Ltd Verfahren und Einrichtung zur Anzeigesteuerung von Mehrfenstern
US5151987A (en) * 1990-10-23 1992-09-29 International Business Machines Corporation Recovery objects in an object oriented computing environment
US5119475A (en) * 1991-03-13 1992-06-02 Schlumberger Technology Corporation Object-oriented framework for menu definition
US5265202A (en) * 1992-08-28 1993-11-23 International Business Machines Corporation Method and system for accessing visually obscured data in a data processing system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004354896A (ja) * 2003-05-30 2004-12-16 Matsushita Electric Ind Co Ltd 描画処理装置及び描画処理方法

Also Published As

Publication number Publication date
AU5989594A (en) 1995-02-06
EP0698265B1 (en) 1997-08-27
CA2144871A1 (en) 1995-01-19
WO1995002236A1 (en) 1995-01-19
EP0698265A1 (en) 1996-02-28
DE69405225D1 (de) 1997-10-02
US5487145A (en) 1996-01-23
JP3522275B2 (ja) 2004-04-26

Similar Documents

Publication Publication Date Title
JP3522275B2 (ja) ディスプレイ・コンポジティング・システム
CN112270756B (zh) 一种应用于bim模型文件的数据渲染方法
US9886178B2 (en) User interfaces
EP3111318B1 (en) Cross-platform rendering engine
KR101086570B1 (ko) 동적 윈도우 구조
US6512529B1 (en) User interface and method for maximizing the information presented on a screen
US5850232A (en) Method and system for flipping images in a window using overlays
US6229542B1 (en) Method and apparatus for managing windows in three dimensions in a two dimensional windowing system
Beaudouin-Lafon et al. The architecture and implementation of CPN2000, a post-WIMP graphical application
Bederson et al. Implementing a zooming user interface: experience building pad++
KR0150832B1 (ko) 그래픽 대상을 인터로크하기 위한 방법 및 장치
KR20060105422A (ko) 데스크톱 윈도우 관리자 합성
JP2002507799A (ja) コンピューターアニメーションの確率的な詳細レベル
US20160260233A1 (en) Method and system for generating data-efficient 2d plots
KR20040021563A (ko) 화면 표시 처리 장치, 화면 표시 처리 방법 및 컴퓨터프로그램
US8665293B2 (en) Automatic draw order
Slater et al. Liberation from rectangles: a tiling method for dynamic modification of objects on raster displays
US6392662B1 (en) Draw order preservation in a computer-implemented graphics system
WO2023029475A1 (zh) 模型透视方法、智能终端以及存储装置
CN109800039A (zh) 一种用户界面展示方法、装置、电子设备及存储介质
CN106815800A (zh) 用于在计算机系统中控制空间分辨率的方法和装置
RU2532866C1 (ru) Способ создания стереоскопического интерфейса пользователя компьютера
Fraser Graphics Using GDI+
Rusdorf et al. A SYSTEM-INDEPENDENT, REAL TIME-ANIMATED, THREE-DIMENSIONAL GRAPHICAL USER INTERFACE
Cecolin Compositing concepts for the presentation of graphical application windows on embedded systems

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20040106

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040204

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080220

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090220

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100220

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100220

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110220

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110220

Year of fee payment: 7

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110220

Year of fee payment: 7

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120220

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120220

Year of fee payment: 8

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D02

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D04

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120220

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130220

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130220

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140220

Year of fee payment: 10

EXPY Cancellation because of completion of term