(57)【特許請求の範囲】
【請求項１】
表示デバイスの解像度に依存することなく、表示デバイスのスクリーン上にウインドウを表示する方法であって、前記スクリーンが表示デバイスの解像度によって設定されたデバイス・グリッドを有し、前記方法が
ウインドウを、境界、ウインドウの内容、及び可視領域を有するものとして定義するステップ、
ウインドウの境界、及び可視領域をデバイス・グリッドにマッピングするステップ、
ウインドウの境界をスクリーン上に描画するステップ、
ウインドウの内容をデバイス・グリッドにマッピングするステップ、
デバイス・スペース内のウインドウの内容のデバイス・グリッド・マップを調整し、デバイス・スペース内の可視領域に当てはめるステップ、及び
調整されたウインドウの内容を描画するステップを含むことを特徴とする、前記方法。
【請求項２】
ウインドウを定義するステップが更に、
ソース・スペースの汎用座標内にウインドウの境界を定義するステップ、及び
ソース・スペースの汎用座標内に可視領域を定義するステップを含むことを特徴とする、請求項１に記載の方法。
【請求項３】
ウインドウを定義するステップが更に、
ソース・スペースの局所座標内にウインドウの内容を定義するステップを含むことを特徴とする、請求項１に記載の方法。
【請求項４】
ウインドウの境界をマッピングするステップが、
ウインドウの境界と可視領域を、ソース・スペースの汎用座標からデバイス・グリッド・ピクセルに変換することを特徴とする、請求項１に記載の方法。
【請求項５】
ウインドウの内容をマッピングするステップが、
ウインドウの内容を、ソース・スペースの局所座標からデバイス・グリッド・ピクセルに変換することを特徴とする、請求項１に記載の方法。
【請求項６】
デバイス・グリッド・マップを調整するステップが更に、
可視領域の外側のデバイス・ピクセルを識別するステップ、及び前記識別されたデバイス・ピクセルをデバイス・ピクセルに対するウインドウの内容のマップから削減し、調整されたウインドウのインドウの内容を生成するステップを有することを特徴とする、請求項１に記載の方法。
【請求項７】
表示デバイスの解像度及び個々のウインドウの解像度に依存することなく、表示デバイスのスクリーン上に複数のウインドウを表示する方法であって、前記スクリーンが表示デバイスの解像度によって設定されたデバイス・グリッドを有し、前記方法が、
第１のウインドウを定義するステップ、
第２のウインドウを定義するステップ、
第１及び第２のウインドウのうち一方を上部ウインドウとして、他方を下部ウインドウとして識別するステップ、
上部ウインドウをデバイス・グリッドに対してマッピングするステップ、
表示デバイスのスクリーン上に上部ウインドウを描画するステップ、
上部ウインドウと同じ座標スペースに下部ウインドウの内容に関する可視領域を定義するステップ、
下部ウインドウ上の上部ウインドウの重複により、可視領域のサイズを調整するステップ、
可視領域及び下部ウインドウをデバイス・スペースに対してマッピングするステップ、
下部ウインドウを調節して、可視領域のサイズに当てはめるステップ、及び
表示デバイスのスクリーン上に、調節された下部ウインドウを描画するステップを含むことを特徴とする、前記方法。
【請求項８】
第１のウインドウを定義するステップが、
第１のウインドウの境界をソース・スペースの汎用座標内に定義するステップ、
第１の可視領域をソース・スペースの汎用座標内に定義するステップ、及び
第１のウインドウの内容を任意の解像度のソース・スペースの局所座標内に定義するステップを含むことを特徴とする、請求項７に記載の方法。
【請求項９】
第２のウインドウを定義するステップが、
第２のウインドウの境界をソース・スペースの汎用座標内に定義するステップ、
第２の可視領域をソース・スペースの汎用座標内に定義するステップ、及び
第２のウインドウの内容を任意の解像度のソース・スペースの局所座標内に定義するステップを含むことを特徴とする、請求項７に記載の方法。
【請求項１０】
上部ウインドウをデバイス・グリッドにマッピングするステップが、
上部ウインドウの境界をソース・スペースの汎用座標からデバイス・グリッドに対してマッピングするステップ、
上部ウインドウの可視領域を汎用座標からデバイス・グリッドに対してマッピングするステップ、
上部ウインドウの内容を局所座標からデバイス・グリッドに対してマッピングするステップ、及び
上部ウインドウの内容のデバイス・グリッド・マップをデバイス・スペース内で調整し、可視領域のデバイス・グリッド・マップに当てはめるステップを含むことを特徴とする、請求項８に記載の方法。
【請求項１１】
スクリーン上に上部ウインドウを描画するステップが、
境界のデバイス・グリッド・マップを描画するステップ、
調整された上部ウインドウの内容のデバイス・グリッド・マップを描画するステップを含むことを特徴とする、請求項10に記載の方法。
【請求項１２】
下部ウインドウの内容に関する可視領域を定義するステップが、
下部ウインドウの境界をソース・スペースの汎用座標内に定義するステップ、
下部ウインドウの可視領域をソース・スペースの汎用座標内に定義するステップ、及び
下部ウインドウの内容をソース・スペースの局所座標内に定義するステップを含むことを特徴とする、請求項10に記載の方法。
【請求項１３】
下部ウインドウ及び上部ウインドウの内容に関する可視領域が両方ともソース・スペースの汎用座標内に定義されることを特徴とする、請求項７に記載の方法。
【請求項１４】
可視領域のサイズを調節するステップが、
上部ウインドウが覆うデバイス・スペースの汎用座標内のピクセルを識別するステップ、
下部ウインドウが覆うデバイス・スペースの汎用座標内のピクセルを判定するステップ、及び
上部ウインドウ及び下部ウインドウ両方に覆われたデバイス・スペースの汎用座標内のピクセルを可視領域から除去するステップを含むことを特徴とする、請求項７に記載の方法。
【請求項１５】
可視領域のサイズを調節するステップが、
上部ウインドウが覆うデバイス・スペースの汎用座標内のピクセルを識別するステップ、
下部ウインドウの可視領域が覆うデバイス・スペースの汎用座標内のピクセルを判定するステップ、
上部ウインドウ及び下部ウインドウ両方に覆われたデバイス・スペースの汎用座標内のピクセルを可視領域から除去するステップ、
下部ウインドウの境界が覆うデバイス・スペースの汎用座標内のピクセルを判定するステップ、及び
上部ウインドウに覆われたデバイス・スペースの汎用座標内のピクセルを下部ウインドウの境界から除去するステップを含むことを特徴とする、請求項12に記載の方法。
【請求項１６】
可視領域及び下部ウインドウをデバイス・スペースにマッピングするステップが、
下部ウインドウの境界をソース・スペースの汎用座標からデバイス・グリッドに対してマッピングするステップ、
下部ウインドウの可視領域を汎用座標からデバイス・グリッドに対してマッピングするステップ、
下部ウインドウの内容を局所座標からデバイス・グリッドに対してマッピングするステップを含むことを特徴とする、請求項12に記載の方法。
【請求項１７】
下部ウインドウを調節して可視領域のサイズに当てはめるステップが、
下部ウインドウを形成するデバイス・ピクセルを識別するステップ、
下部ウインドウの可視領域を形成するデバイス・ピクセルを判定するステップ、及び
可視領域の外側のデバイス・ピクセルを除去するステップを含むことを特徴とする、請求項12に記載の方法。
【請求項１８】
複数の表示デバイスの有限の座標グリッド上で、解像度に依存しないスクロールを実現する方法であって、前記方法が、
ウインドウの内容のソース解像度を検索するステップ、
各表示デバイス解像度を検索するステップ、
ウインドウのスクロール量を入力するステップ、
デバイスの解像度が繰り返される周期を判定するステップ、
オブジェクトがシフトされる量を判定し、そのオブジェクトをシフトするステップ、及び
起点を調節する量を判定し、その起点を調節するステップを含むことを特徴とする前記方法。
【請求項１９】
デバイスの解像度が繰り返される周期を判定するステップが、計算式：周期＝ソース解像度／GCD（ソース解像度,デバイス１の解像度,デバイス２の解像度...デバイスｎの解像度）で計算し、ここでGCDは最大公約数であるステップを含むことを特徴とする、請求項18に記載の方法。
【請求項２０】
オブジェクトがシフトされる量を判定するステップが、計算式：シフト単位＝周期×切り捨て（スクロール量／周期）で計算するステップを含むことを特徴とする、請求項18に記載の方法。
【請求項２１】
起点を調節する量を判定するステップが、計算式：起点調節量＝スクロール量MOD周期で計算し、ここでMODがモジューロ関数であるステップを含むことを特徴とする、請求項18に記載の方法。
【発明の詳細な説明】
１．発明の背景
本発明は一般に表示デバイスにグラフィック・イメージを表示するための方法に関する。特に、本発明はそれ自身の解像度の補完を行う表示デバイスに対してグラフィック・イメージをレンダリングするための方法を実行するコンピュータに関し、より詳しくは、表示デバイスの解像度に依存しない、表示デバイス上の重複した複数のウインドウをレンダリングする方法に関する。
２．関連技術の説明
現在のグラフィック・システムは通常、イメージを定義するソース解像度を指す「ソース・スペース」を提供する。イメージはソース・スペースの汎用座標及び／または局所座標に関して定義される。イメージを定義する座標システムは局所または汎用のどちらでもよい。「汎用スペース」は、多くの他の座標スペースを包含する、ソース解像度において提供される汎用座標スペースを指す。「局所スペース」は、やはりソース解像度において提供される汎用スペースに含まれる座標スペースである。その座標スペースは汎用スペース内の参照ポイントに対して局所的関係にある。ユーザの指示の元にコンピュータは局所座標及び／または汎用座標におけるイメージの様々なパラメータを変更することによってイメージを操作し、編集する。コンピュータがグラフィック・イメージに関する所望の操作全てを実行した後、そのイメージはソース・スペースからのイメージ定義を「デバイス・スペース」に変換することによって表示デバイス上にレンダリングされる。「デバイス・スペース」はイメージがレンダリングされるデバイスのピクセル解像度を指す。デバイス・スペースとソース・スペースの間には１対１の対応が存在しうる（即ち、デバイス・スペース内で用いられるのと同じ解像度がソース・スペース内で用いられる）。しかし、ソース・スペースとデバイス・スペースの間の解像度の違いを考慮してマッピング機能を使用し、ソース・スペースをデバイス・スペースにマッピングしなければならない場合もある。
表示デバイスにグラフィック・イメージをレンダリングする場合の１つの問題はグリッディング(gridding)である。グリッディングは１つの解像度で定義されたイメージを第２の異なる解像度にマッピングする際に生じる。イメージは通常、局所または汎用座標システムのソース・スペース単位に定義されたイメージの範囲及び境界を指定することによって定義される。イメージが表示デバイス上にレンダリングされた時に、そのイメージを含む領域が局所または汎用座標システムのソース単位から、表示デバイスのデバイス単位またはピクセルに変換される。図１に示された図は、インチあたり72ドット(72DPI)のソース・スペースから、128DPIのデバイス・スペースへの変換が例示されている。四捨五入または切り捨て機能が、どのようにしてグリッディングが発生するかを判定する。図１に示すように、１つのソース単位は１つのデバイス・ピクセル又は２つのデバイス・ピクセルのどちらかにマッピングされる。例えば、ソース・ピクセル３は単一のデバイス・ピクセル、ピクセルｅにマッピングされ、隣のピクセル４は２つのピクセルｆとｇにマッピングされる。このソース単位は、ソース・スペースとデバイス・スペースの間の解像度の違いによってより多くのピクセルにマッピングされることすらある。このグリッディングという有害な結果は、６つのソース単位の長さの線をレンダリングする場合を考えると、より明らかになる。図に示すように、この線をソース・スペースのピクセル１からピクセル６にわたって描画する場合、その線はデバイス・スペース内にレンダリングされたピクセルａからピクセルｋまでの11個のピクセルの長さを有する。同じ長さの線がソース・スペースのピクセル４から10まで描画された場合、そのデバイス・ピクセルにおける線の長さはピクセルｆからピクセルｑまでの12個のピクセル分である。従って、ソース・スペースにおいて同じ長さの線は、その線が配置された場合によって、デバイス・スペース内で異なる長さを有する可能性がある。こうしたグリッディングは、ウインドウのサイズ及び表示デバイス上の他のイメージのサイズがそれらの表示デバイス上の位置に応じて変化するという問題を引き起こす。
従来のグラフィック・システムにおける別の問題は、デバイス・ピクセルの所有者が、ソース・スペースが局所座標又は汎用座標を使用するかどうかに依存することである。図2A、及び図2Bに示すように、特定のソース・ピクセルに対応するデバイス・ピクセル（１つ又は複数）が、汎用グリッディングか局所グリッディングが使用されているかどうかに依存して変化する。図2A、及び図2Bは共に、ソース・スペースの10個のピクセルを17個のデバイス・ピクセルに、解像度をソース・ピクセルにおける72DPIからデバイス・ソースにおける128DPIに変更してマッピングするところを示している。図2Aの汎用スペースにおいて、ピクセル２は２つのデバイス・ピクセルｃ及びｄによって表されている。しかし、図2Bの局所スペースにおいて示されているように、同じピクセル２は１つのデバイス・ピクセルｃによって表されている。デバイス・ピクセルの所有者の違いは、スクリーンの外からスクリーン上にイメージを高速に転送する妨げとなるため、問題となる。この違いのために、汎用座標において定義された多くのイメージはスクリーン上に表示される前に変換され、処理されなければならない。この、デバイス・ピクセルの所有者が局所座標、または汎用座標の使用に依存するという問題は特にウインドウ・システムにとって問題となる。ウインドウは表示デバイスのスクリーンの一部を覆うだけであることが多く、従ってその内容は局所座標において定義される。ウインドウの境界は汎用座標において定義されるが、スクリーンの背景は局所座標において定義される。従って、デバイス・ピクセルの所有者に関して競合が存在する。この競合は表示デバイスが互いに重複した多くのウインドウを表現可能でかつ極めて頻繁に表現しているという事実によってその程度を増す。ウインドウの重複は汎用スペースとは異なるオフセットを有する２つの局所スペースの近くのピクセルの所有者をめぐる競争をより激化させる。従って、複数の重複したウインドウ及びその局所スペースに伴う問題を排除するためのシステム、及び方法が必要とされている。
従来のウインドウ・システムに伴う別の問題は、ウインドウの移動の度にウインドウとその内容の再描画が必要となることである。従来技術では、ウインドウが移動する度にウインドウの境界と内容の両方を再描画しなければならない。ウインドウは一般的に局所座標で定義されているために、ウインドウが移動する度に表示デバイスの座標グリッドに対して再描画されなければならない。この再描画処理がコンピュータ資源の多くを消費し、コンピュータの処理速度を低下させる可能性がある。更に、一定間隔の表示内容更新はユーザにとって好ましいものではない。従って、ウインドウの移動に関するオーバヘッドを排除するウインドウ・システムの必要性がある。
グラフィック表示方法の中には、表示デバイス上のウインドウの起点を、描画操作を実行するための参照ポイントとして使用するものがある。そのウインドウは、表示デバイスのスクリーン上に、ウインドウの位置に依存しない同じデバイス・グリッドを保持する。こうした環境においてウインドウの内容をスクロールすると、ウインドウの起点がスクロールの操作につれて移動することが必要になる。ウインドウの起点はグラフィック・システムによって定義された座標スペースの境界に制限されているので、通常はより小さい局所スペースであり、ウインドウ内でスクロール可能なデータのサイズはグラフィック・座標を境界として制限される。従って、完全なデバイス・グリッドを維持し、境界としてのグラフィック・座標を除去する方法が必要とされる。更に、個別のウインドウが汎用グリッドに依存しないウインドウ自身のグリッディングを有する場合、ウインドウが互いに重複する時の境界上のピクセルの間の所有者の問題があるので、ウインドウの間で相互作用が生じる。
従って、複数の起点及び多様な解像度によって引き起こされる上述のグリッディングの問題を解決する方法が必要とされる。
発明の概要
本発明は、従来技術の制約及び欠点を、解像度に依存しないウインドウ・システムを用いて克服する。この解像度に依存しないウインドウ・システムは、ソース・スペース内に描画されたもの全てを指定するグラフィック・システムのデバイス・スペース内で、直接ウインドウ操作を実施する方法を含む。座標グリッド上の異なる場所でオブジェクトをレンダリングによって生じるサイズの変更は、ウィンドウの境界に吸収され、それによってウインドウの内容を再描画なしに移動できる。このウインドウの境界は再描画されなければならないが、その内容は単にコピーされるだけでよい。本発明によって、ウインドウがレンダリング・システムのソース解像度と異なる解像度で表示された場合でも、ウインドウを再描画なしに移動可能である。更に、ウインドウの内容がウインドウの左上の座標に関連して描画され、デバイスのウインドウ位置に依存しない、ウインドウ自身のデバイス・グリッドを有する各ウインドウが提供される。本発明は、表示デバイスの解像度に依存しないウインドウを表示する方法、１つまたは複数の任意の解像度のデバイス上で、異なるソース解像度を有する複数の重複したウインドウをレンダリングする方法、及び表示デバイスの解像度に依存しない有限の座標グリッドをスクロールする方法を含む。これらの方法を単独、又は組み合わせて用い、表示デバイス上に表示されるグラフィック・イメージを飛躍的に拡張することができる。
表示デバイスの解像度に依存しないウインドウを表示する方法は、汎用座標内にウインドウの境界を定義するステップ、ソース・スペースの局所座標内にウインドウの内容を定義するステップ、汎用座標内に可視領域を定義するステップ、汎用座標からデバイス・グリッドにウインドウの境界をマッピングするステップ、スクリーン上にウインドウの境界を描画するステップ、ソース・スペースの汎用座標からデバイス・グリッドに可視領域をマッピングするステップ、ソース・スペースの局所座標からデバイス・グリッドにウインドウの内容をマッピングするステップ、デバイス・スペース内のウインドウの内容のマップ情報を調整して、デバイス・スペース内の可視領域に当てはめるステップ、次に調整されたウインドウの内容を描画するステップを含む。
【図面の簡単な説明】
図１は、ソース・スペースからデバイス・スペースにイメージをマッピングする従来技術のグラフィック表現を示す図である。
図２Aは、汎用ソース・スペースからデバイス・スペースにイメージをマッピングする従来技術のグラフィック表現を示す図である。
図２Bは、局所ソース・スペースからデバイス・スペースにイメージをマッピングする従来技術のグラフィック表現を示す図である。
図３A、及び３Bは、ソース・ピクセルをデバイス・ピクセルにマッピングする、及びソース・ピクセル内のウインドウをデバイス・ピクセルにマッピングするグラフィック表現をそれぞれ示す図である。
図４は、第１のウインドウに重複する第２のウインドウを有するスクリーン・ディスプレイのグラフィック表現を示す図である。
図５は、ソース・ピクセル及びデバイス・ピクセルにマッピングされた第１及び第２の重複するウインドウのグラフィック表現をそれぞれ示す図である。
図６A、及び６Bは、ソース・ピクセル及びデバイス・ピクセルにマッピングされた第２のウインドウのグラフィック表現をそれぞれ示す図である。
図７は、本発明に従う、解像度に依存しないウインドウをレンダリングする好適な方法のフローチャートである。
図８A、及び８Bは、本発明に従う、解像度に依存しない複数の重複したウインドウをレンダリングする好適な方法のフローチャートである。
図９は、有限の座標グリッド上でスクロールを行う好適な方法のフローチャートである。
好適実施例の詳細な説明
ここで図3Aと3Bを参照すると、本発明がウインドウ・システムにおいてグリッディングの影響を克服する方法が示されている。本発明の好適実施例を説明するために、汎用座標はソース・スペースと同じ解像度存在するものとして定義される。図3Aはソース・ピクセルのグリッド12の一部がデバイス・ピクセル14のグリッドに対し、水平ピクセルに関するマッピングが行われている例が示されている。この例では、ソース・スペースは72DPIであり、デバイス・スペースは128DPIである。このマッピングは垂直のピクセルに関しても同様に行われる。これは図１に示したものと同様である。図から分かるように、ソース・ピクセルのほとんどは２つのデバイス・ピクセルにマッピングされる。しかし、第３のソース・ピクセル16は１つのデバイス・ピクセル18にしかマッピングされない。図3Bは、本発明によるウインドウ20がソース・ピクセルのグリッド内に定義され、そのウインドウがどのようにデバイス・ピクセルのグリッド14上のスクリーンにレンダリングされるかを例示している。ウインドウ20はソース・スペース・ピクセルのグリッド12上に、境界22及び内容24を含むことが好ましい。図で示すように、ウインドウ20は、境界28及び内容30を同様に含むデバイス・スペース・ウインドウ26にマッピングされる。このデバイス・ピクセルのグリッド14に対するマッピングは、ウインドウの位置がその出現にどのように影響するかを例示している。ウインドウ26が図3Bに示すように配置される場合、その境界、特に左側の境界は通常２つのデバイス・ピクセルを占める幅である。しかし、汎用座標内を各ウインドウが移動するにつれて、そのウインドウの枠のグリッディングがデバイス・スペース内で変化する。ウインドウ26が３つの汎用ピクセル分だけ右に移動すると、ウインドウ26の左の境界は半分に減少する。図3Bに示すように、このグリッディング現象は上部境界と下部境界の間の違いによって示される。ウインドウ26の位置のために、上部境界は２ピクセルの高さであるのに対して、下部境界は１ピクセルの高さである。従って、ウインドウの内容に関するグリッディングの影響は、本発明で境界のグリッディングの影響を吸収することによって、また、それによって内容のサイズ及び相対的なグリッディングをウインドウの位置に関係なく同じに保ち、ウインドウの内容を再描画する必要をなくすことによって排除される。
次に図４を参照すると、本発明によるウインドウの定義が記述されている。図４は第１及び第２のウインドウ34、36を示す表示デバイスのスクリーン32を例示している。本発明が有益であるのは、個別のウインドウ及び互いに重複している複数のウインドウの両方に関して、ウインドウ・システム上のグリッディングの影響を低減させる点である。本発明は、各ウインドウ34、36をウインドウの境界38、ウインドウの内容40、可視領域42、及びクリップ領域44を含むものとして定義することによって、この結果を達成する。ウインドウの境界38はウインドウの内容40を取り囲み、ウインドウ34、36のサイズを確定する矩形の枠を含むことが望ましい。この境界38は汎用デバイス・グリッドの汎用座標内に定義されることが好ましい。例えば、境界38は72DPIの汎用座標内に指定されうる。ウインドウの境界38は図４に示すようにタイトルも含むことができる。ウインドウの内容40は表示されるべきイメージである。ウインドウの内容40は、境界38の汎用座標に関連する局所デバイス・グリッドの局所座標内に定義されることが望ましい。例えば、内容40はポート解像度の局所座標に指定されうる。ウインドウの境界38は汎用デバイス・グリッドにマッピングされるが、ウインドウの内容40は局所デバイス・グリッドにマッピングされる。このことは２つのグリッドの間に重複があり得ることを意味している（例えば、内容の局所デバイス・グリッド及びウインドウの境界38の汎用グリッドの間にデバイス・ピクセルに関する競合が存在する可能性がある）。本発明は可視領域42と呼ばれる領域にわたってこの競合を排除する。可視領域42は汎用座標内に定義され、見ることができるウインドウ34、36の内容ピクセルを表す。任意のウインドウの内容の描画は、デバイス・レベルでこの可視領域42にクリップすることができる。これは、ウインドウ34、36への描画が、ソース・スペース汎用グリッドを用いてデバイス・スペース内のウインドウの可視ピクセルにクリップされることを意味している。ウインドウ34、36への描画は応用プログラムでクリップ領域44を使用することによって達成される。クリップ領域44は、内容と同様に局所座標内で指定され、例えばポート解像度の局所座標内で指定される。ウインドウの内容40がポートに関連して描画されるために、その内容はウインドウ34、36がどこに配置されようと同じ場所に留まる。以前のウインドウの位置と新しいウインドウの位置のグリッディングの違いはウインドウの境界38内で発生する。従って、ウインドウ（このウインドウの境界は汎用スペース内に72DPIで指定される）が128DPIのモニタ上で移動した場合、そのウインドウの境界38は１つまたは複数のデバイス・ピクセル（位置に依存する）によって、今まで表現されていたものから変化するが、内容40はそのまま変わらない。
図７をここで参照すると、本発明のシステムを用いてウインドウを表示するための好適な方法が記述されている。この好適な方法はステップ50のウインドウの境界38を汎用座標内に定義することによって開始される。次にこの方法はステップ51でウインドウの内容40をソース・スペースの局所座標内に任意のウインドウ解像度で定義する。ステップ52でこの方法は、汎用座標内に可視領域42を定義する。次にステップ53で、ウインドウの境界38が汎用座標からデバイス・グリッドにマッピングされ、ウインドウの境界38がスクリーン32上に描画される。次にステップ54で、可視領域42が汎用座標からデバイス・グリッドにマッピングされる。次にこの方法はウインドウの内容40をウインドウ・ソース・スペースの局所座標からデバイス・グリッドにステップ55でマッピングする。ステップ56で、この方法はデバイス・スペース内のウインドウの内容40のマップを調整し、デバイス・スペース内の可視領域42に当てはめる。ウインドウの内容40は、可視領域42の境界の外側のこれらのデバイス・ピクセルを識別することによって調整される。こうした任意のピクセルは排除され、調整されたウインドウの内容が生成される。この調整されたウインドウの内容は次に、ステップ57でスクリーン上に描画され、可視領域42と境界38の両方が汎用座標内に定義されているために、デバイス・ピクセルに関する競合が発生しないよう保証される。
ここで図5A、及び5Bを参照すると、複数の層を成したウインドウとともにグリッディングの問題が示されている。図5Aはソース汎用スペース内の第１及び第２のウインドウ80、82を示している。第２のウインドウＢ82は第１のウインドウＡ80を、図5Aに示すように覆う可能性がある。しかし、ウインドウ80、82のそれぞれが通常局所座標内に定義されているので、グリッディングのためにデバイス・ピクセルの競合が発生する可能性がある。図5Bは第１及び第２のデバイス・スペース・ウインドウ84、86をもたらす第１及び第２のウインドウ80、82の汎用スペースへのマッピングを示している。各ウインドウの内容がそれ自身の座標グリッドを有しているので、ウインドウＢ86の左端が以前にウインドウＡの内容84によって所有されていたピクセル88を分割する。このデバイス・ピクセルの競合はウインドウのイメージに関する問題を発生させる。
本発明のシステムは複数の重複したウインドウをレンダリングする方法も含む。１つのウインドウが他のウインドウによって覆われている場合、本発明は下にあるウインドウの可視領域から上で覆っているウインドウの領域を除去することが望ましい。このことは、覆われた方のウインドウに、上にあるウインドウが所有する任意のピクセルを重ねて描画することを抑止し、デバイス・ピクセルの競合によって発生する問題を排除する。
ここで図8A、及び8Bを参照すると、本発明による、複数の、重複した、解像度に依存しないウインドウをレンダリングする方法の好適実施例が記述されている。この方法は、単一ウインドウに関する方法と同様、ソース・スペース内に第１及び第２のウインドウを定義することから始まる。ステップ60では、第１のウインドウに関する境界及び可視領域が汎用スペース内に定義される。ステップ61では、この方法が第１のウインドウの内容を局所スペース内に定義する。次のステップ62では、この処理が第２のウインドウに関する境界及び可視領域を汎用スペース内に定義する。第２のウインドウの内容がステップ63で局所スペース内に定義される。次にこの方法はステップ64で、どのウインドウがそれらの中で上部にあるかを判定する。その上部にあるウインドウが、図７に関して前述したのと同様のステップを用いていつも通りに描画されうる。この好適な方法はステップ65で上部ウインドウの境界をソース・スペースの汎用座標からデバイス・グリッドにマッピングし、スクリーン上にその境界を描画する。次にステップ66で、上部ウインドウの可視領域が、汎用座標からデバイス・グリッドにマッピングされる。この方法は次に、上部ウインドウの内容を局所座標からデバイス・グリッドにステップ67でマッピングする。ステップ68でこの方法は、デバイス・スペース内でステップ67の結果を調整し、デバイス・スペース内の可視領域に当てはめる。上部ウインドウに関する、調整されたウインドウの内容は次にスクリーン上に描画される。
しかし、下部ウインドウが描画される前に、上部ウインドウによって覆われたウインドウの一部がディスプレイ上で描画されないように、下方のウインドウは修正されるか又は調節されなければならない。ステップ70で、この方法は下部ウインドウの境界をデバイス・グリッドにマッピングする。次にステップ71で、境界が削減されるか又は調節されて、上部ウインドウに覆われたこれらのピクセルを除去する。両方のウインドウに関する境界が汎用座標内に定義されているため、２つの境界がスクリーン上に描画された時に、ピクセルのいかなる競合も発生しない。次にステップ72で、下部ウインドウの可視領域90が、上部ウインドウによって覆われていないピクセルのみを含むように調節される。図6Aの例で示すように、ウインドウＢがウインドウＡの上に動かされた時、ウインドウＡの可視領域90は、ウインドウＢがウインドウＡと重複する場所の６つのソース・ピクセルだけ削減される。この削減されたエリアは調節された可視領域90である。次にステップ73で、下部ウインドウのその調節された可視領域90が、調節された可視デバイス・スペース領域92にマッピングされる。図6Bで最も良く分かるように、このマッピングはウインドウＡ内の任意の描画ソースを正しいデバイス・ピクセルにクリップする、デバイス・スペース可視領域92を生成する。調節された可視領域90もまた、汎用座標内に定義され、従って下部ウインドウの内容と上部ウインドウの境界の間のピクセルの全ての競合が排除される。次に、この方法はステップ74で、下部ウインドウの内容をデバイス・グリッドにマッピングする。ステップ75で、デバイス・グリッド単位内の下部ウインドウの内容が調整され、調節された可視領域92を形成するデバイス・スペース単位に当てはめる。最後にステップ76で、調節された下部ウインドウのウインドウの内容がスクリーン上に描画される。ウインドウＢがウインドウＡ上に動かされた時に、問題となるピクセルはウインドウＡの内容によって所有される。従って、ウインドウＢの境界が再描画され、これらのピクセルに所有者が与えられる。ウインドウＡの可視領域は次に、ウインドウＡ内の後続の任意の描画が正しいピクセルにクリップされるように調整される。
ここで図９を参照すると、ウインドウ・システムを改良する別の方法が記述されている。図９は有限の座標グリッド上の解像度スクロールに関する好適な方法を例示している。上述の通り、描画処理はウインドウの起点の関連して行われる。ウインドウは、そのウインドウのデバイス上の位置に関係なく同じデバイス・グリッドを維持する。本発明のシステムにおいてスクロール・ウインドウの内容をスクロールするために、その起点はスクロール操作に応じて動かされなければならない。この起点が、グラフィック・システムによって定義された座標スペースの境界に制限されるため、ウインドウ内でスクロール可能なデータのサイズは制限される。本発明はこの問題を排除し、ウインドウのデバイス・グリッドの完全性を維持する。このことは、たとえ付属デバイスが異なる解像度を有していても、全ての付属デバイスに関して正しいグリッディングが提供される処理を備えた本発明において達成される。
図９に示すように、この方法はステップ100で、ウインドウのイメージ又は内容が定義されているソース解像度を検索することによって開始される。次にステップ101においてこの方法は、システムに接続された各デバイスの解像度を検索する。次にステップ102でスクロールされるべき表示の量が入力される。次にステップ103で、この方法はデバイスの解像度が繰り返される周期を判定する。言い換えると、全てのデバイス・グリッド内の同じポイントが繰り返される前の、ソース・ピクセルの数である。この周期は以下の式を用いて判定することができる。
周期＝ソース解像度／GCD(ソース解像度,デバイス１の解像度,デバイス２の解像度．．．デバイスｎの解像度)
この式において、GCDは最大公約数を見つけだす関数である。ステップ103において一旦周期が判定されると、この方法はオブジェクトを２ステップでスクロールすることによってオブジェクトを同じグリッド上に配置させるように、そのオブジェクトをスクロールさせる。最初にそのオブジェクトがその周期の倍数の量を移動して、次に起点が、周期より少ない、オブジェクトがスクロールされるべき任意の残りの量だけオフセットされる。この２つの部分処理によって、オブジェクトのグリッディングが維持される。ステップ104で、この方法はオブジェクトがシフトされるべき量を判定し、次にそのオブジェクトをシフトするのが望ましい。この処理はオブジェクトを、上または下（スクロールと反対方向）に移動させる。オブジェクトがシフトされるべき量はスクロール量／周期といった整数除算と周期の乗算を用いて判定することができる。即ち以下の式によって判定可能である。
シフト単位＝周期×切り捨て（スクロール量／周期）
シフト量が計算されると、オブジェクトがその値だけシフトされる。次にステップ105で、この方法がスクロール量の入力を得るために起点を調整する量を判定する。起点が調整されるべき量は以下の式によって判定される。
起点調整量＝スクロール量  MOD周期
ここでMODはモジューロ関数を表し、代替実施例においては、起点が調整されるべき量は、スクロール量からシフト単位を減算することによっても計算可能である。この方法は次に、その起点を、その起点が調整されるべき量だけ、オブジェクトがシフトされた方向とは逆の方向に移動させることによって調整する。従って、このオブジェクトは同じグリッドを維持しながら効果的にスクロール量だけ移動できる。ここでは垂直方向のスクロールのみが説明されているが、当業者には、水平方向のスクロールにもこの方法が適用可能であることが理解される。
例えば、72DPIのソース・スペースを有するシステムにおいて、155ピクセルだけ下にオブジェクトをスクロールすることを考えてみる。このシステムは128DPIのデバイス・スペースで第１のモニタと接続されており、108DPIの解像度で第２のモニタと接続されている。デバイスグリッドの繰り返しがある周期は以下の通りである。
0003892900.tif 000002
オブジェクトが次に以下の量だけ下にシフトされる。
0003892900.tif 000003
そして最後に起点が上に以下の量だけ調整される。
起点調整量＝155 MOD 18＝11ピクセル
本発明は特定の好適実施例に関連して記述を行ってきたが、本発明には様々な修正が提供されうることが当業者には理解される。例えば、図７及び図８に関連して記述した方法に加えて、解像度に依存しないウインドウをレンダリングする方法に関する他の実施例が存在しうる。好適実施例に対する、これら及び他の変更及び修正が、本発明によって提供され、その範囲は請求の範囲によってのみ制限される。
【図１】
0003892900.tif 000004
【図２Ａ】
0003892900.tif 000005
【図２Ｂ】
0003892900.tif 000006
【図３Ａ】
0003892900.tif 000007
【図３Ｂ】
0003892900.tif 000008
【図４】
0003892900.tif 000009
【図５Ａ】
0003892900.tif 000010
【図５Ｂ】
0003892900.tif 000011
【図６Ａ】
0003892900.tif 000012
【図６Ｂ】
0003892900.tif 000013
【図７】
0003892900.tif 000014
【図８Ａ】
0003892900.tif 000015
【図８Ｂ】
0003892900.tif 000016
【図９】
0003892900.tif 000017