(57)【特許請求の範囲】
【請求項１】
複数の図形オブジェクトを表示するアプリケーションプログラムを実行する処理システムにおいて、
前記アプリケーションプログラムから作図要求を受け取るステップと、
受け取った該作図要求に応じて画像の作図領域を決めるステップと、
作図領域リスト内に前記作図領域を挿入するステップと、
前記アプリケーションプログラムから画像更新要求を受け取るステップと、
該画像更新要求に応じて前記作図領域リストから作図領域を検索するステップと、
前記検索された作図領域内に図形オブジェクトのいずれかの部分がある場合には、各図形オブジェクトが再作図されることを要求するステップと
からなることを特徴とする表示装置上の画像の非同期的保持方法。
【請求項２】
請求項１に記載の方法において、作図領域リスト内に前記作図領域を挿入するステップは、
前記作図領域を前記作図領域リスト内の各作図領域と比較する比較ステップと、
該比較ステップの結果に基づいて前記作図領域リストを最適化する最適化ステップとを含むことを特徴とする方法。
【請求項３】
請求項２に記載の方法において、前記比較ステップは新たに挿入される作図領域が前記作図領域リスト内の他の作図領域内にすべてあるか否かを判定するステップを含み、かつ
前記最適化ステップは前記新たに挿入される作図領域を削除するステップを含むことを特徴とする方法。
【請求項４】
請求項２に記載の方法において、前記比較ステップは新たに挿入される作図領域が前記作図領域リスト内の他の作図領域の１を完全に包囲しているか否かを判定するステップを含み、かつ
前記最適化ステップは前記新たに挿入される作図領域を削除するステップを含むことを特徴とする方法。
【請求項５】
請求項１に記載の方法において、前記作図要求を受け取るステップは画像上で図形オブジェクトを作図する要求を受け入れるステップを含み、かつ
前記作図領域を決めるステップは当該図形オブジェクトが作図される所の画像範囲を包囲する矩形の位置とサイズを決めるステップを含むことを特徴とする方法。
【請求項６】
請求項５に記載の方法において、前記作図領域を挿入するステップは前記作図領域リスト内に前記矩形の位置とサイズを挿入するステップを含むことを特徴とする方法。
【請求項７】
請求項１に記載の方法において、前記作図要求を受け取るステップは画像上で図形オブジェクトを移動する要求を受け取るステップを含み、また
前記作図領域を決めるステップは、
当該図形オブジェクトがもともと表示されていた所の画像範囲を包囲する第１の矩形の位置とサイズを決めるステップと、
当該図形オブジェクトが表示される所の画像範囲を包囲する第２の矩形の位置とサイズを決めるステップとを含むことを特徴とする方法。
【請求項８】
請求項７に記載の方法において、前記作図領域を挿入するステップは前記第１と第２の矩形のそれぞれの位置とサイズを前記作図領域リスト内に挿入するステップを含むことを特徴とする方法。
【請求項９】
請求項１に記載の方法において、前記作図領域リストをファスト−イン−ファスト−アウト・リストとして維持するステップを更に含むことを特徴とする方法。
【請求項１０】
請求項１に記載の方法において、前記作図領域リストを優先方式を用いて維持するステップを更に含むことを特徴とする方法。
【請求項１１】
請求項１に記載の方法において、複数の図形オブジェクトの各１つにそれぞれ対応する複数のノードを有するツリー構造を保持するステップを更に含み、
前記各図形オブジェクトが再作図されることを要求するステップが、
前記ツリー構造の各ノードを走査するステップと、
前記検索された作図領域内に前記図形オブジェクトのいずれかの部分がある場合には、前記ツリー構造の現在走査されたノードに対応する図形オブジェクトが再作図されることを要求するステップとを含むことを特徴とする方法。
【請求項１２】
請求項１１に記載の方法において、前記ツリー構造の現在走査されたノードに対応する図形オブジェクトが再作図されることを要求するステップは、
現在走査されたノードに対応する図形オブジェクトのいずれかの部分が前記検索された作図領域内にあるか否かを判定するステップと、
いずれかの部分が前記検索された作図領域内に在るときには当該図形オブジェクトを再作図するステップと、
該再作図が完了したことを示すメッセージを親ノードへ戻すステップとを含むことを特徴とする方法。
【請求項１３】
請求項１１に記載の方法において、前記ツリー構造の各ノードを走査するステップが、
根ノードで始まるステップと、
最も左の子ノードから最も右の子ノードへの順番に、子ノードを再帰的に走査するステップとを含むことを特徴とする方法。
【請求項１４】
請求項１３に記載の方法において、前記ツリー構造の現在走査されたノードに対応する図形オブジェクトが再作図されることを要求するステップは、
現在走査されたノードに対応する図形オブジェクトのいずれかの部分が前記検索された作図領域内にあるか否かを判定するステップと、
いずれかの部分が前記検索された作図領域内に在るときには当該図形オブジェクトを再作図するステップと、
現在走査されたノードが子ノードを有する場合は、最も左の子ノードから最も右の子ノードへの順番に、子ノードを走査するステップと
該再作図が完了したことを示すメッセージを親ノードへ戻すステップとを含むことを特徴とする方法。
【請求項１５】
請求項１４に記載の方法において、前記子ノードを走査するステップは、
１つの子ノードを走査するステップと、
該子ノードからの再作図が完了したことを示すメッセージを待機するステップとを更に含むことを特徴とする方法。
【請求項１６】
請求項１に記載の方法において、スクリーンの更新要求を受け取るステップが全部の画像を更新するための要求を受け取るステップを含み、
かつ本方法が該受け取った全部の画像の更新要求に応じて前記検索をするステップと前記要求するステップとを繰り返すステップを更に含むことを特徴とする方法。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、実行コンピュータプログラムとユーザ間のインターフェースを管理するシステムに関する。特に、表示画面上に描かれた図形オブジェクトで構成された画像を通してユーザにデータを供給するようなシステムに関する。その画像はコンピュータプログラムによってなされた表示更新要求から非同期的に保持される。
【０００２】
なお、本明細書の記述は本件出願の優先権の基礎たる米国特許出願０８／２６７，０８４号（１９９４年６月２８日出願）の明細書の記載に基づくものであって、当該米国出願の番号を参照することによって当該米国特許出願の明細書の記載内容が本明細書の一部を構成するものとする。
【０００３】
【背景技術】
下記の論述中にオブジェクト指向パラダイム（object oriented paradigm) が用いられているが、これを使って表示装置上に表示されるべき各図形要素がプログラミングオブジェクトによって表現され、これに順次他のオブジェクトを含ませることができる。このような図形オブジェクトの各々は属性（attributes）を有し、またそのオブジェクトに対して送られたメッセージに応じて呼び出されてそのオブジェクトを操作するメソッド（methods)を有する。例えば、図形オブジェクトの属性は画面（スクリーン）上のそのオブジェクトの位置、そのオブジェクトのサイズ並びに色を含んでいる。図形オブジェクトにはそのオブジェクトのクラスに対する固有の属性を有するものがある。例えば円オブジェクトは半径の属性を有し、またテキストオブジェクト（文書オブジェクト）は記号列（string) の属性を有する。
【０００４】
これらの属性はアプリケーションプログラムによって変更可能な値（values) 有する。例えば、あるオブジェクトの色属性は“青”あるいは“赤”の値に割り当てることができ、表示画面（ディスプレイスクリーン）上の異なる位置にオブジェクトを移動させるために位置属性を変えることができ、および／あるいはサイズ属性を変えて表示画面上のオブジェクトの大きさを再設定することができる。図形オブジェクトの属性が変更された場合は、ディスプレイマネージャが呼び出されて、当該オブジェクトが描き直されるが、また変更した属性を組み入れるために、当該オブジェクトを取り囲む他のオブジェクトが描き直されることも可能である。例えば、あるオブジェクトの色がアプリケーションプログラムによって変えられたならば、そのオブジェクトは新しい色で描き直される。他の例としては、オブジェクトが移動する場合は、原ロケーションがそのオブジェクトなしに再び描かれ、かつ新しいロケーションがそのオブジェクトと共に描き直される。オブジェクト指向システムプログラム技術に精通する当業者ならば、これらの概念は理解できるであろうし、また図形オブジェクトを使用してシステムの設計や実行をすることが可能であろう。グラフィカルベースト・プロセッサシステム（図形に基づくプロセッサシステム）において、プロセッサは図形機能、例えば表示画面上の図形オブジェクトの作図（drawing)や再作図(redrawing) を実行するのにその処理時間の大部分を使っており、画面作図速度の最適化が重要であるということが良く知られている。図形応答時間を最大にするために、最新のオブジェクト指向グラフィカルベースト・プロセッサシステムは、図形オブジェクトの属性についての何等かの変更の直後に、画面に再作図するためにディスプレイマネージャを自動的に呼び出している。他の処理機能にとっては、しかしながら、対話型プログラムの実行中のある一定時間で、画面作図機能、例えばユーザ入力の応答、あるいは大容量記憶装置や対向局側送信位置（remote transmission location) から受け取るデータの増加よりも、むしろ知覚応答速度（perceived respond speed)の増加の方がより重要であろうということを本発明者は悟っている。
【０００５】
【発明の概要】
本発明は音声映像対話式（audio videointeractive: ＡＶＩ）システムで具現化することができる。ＡＶＩシステムは同報通信ＡＶＩプログラムを用いてユーザの対話を許容するすでに起案された同報通信システムである。このようなシステムにおいて、送信位置（transmission location)からのＡＶＩ信号は対向局ＡＶＩ受信機（remote AVI receivers) へ同報通信される。ＡＶＩ信号は、標準方式のテレビジョン信号におけるような音声成分や映像成分の他に、対話型プログラム成分も含んでいる。対話型プログラム成分はアプリケーションプログラムを構築するコードとデータモジュールを表現するデータを連続的に反復する。各ＡＶＩ受信機はプロセッサを含み、このプロセッサは送信された対話成分からコードとデータモジュールを必要に応じて、かつ抜粋用アプリケーションプログラムの制御の下に抜粋して、音声および映像成分上にオーバレイし対話式方法でユーザ入力に対し応答可能な、図形とサウンドを発生する。
【０００６】
顧客間にこの様な受信機の拡散を最大にするためには、ＡＶＩ受信機のコストをできる限り小さくすることが重要である。この低費用での使用の制約事項は、一方ＡＶＩ受信機内のプロセッサを相対的に遅くすることになる。しかしながら、対話型プログラムの知覚応答速度はできるだけ早いことがまた重要である。低費用での使用と相対的に遅いプロセッサの使用の可能性を残しながら、ユーザ入力に対する対話型プログラムの知覚応答速度を増加させる方法は望ましいことである。
【０００７】
本発明の原理に従う、表示装置上の画像を非同期的に保持する方法は以下のステップからなる。まず最初に、アプリケーションプログラムから作図要求が受け取られる。次に、画像の作図領域がその作図要求に応じて決められ、この作図領域が作図領域リスト内に書き込まれる。それから画面更新要求がアプリケーションプログラムから受け取られる。この受け取った画面更新要求に応じて、作図領域が上記リストから検索され、その検索された作図領域内に何等かの図形オブジェクトの部分がある場合には、全ての図形オブジェクトが描き直される。
【０００８】
【実施例】
図１は本発明を適用した処理システムの操作を示す一部フローチャート形態と一部メモリレイアウト形態で示した図である。図２は図形オブジェクト（１０〜７４）を表示する表示装置１００を示す図であり、図３は図２に示した図形オブジェクト（１０〜７４）に対応するツリー図であり、これら両図は図１の理解に役に立つ。図１において、アプリケーションプログラムの部分は左側の列に“ＡＰＰＬＮ  ＰＲＯＧ”の表題で図示されており、ユーザインターフェース管理システム（ＵＩＭＳ）はその右の次列に“ＵＩＭＳ”の表題で図示されている。本図の右側の表題“ＤＡＴＡ”はＵＩＭＳによって保持されたデータ構造の部分を示している。
【０００９】
図２において、表示装置１００はアプリケーションプログラム内のスクリーンオブジェクト（画面オブジェクト）１０のディスプレイを示す。スクリーンオブジェクト１０は部分的にクロックオブジェクトとオーバレイするメニューオブジェクト３０を含有している。メニューオブジェクト３０は囲み枠オブジェクト（サランディングボックスオブジェクト）３１、タイトルオブジェクト（表題オブジェクト）３３、選択オブジェクト３５、ＯＫ（オーケー）ボタンオブジェクト３７およびキャンセルボタンオブジェクト３９を包含している。タイトルテキストオブジェクト３３は値“ＭＥＮＵ”（メニュー）を有する「文字列（string) 属性を持つテキストオブジェクトである。選択（セレクト）オブジェクト３５は囲み枠オブジェクト５２および３つの選択アイテムオブジェクト５４，５６と５８を包含している。選択アイテムオブジェクト５４は更に選択ボックスオブジェクト４２、値“ＳＴＥＲＥＯ”（ステレオ）を有する「文字列」属性を持つテキストオブジェクト４４および値ＴＲＵＥ（真）を有する「選択」属性を持つ選択（チョイス）オブジェクト４６を包含し、この選択オブジェクト４６は選択ボックスオブジェクト４２の内側にチェックマークとして表示される。選択アイテムオブジェクト５６において、選択オブジェクト６６の「選択」属性は値ＦＡＬＳＥ（偽）を有し、これは選択ボックスオブジェクト６２内にブランクスペースとして表示される。テキストオブジェクト６４の「文字列」属性は値“ＴＨＸ”を有する。選択アイテムオブジェクト５８において、テキストオブジェクト８４の「文字列」属性は値“ＥＸＰＡＮＤＥＤ”（拡張）を有する。選択アイテムオブジェクト５４，５６および５８内の他の対応する全オブジェクトは同様なものであるが、その詳細は記載していない。ＯＫボタンオブジェクト３７は囲み枠オブジェクト７２と、値“ＯＫ”（承認）を有する「文字列」属性を持つテキストオブジェクト７４を含有する。キャンセルボタンオブジェクト３９は囲み枠オブジェクト９２と、値“ＣＡＮＣＥＬ”（取消）を有する「文字列」属性を持つテキストオブジェクト９４を含有する。クロックオブジェクト２０は、囲み枠オブジェクト２２と、その「文字列」属性が現時点の文字の値、例えば“２：３０：３７  ＰＭ”（午後２時３０分３７秒）、を有するタイムテキストオブジェクト２４と、その「文字列」属性が現在の日付けの文字の値、例えば“５／１８／９１”（１９９１年５月１８日）、を有するデートテキストオブジェクト２６とを含有する。
【００１０】
図１において、アプリケーションプログラムＡＰＰＬＮ  ＰＲＯＧは、そのプログラミングの期間に、ブロック３０２において図形オブジェクトの属性を変更する。アプリケーション・プログラム・インターフェース（ＡＰＩ）がアプリケーションプログラマへ提供され、公知の方法で、属性変更のような要求を許可する。すなわち、図形オブジェクトの属性変更に対し、図形オブジェクトの属性を変更するＡＰＩで定義されたサブルーチンに対してシステムコールがされる。この呼び出されたサブルーチンはＵＩＭＳ（ユーザインターフェース管理システム）の一部分となる。
【００１１】
ＵＩＭＳのブロック３４２において、属性変更の結果として描き直し（再作図）が必要とされる作図領域（または領域）が決定される。図示の実施例において、属性が変更された図形オブジェクトを取り囲む矩形がＵＩＭＳによってブロック３４２で決定される。例えば、円の色属性が変更されると、円を取り囲む矩形（またはより正確には、正方形）が決定される。この正方形は、属性変更の結果として描き直しが必要な画像の範囲の輪郭を描く。この正方形の位置とサイズを表すデータがブロック３４４内の作図領域リスト３６２内に挿入される。
【００１２】
作図領域リスト３６２内に挿入されたデータはその後の処理の更に後で、後述に詳細に記載した方法で、検索される。作図領域リスト３６２は公知のファスト・イン・ファスト・アウト（ＦＩＦＯ）バッファとして構成してよい。あるいは、優先方式のような、前もって挿入された作図領域の検索順位を制御するなにか別の形態のものを用いてもよい。
【００１３】
作図領域リスト３６２中の作図領域は、図１のブロック３４５の想像線（phantom)で図示したように、新たな作図がそのリストに挿入されるときはいつでも、最適化されるようにしてもよい。この最適化を評価（measure)するのに用いられる２つの基準がある。その第１は、作図領域リスト中のエントリのは実際上できるだけ少なくすべきであるという点である。その第２は、作図領域リスト中のエントリは再作画の処理時間が過度の量になるほど長くすべきでないという点である。新作図領域を表すデータが作図領域リスト３６２内に挿入された後で、その新作図領域は作図領域リスト３６２内に現在格納されている作図領域の各々（図１に、作図領域リスト３６２からブロック３４５への想像線の矢印によって図示）と個別に比較され、この作図領域リストはこの比較に基づいて最適化される。この比較は２つの作図領域の相対位置に基づいている。
【００１４】
図４は作図領域のリストの最適化のための各自の配置を示す図である。図４のａ図は、２つの可能な作図領域の配置を図示している。図４のａ図の左側は重なりあっていない第１の作図領域Ａと第２の作図領域Ｂとを図示している。この事例においては、最適化なしが可能であり、２つの作図領域を表すデータ、ＸとＹは作図領域リスト３６２内に保持される。図４のａ図の右側は第３の作図領域Ｃと、この第３の作図領域Ｃに完全に重なりあっている第４の作図領域Ｄとを図示している。この事例においては、１つの作図領域のみを表すデータ、Ｚが作図領域リスト３６２内に保持される。Ｚの作図領域が再作図(redraw)されるときは、作図領域ＣおよびＤの両方とも再作図されることになる。
【００１５】
図４のｂ図の左側は第１の作図領域Ａと、この第１の作図領域Ａに部分的に重なりあっている第２の作図領域Ｂとを図示しており、その右側は第３の作図領域Ｃと、この第３の作図領域Ｃに部分的に重なりあっている第４の作図領域Ｄとを図示している。２つの作図領域が部分的に重なりあっている場合は、その部分的に重なりあっている作図領域の両方を完全に取り囲む提案作図領域が生成される。この新たに生成された作図領域の面積が２つの部分的に重なりあった作図領域の結合した面積と比較される。新たに生成された作図領域の面積が２つの部分的に重なりあった作図領域の合計面積よりも著しく大きくなければ、２つの部分的に重なりあった作図領域を表すデータが作図領域のリスト３６２から削除され、その新たに生成された作図領域を表すデータが作図領域のリスト３６２内に挿入される。さもなければ（すなわち新たに生成された作図領域の面積が２つの部分的に重なりあった作図領域の合計面積よりも著しく大きい場合は）、作図領域のリストは変更されないままである。
【００１６】
新たに生成された作図領域の面積と２つの部分的に重なりあった作図領域の合計面積とを比較するための１つのメソッドは、新たに生成された作図領域の面積から部分的に重なりあった作図領域の面積の合計を減算し、その差分値を固定のしきい値と比較するものである。例えば、表示画面の面積は画素（ピクセル）の個数として表現してもよい。好適な実施例において、上記差分値が１，０００画素以下ならば、新たに生成された作図領域を表すデータが作図領域のリスト３６２内の２つの部分的に重なりあった作図領域を表すデータと置き代わる。他のメソッドとして、２つの部分的に重なりあった作図領域の合計面積と新たに生成された作図領域の面積との比を固定の比率と比較してもよい。例えば、その比が０．９より大の場合は、新たに生成された作図領域を表すデータが作図領域のリスト３６２内の２つの部分的に重なりあった作図領域を表すデータと置き代わる。
【００１７】
再び図４のｂ図を参照すると、作図領域Ｗは部分的に重なりあった作図領域ＡとＢを含む新たに生成された領域である。この事例において、新たに生成された作図領域Ｗの面積は、部分的に重なりあった作図領域ＡとＢとの面積の合計よりも著しく大きくはない。よって、２つの部分的に重なりあった作図領域ＡとＢ表すデータが作図領域のリスト３６２から取り除かれて、作図領域のリスト３６２内のそれらの位置に作図領域Ｗを表すデータが挿入される。しかしながら、部分的に重なりあった作図領域ＣとＤとを含む新に生成された作図領域Ｘの面積は、部分的に重なりあった作図領域ＣとＤとの面積の合計よりも著しく大きい。よって、領域Ｃを囲む作図領域Ｙおよび領域Ｄを囲む作図領域Ｚの２つのエントリは作図領域のリスト３６２内にそのまま保持される。
【００１８】
図４のｃ図の左側は第１の作図領域Ａと、この第１の作図領域Ａに部分的に重なりあっている第２の作図領域Ｂとを図示しており、その右側は第３の作図領域Ｃを図示している。図４のｃ図の左側において作図領域Ｂは、２つの領域が２つの異なる作図領域、ＷとＸに分解可能なようなやり方で、作図領域Ａに重なる。作図領域ＷとＸの再作図の表示画面上の表示結果は作図領域ＡとＢの再作図の場合と同じであるが、このような再作図面積はこの分解を通じて減少される。それ故、作図領域ＡとＢを表すデータは図形領域のリスト３６２から削除されて、作図領域ＷとＸとを表すデータに置き換えられる。
【００１９】
非常に大きな作図領域が作図領域のリストに挿入された場合は、領域を描き直すのに必要な時間が長くなる。領域を再作図する際に柔軟性(flexibility) を与えるために、この領域は複数のセクションに分離される。図４のｃ図の右側の作図領域Ｃは表示装置の表示範囲のほぼ半分を占有している。そのため、作図領域Ｃは２つの領域、ＹとＺとに分割される。この作図領域ＹとＺを表すデータが作図領域Ｃを表すデータの代わりに作図領域のリスト３６２に挿入される。
【００２０】
新しい作図領域が生成されて作図領域のリスト３６２内に挿入されるときに、その新に発生した作図領域は、他の作図領域と重なるかもしれないので、上述したように他の作図領域と比較しなければならない。さらなる最適化の可能性の無いときには、ＵＩＭＳは他の処理を継続できるアプリケーションプログラムへ制御を戻す。表示画面はこの時点では再作図されない。
【００２１】
図１を再び参照して、制御がブロック３０２内のＵＩＭＳサブルーチンからアプリケーションプログラムへ戻った後で、図１でブロック３０２から降りるジグザク線で示す次の処理（図形オブジェクトの属性の変更に関わる必要のない処理）がアプリケーションプログラムによって行われる。その後、ブロック３０４において、アプリケーションプログラムはＡＰＩに定義され、表示画面を更新するＵＩＭＳサブルーチンをシステムコール（システム呼び出し）する。
【００２２】
このシステムコールに応じて、ＵＩＭＳは、ブロック３４６において、前述したように、ＦＩＦＯ（または代わりの）方式により作図領域のリスト３６２からこれまでに格納された作図領域を表すデータを検索する。この検索された作図領域は後述の方法で境界枠(boundary box)として使用される。ブロック３４８において、表示画面上に現在表示されている各図形オブジェクトはそれ自身の再作図についてのメッセージを送られる。
【００２３】
現在表示されている図形オブジェクトを表すデータは各図形オブジェクトのためのノード（結節点）を持っているデータツリー構造３６４内に格納されている。このツリーは下記の方法、および各図形オブジェクトである、即ち走査された各図形オブジェクトに送られた再作図メッセージとによって走査される。図形オブジェクトはこのメッセージに応じてこの図形オブジェクトに関係するメソッドの１つであるＲＥＤＲＡＷ（描き直し）を実行する。このＲＥＤＲＡＷメソッドでは、まず最初に図形オブジェクトの部分がその境界枠内にあるか否かを判別する。図形オブジェクトの部分がその境界枠内にある場合は、次にその図形オブジェクトはその図形オブジェクトを再作図する低レベル図形表示ルーチンを呼び出す。そうでない場合（図形オブジェクトのある部分がその境界枠内にない場合）は、何もしない。現在表示されている各図形オブジェクトがそのＲＥＤＲＡＷメソッドを実行したときには、検索された作図領域は完全に描き直されていることになる。
【００２４】
図３は図２の表示装置１００上の画像を表すデータツリー構造２００を説明する図である。このツリー２００内の各ノードは図形オブジェクトを表す。子ノードはその親オブジェクトに包含される図形オブジェクトを表す。図３に示すトップノード２１０はスクリーンオブジェクト１０を表し、ツリーの根ノードとして共通に参照される。上述したように、スクリーンオブジェクト１０はクロックオブジェクト２０とメニューオブジェクト３０を包含する。根ノード２１０はこれに対応してクロックオブジェクト２０を表す第１の子ノード２２０と、メニューオブジェクト３０を表す第２の子ノード２３０を有する。クロックノード２２０の子ノードに関して、ノード２２２は囲み枠オブジェクト２２を表し、ノード２２４はタイムテキストオブジェクト２４を表し、およびノード２２６はデートテキストオブジェクト２６を表す。
【００２５】
メニューノード２３０の子ノードに関して、ノード２３１は囲み枠オブジェクト３１を表し、ノード２３３はタイトルテキストオブジェクト３３を表し、ノード２３５は選択オブジェクト３５を表し、ノード２３７はＯＫボタンオブジェクト３７を表し、およびノード２３９はキャンセルボタンオブジェクト３９を表す。選択ノード２３５の子ノードに関して、ノード２５２は囲み枠オブジェクト５２を表し、またノード２５４，２５６，２５８はそれぞれ３つの選択アイテムオブジェクト５４，５６，５８の１つを表す。図を簡単にするために、代表として選択アイテムノード（２５４）からの子ノードと、ボタンノード（２３７）からの子ノードのみを図３に図示している。全ての選択アイテムノードとボタンノードは同様な子ノード構造を有する。選択アイテムノード２５４の子ノードに関して、ノード２４２は選択ボックスオブジェクト４２を表し、テキストノード２４４はテキストオブジェクト４４を表し、および選択ノード２４６は選択オブジェクト４６を表す。ＯＫボタンノード２３７の子ノードに関して、ノード２７２は囲み枠オブジェクト７２を表し、およびノード２７４はテキストオブジェクト７４を表す。
【００２６】
画像の作図あるいは再作図の際に、その画像を表すツリー構造が根ノードを始点として左から右へ順番に再帰的に走査され、かつ各ノードの走査につれてその各ノードによって表されたオブジェクトへ再作図メッセージが送られる。ＲＥＤＲＡＷメソッドはあるオブジェクトについて、まず最初にその図形オブジェクトの部分がその境界枠内にあるかどうかを（図１のボックス３４６から）判別する。もしそうであるならば（図形オブジェクトの部分がその境界枠内にある場合は）、ＲＥＤＲＡＷメソッドはその図形オブジェクトの属性に従って表示画面上にそのノードによって表されるオブジェクトを再作図する低レベル図形表示ルーチンを呼び出す。
【００２７】
例えば、あるボックスオブジェクトの作図のために、ボックスオブジェクトの位置属性によって指定された位置に、サイズ属性で指定されたサイズと色属性で指定された色でボックス（枠）を描く低レベル図形ルーチンが呼び出される。他の属性、例えば線の太さ、影の濃さ等もボックスオブジェクトの一部であるとしてもよく、囲み枠画像の作図に用いられよう。他の例として、あるテキストオブジェクトの作図のために、文字列（ストリング）属性内の文字画像を位置属性によって指定された位置にサイズ属性で指定されたサイズで描く低レベル図形表示ルーチンが呼び出される。テキストオブジェクトに存在して良い他の属性としては、字体（フォント）テキスト属性（太字、イタリック体など）、テキスト色、背景色がある。全ての他の図形オブジェクトはそれらの属性に従って同様に作図される。
【００２８】
ＲＥＤＲＡＷメソッドは次に、子ノードを包含するノード（即ち、親ノード）に関して、再作図メッセージをそのノードの全ての子ノードへ送る。まず最初に、再作図メッセージが一番左の子ノードへ送られる。親ノードのＲＥＤＲＡＷメソッドは、子ノードからの再作図が完了したことを示す返送メッセージ（リターンメッセージ）を待ち、そしてこの処理を、再作図メッセージが全ての子ノードへ送られ全ての子ノードから再作図完了メッセージが受信されるまで左から右へと兄弟ノード（sibling node) に対して続ける。そして再作図が完了したことを示すメッセージがそれ自身の親ノードへ送られると、そのオブジェクトのＲＥＤＲＡＷメソッドは終了する。全ての図形オブジェクトのＲＥＤＲＡＷメソッドは、（図１の）ツリー構造３６４からブロック３４８へ矢印で示されているように、ツリー構造３６４を参照できる。
【００２９】
さて次に、図２に図示され、図３で図示のツリー構造によって表された画像の事例を参照して説明する。すぐ前の時刻、即ち正確に午後２時３０分３７秒（２：３０：３７  ＰＭ）のときに、クロックオブジェクト２０のタイムテキストオブジェクト２４の文字列属性は“２：３０：３６  ＰＭ”から“２：３０：３７ＰＭ”に変えられた。その時に、タイムテキストオブジェクト２４を囲む矩形（図示しない）を表すデータが（図１の）ＵＩＭＳのブロック３４４によって作図領域リスト３６２中に挿入された。この矩形を表すデータがＵＩＭＳのブロック３４６によって作図領域リスト３６２から取り出されると、画像は下記の方法で描き直される。
【００３０】
上記のように取り出されたデータによって表される矩形は境界枠として用いられる。次に、（図１の）ＵＩＭＳのブロック３４８は根ノード２１０によって表されるスクリーンオブジェクト１０へ再作図メッセージを送る。スクリーンオブジェクト１０のＲＥＤＲＡＷメソッドはまず境界枠内にそのオブジェクトの部分が存在するか否かをその図形の属性から判断する。本事例の場合は、そのオブジェクト部分が境界枠内に存在しないので、低レベル図形ルーチンは呼び出されない。スクリーンオブジェクト１０のＲＥＤＲＡＷメソッドは次に再作図メッセージを根ノード２１０の左側ノード２２０で表されたクロックオブジェクト２０へ送り、クロックオブジェクト２０が自身で再作図を完了したことを示すメッセージを待つ。
【００３１】
クロックオブジェクト２０のＲＥＤＲＡＷメソッドはまずノード２２２によって表された囲み枠オブジェクト２２へ再作図メッセージを送り、再作図完了メッセージを待つ。囲み枠オブジェクト２２のＲＥＤＲＡＷメソッドはまず境界枠内に囲み枠２２の部分が存在するかどうかをその位置とサイズの属性から決める。本事例では、再び、それが境界枠内に存在しないので、再作図が完了したことを示すメッセージがクロックオブジェクト２０のＲＥＤＲＡＷメソッドへ送り返され、囲み枠オブジェクト２２のＲＥＤＲＡＷメソッドは終了する。
【００３２】
クロックオブジェクト２０のＲＥＤＲＡＷメソッドは囲み枠オブジェクト２２のＲＥＤＲＡＷメソッドから再作図完了メッセージを受け取った時には、次いでノード２２４で表されるタイムテキストオブジェクト２４へ再作図メッセージを送り、再作図完了メッセージを待つ。タイムテキストオブジェクト２４のＲＥＤＲＡＷメソッドはまず、そのテキストの部分が境界枠内にあるか否かを判断する。タイムテキストオブジェクト２４はその境界枠内にあるので、低レベル図形ルーチンが呼び出され、タイムテキストオブジェクトをそのオブジェクトの属性に従って作図する。即ち、新しい時間を表す文字が画像で描かれる。それから再作図完了メッセージがクロックオブジェクト２０へ戻され、そのＲＥＤＲＡＷメソッドは終了する。次にクロックオブジェクト２０はタイムテキストオブジェクト２４と同様な動作をするデータテキストオブジェクト２６へ再作図メッセージを送る。本事例では、再作図は行われないので、ＲＥＤＲＡＷメソッドはクロックオブジェクト２０へ再作図完了メッセージを戻す。データテキストオブジェクト２６からの再作図完了メッセージがクロックオブジェクト２０によって受け取られると、そのＲＥＤＲＡＷメソッドは完了する。クロックオブジェクト２０はそのような再作図完了を示すメッセージをスクリーンオブジェクト１０へ戻し、そのＲＥＤＲＡＷメソッドは終了する。
【００３３】
スクリーンオブジェクト１０はクロックオブジェクト２０からこのメッセージを受け取ると、メニューオブジェクト３０へ再作図メッセージを送る。メニューオブジェクト３０のＲＥＤＲＡＷメソッドは順番にまず囲み枠オブジェクト３１へ再作図メッセージを送り、囲み枠オブジェクト３１からの再作図完了メッセージを待つ。囲み枠オブジェクト３１の下右側隅が境界枠内にあるので、この囲み枠オブジェクト３１は再作図される（即ち、低レベル図形ルーチンが呼び出される）。次に再作図完了メッセージがメニューオブジェクト３０へ戻される。この再作図完了メッセージが受け取られると、同様な処理が、タイトルテキストオブジェクト３３、選択オブジェクト３５、ＯＫボタン３７およびキャンセルボタン３９について、その順番で繰返される。これらのオブジェクトの各々はこれまでに詳述した方法で再帰的に操作し、表示画面（スクリーン）はそれにより再作図（描き直し）される。本事例では、キャンセルボタン３９の囲み枠オブジェクト９２のみが境界枠内にあるので、これのみが再作図される。
【００３４】
上述したように、クロックオブジェクト２０はメニューオブジェクト３０の前に作図されるので、メニューオブジェクト３０によってオーバレイ（畳重）され、表示装置１００上でメニューオブジェクト３０の下にあるように見える。一般に、ツリー構造で最も右側のノードによって表されるオブジェクトは表示された画像のトップ（一番上側）に現われ、また最も左側のノードによって表されるオブジェクトは表示された画像の底（一番下側）に現われる。これはＺオーダ（Ｚ順位）として参照される。属性の変更によってオブジェクトのＺオーダの位置を変更することが可能であり、その変更の場合はスクリーンツリー（画面に表示されたツリー構造）は変更される必要がある。さらに詳しくは、あるオブジェクトがＺオーダ内の「頂点上（on top) 」に位置するときは、そのオブジェクトはその親オブジェクトの最も右の兄弟オブジェクトとなり、他の全ての兄弟オブジェクトはそれらの同じ相対位置にとどまる。図１を参照すると、これはブロック３０２からブロック３６４への破線によって表されている。但し、この破線は単に図式のリンケージを示すにすぎない。実際にはＡＰＩ変更−属性コールを経て実行されるＵＩＭＳ内のルーチンがツリー図の３６４を更新する。
【００３５】
図５に示すように、単一の属性変更の結果として２つの作図領域が生成されることも可能である。例えば、ある図形オブジェクトの位置属性が変更された場合、即ちその図形オブジェクトがある位置から他の位置へ移動する場合には、その旧位置でそのオブジェクトを取り囲む第１の長方形と、その新位置でそのオブジェクトを取り囲む第２の長方形とが生成されることになり、その両方に関するデータが（図１の）作図領域リスト３６１内に格納される。図５においては、クロックオブジェクト２０が移動させられるオブジェクトである。図５のａ図において、スクリーン（表示画面）１０の下右側隅に太い破線の長方形で図示された第１の長方形ＯＬＤ（旧）はクロックオブジェクト２０をその旧位置で取り囲んでいる。スクリーン１０の上部中央位置に太い破線の長方形で図示された第２の長方形ＮＥＷ（新）はその新位置でクロックオブジェクト２０により占有されるスクリーン１０の範囲を取り囲んでいる。その移動は旧位置ＯＬＤから新位置ＮＥＷへの太い破線矢印で図示している。全ての太い破線は単に説明目的のためのものでしかなく、このような線は表示装置１００に表示されない。２つの長方形、ＯＬＤとＮＥＷ、の位置とサイズを表すデータは（図１の）作図領域リスト３６２に格納される。しかし、上述したように、表示はこの時点では描き直されない。それどころか、表示装置１００は図２で示したスクリーン１０を表示し続ける。
【００３６】
図５を再び参照する。クロックオブジェクト２０は移動するだけでなく、このときにメニューオブジェクト３０のトップに現れることになる。図３のツリー構造は、従って、クロックノード２２０がこの時に根ノード２１０の最も右の子ノードとなるように変更され、メニューノード２３０は最も左のノードとなる。この新たなツリー構造は図６に図示されている。図６において、図３と唯一異なっているところは、メニューノード２３０が今度は根ノード２１０の左側の子ノードであり、クロックノード２２０が根ノード２１０の右側の子ノードであることである。上述したように、このことは、このツリーを走査することにより画像が再作図されるときに、クロックオブジェクト２０がメニューオブジェクト３０の上に表示される結果となる。
【００３７】
図５のｂ図はＯＬＤとＮＥＷの長方形の作図領域の両方が図６に示したツリー構造を走査することによって上述のように再作図された後で得られる画像を示す。ＯＬＤ長方形の再作図についてまず説明する。画面背景（screen background)はそのＯＬＤ長方形内にあるので、上述したように、この画面背景はスクリーンオブジェクト１０のためのＲＥＤＲＡＷメソッドによって（即ち、低レベル図形ルーチンが呼び出されて）再作図される。それから、再作図メッセージがメニューオブジェクト３０へ送られる。メニューオブジェクト３０において、メニューオブジェクト３０の囲み枠オブジェクト３１とキャンセルボタンオブジェクト３９の囲み枠オブジェクト９２の両方がＯＬＤ長方形内に存在するので、それら囲み枠オブジェクトはそれらのＲＥＤＲＡＷメソッドによって再作図される。メニューオブジェクト３０内の他の図形オブジェクトはＯＬＤ長方形内に無いので、さらなる図形オブジェクトの再作図はない。
【００３８】
次に、ＮＥＷの長方形の再作図について説明する。画面背景はそのＮＥＷの長方形内にあるので、その画面背景はスクリーンオブジェクト１０のＲＥＤＲＡＷメソッドによって再作図される。それから、再作図メッセージがメニューオブジェクト３０へ送られる。メニューオブジェクト３０の囲み枠オブジェクト３１と，選択オブジェクト３５の囲み枠オブジェクト５２および第１選択アイテムオブジェクト５４のテキストオブジェクト４４が全てＮＥＷの長方形内に存在するので、それらオブジェクトはそれらのそれぞれのＲＥＤＲＡＷメソッドによって再作図される。次いで、再作図メッセージがクロックオブジェクト２０へ送られる。クロックオブジェクト２０の全ての図形オブジェクトがＮＥＷの長方形内にあるので、それら図形オブジェクトは全てそれらのそれぞれのＲＥＤＲＡＷメソッドによって再作図される。クロックオブジェクト２０の図形オブジェクトは最後に作図され、それら図形オブジェクトは他の図形オブジェクト（スクリーンオブジェクト１０とメニューオブジェクト３０）の上に作図されるから、クロックオブジェクト２０はそれら他の図形オブジェクトにオーバレイしている（重なっている）ように見える。クロックオブジェクト２０の位置属性を変更した結果得られる画像と、ＯＬＤとＮＥＷの長方形の後に起こる非同期の再作図は、図５のｃ図に図示している。
【００３９】
図１を再び参照する。ブロック３０４において、１つの作図領域だけを再作図することをアプリケーションプログラムは要求できる。このような要求に応答して、ＵＩＭＳのブロック３４６において、次の作図領域が作図領域リスト３６２から検索され、ブロック３４８において、その作図領域が上述したようにブロック３６４からツリー構造を走査することにより再作図される。この再作図が完了すると、ブロック３０４からの下降矢印で示すように、ＵＩＭＳが次の処理を実行するアプリケーションプログラムへ戻される。
【００４０】
これに代わって、アプリケーションプログラムは全部の画像の再作画を要求することもできる。このようの要求に応答して、ＵＩＭＳのブロック３４６において、次の作図領域が作図領域リスト３６２から検索され、ブロック３４８において、その作図領域が上述したようにブロック３６４からツリー構造を走査することにより再作図される。続いて、作図領域リスト３６２内に何か他の作図領域がまだ残っているか否かを判定するチェックが行われる。もし、それが残っているならば次に、ブロック３４８からブロック３４６へ戻る矢印仮想線で図１に示すように、ブロック３４６と３４８で表わされた処理を繰返す。作図領域リスト３６２内の作図領域の全てが再作図された場合にのみ、ブロック３０４からの下降矢印で示すように、ＵＩＭＳは次の処理を実行するアプリケーションプログラムへ戻される。
【００４１】
図形オブジェクトの属性の変更に応答して、アプリケーションプログラムにスクリーン（画面）の再作画のタイミングを制御させることにより、アプリケーションプログラマーはアプリケーションプログラムで感知された応答(perceived response)を最適化することができる。もし、例えば、アプリケーションプログラムで感知され応答がユーザからの入力の受け入れと処理により最適化される場合は、アプリケーションプログラムはユーザから入力の受け入れと処理を繰り返すループの形態になり、次いでスクリーンの１つの作図領域を更新することができる。もし、アプリケーションプログラムで感知された応答ができるだけ素早くスクリーンに保持されることにより最適化される場合は、アプリケーションプログラムは図形オブジェクトの属性についての何等かの変更のあった後に常に全部のスクリーンの更新を要求するという形態になることができる。要約すると、図形オブジェクトの属性の変更に基づいて非同期にスクリーンの更新をすることによって、またアプリケーションプログラムの制御の下にスクリーンの更新に就かせることによって、またスクリーンの一部のみの更新あるいは全部のスクリーンの更新についての任意選択（オプション）をアプリケーションプログラムに与えることによって、アプリケーションプログラマーはアプリケーションプログラムで感知された応答を最適化するアプリケーションプログラムを作成することができる。
【図面の簡単な説明】
【図１】本発明を適用した処理システムの操作を示す、一部フローチャート形態と一部メモリレイアウト形態による図である。
【図２】図形オブジェクトで作られた画像を表示する表示装置を示す図である。
【図３】図２に示した図形オブジェクトに対応するツリー図である。
【図４】作図領域のリストの最適化のための各自の配置を示す図である。
【図５】本発明に従う１つの位置から他の位置へ図形オブジェクトを移動する結果として生ずる表示装置上の一連の画面表示を示す図である。
【図６】図５に示した表示に対応するツリー図である。
【符号の説明】
１０  スクリーンオブジェクト
２０  クロックオブジェクト
２２、３１、５２、７２、９２  囲み枠オブジェクト
２４  タイムテキストオブジェクト
２６  デートテキストオブジェクト
３０  メニューオブジェクト
３３  タイトルテキストオブジェクト
３５  選択オブジェクト
３７  ＯＫボタンオブジェクト
３９  キャンセルボタンオブジェクト
４２、６２  選択ボックスオブジェクト
４４、６４、７４、８４、９４  テキストオブジェクト
４６、６６  選択オブジェクト
５４、５６、５８  選択アイテムオブジェクト
１００  表示装置
２００  データツリー構造
２１０  根ノード（スクリーンノード）
２２０  第１の子ノード（クロックノード）
２３０  第２の子ノード（メニューノード）
３０２  図形属性の変更ブロック
３０４  更新要求の発行ブロック
３４２  作図領域決定ブロック
３４４  作図領域の挿入ブロック
３４５  作図領域リストの最適化ブロック
３４６  作図領域の検索ブロック
３４８  表示オブジェクトの作図ブロック
３６２  作図領域リスト
３６４  スクリーンツリー
【図１】
0003695545.tif 000002
【図２】
0003695545.tif 000003
【図３】
0003695545.tif 000004
【図４】
0003695545.tif 000005
【図５】
0003695545.tif 000006
【図６】
0003695545.tif 000007