(57)【要約】【課題】  カラー・バッファ及びオーバーレイ・バッファの各々についてのＷＩＤを識別するのに用いられるビット数を、その時点でアクティブなアプリケーション環境に基づいてグラフィックス・アダプタにプログラムすることができる機構を提供する。【解決手段】  本発明の装置及び方法を用いて、プログラム可能ＷＡＴカラー・サイズ選択装置が、グラフィックス・アダプタのＲＡＭＤＡＣ内に構成される。このプログラム可能ＷＡＴカラー・サイズ選択装置は、ＷＩＤバッファからのＷＩＤの様々なビット分割を用いてカラーＷＡＴテーブル及びオーバーレイＷＡＴテーブルへの異なる索引を取得するように、動的にプログラムすることができる。このように、例えば８ビットＷＩＤの異なる分割を、プログラム可能ＷＡＴカラー・サイズ選択装置の設定に基づいて取得し、様々なカラー及びオーバーレイ能力が動的に得られるようにすることができる。
2006524855.tif 000002
【特許請求の範囲】
【請求項１】
コンピューティング装置の表示装置上にグラフィカル表示を生成する方法であって、
ウィンドウ属性テーブルに索引付けするためのウィンドウＩＤのビット数を設定する制御データを受け取るステップと、
ウィンドウＩＤバッファからウィンドウＩＤを読み込むステップと、
前記制御データに基づいて設定された前記ウィンドウ属性テーブルに索引付けするための前記ビット数に従って、前記ウィンドウＩＤを第１のビットの組及び第２のビットの組に分割するステップと、
少なくとも１つのウィンドウ属性テーブルから取得される少なくとも１つのエントリであって、前記第１のビットの組及び前記第２のビットの組の少なくとも一方によって識別されるエントリを用いて、グラフィカル表示を生成するステップと、
を含む方法。
【請求項２】
ウィンドウ属性テーブルに索引付けするためのウィンドウＩＤの前記ビット数は、カラー・ウィンドウ属性テーブルに索引付けするためのウィンドウＩＤのビット数である、請求項１に記載の方法。
【請求項３】
少なくとも１つのウィンドウ属性テーブルから取得される少なくとも１つのエントリを用いてグラフィカル表示を生成する前記ステップが、
前記第１のビットの組をカラー・ウィンドウ属性テーブルに送るステップと、
前記第２のビットの組をオーバーレイ・ウィンドウ属性テーブルに送るステップと、
前記カラー・ウィンドウ属性テーブルへの索引である前記第１のビットの組に基づいて、該カラー・ウィンドウ属性テーブル内の第１のエントリを取得するステップと、
前記オーバーレイ・ウィンドウ属性テーブルへの索引である前記第２のビットの組に基づいて、該オーバーレイ・ウィンドウ属性テーブル内の第２のエントリを取得するステップと、
を含む、請求項１に記載の方法。
【請求項４】
カラー・バッファからデータを受け取るステップと、
オーバーレイ・バッファからデータを受け取るステップと、
前記カラー・バッファからの前記データ、前記オーバーレイ・バッファからの前記データ、前記第１のエントリ、及び前記第２のエントリに基づいて、前記グラフィカル表示を生成するステップと、
をさらに含む、請求項３に記載の方法。
【請求項５】
前記ウィンドウＩＤのビットの分割を識別する少なくとも１つのレジスタを動的に設定するステップをさらに含み、前記制御データは、グラフィックス・アダプタによってサポートされるグラフィカル・パラメータの組を要求するアプリケーションに応答して動的に受け取られる、請求項１に記載の方法。
【請求項６】
コンピューティング装置の表示装置上にグラフィカル表示を生成するための、コンピュータ可読媒体内のコンピュータ・プログラムであって、当該コンピューティング装置に、
ウィンドウ属性テーブルに索引付けするためのウィンドウＩＤのビット数を設定する制御データを受け取らせ、
ウィンドウＩＤバッファからウィンドウＩＤを読み込ませ、
前記制御データに基づいて設定された前記ウィンドウ属性テーブルに索引付けするための前記ビット数に従って、前記ウィンドウＩＤを第１のビットの組及び第２のビットの組に分割させ、
少なくとも１つのウィンドウ属性テーブルから取得される少なくとも１つのエントリであって、前記第１のビットの組及び前記第２のビットの組の少なくとも一方によって識別されるエントリを用いて、グラフィカル表示を生成させる、
コンピュータ・プログラム。
【請求項７】
コンピューティング装置の表示装置上にグラフィカル表示を生成するための装置であって、
ウィンドウ属性テーブルに索引付けするためのウィンドウＩＤのビット数を設定する制御データを受け取るための手段と、
ウィンドウＩＤバッファからウィンドウＩＤを読み込むための手段と、
前記制御データに基づいて設定された前記ウィンドウ属性テーブルに索引付けするための前記ビット数に従って、前記ウィンドウＩＤを第１のビットの組及び第２のビットの組に分割する手段と、
少なくとも１つのウィンドウ属性テーブルから取得される少なくとも１つのエントリであって、前記第１のビットの組及び前記第２のビットの組の少なくとも一方によって識別されるエントリを用いて、グラフィカル表示を生成するための手段と、
を備える装置。
【請求項８】
ウィンドウ属性テーブルに索引付けするためのウィンドウＩＤの前記ビット数は、カラー・ウィンドウ属性テーブルに索引付けするためのウィンドウＩＤのビット数である、請求項７に記載の装置。
【請求項９】
少なくとも１つのウィンドウ属性テーブルから取得される少なくとも１つのエントリを用いてグラフィカル表示を生成するための前記手段が、
前記第１のビットの組をカラー・ウィンドウ属性テーブルに送るための手段と、
前記第２のビットの組をオーバーレイ・ウィンドウ属性テーブルに送るための手段と、
前記カラー・ウィンドウ属性テーブルへの索引である前記第１のビットの組に基づいて、該カラー・ウィンドウ属性テーブル内の第１のエントリを取得するための手段と、
前記オーバーレイ・ウィンドウ属性テーブルへの索引である前記第２のビットの組に基づいて、該オーバーレイ・ウィンドウ属性テーブル内の第２のエントリを取得するための手段と、
を備える、請求項７に記載の装置。
【請求項１０】
カラー・バッファからデータを受け取るための手段と、
オーバーレイ・バッファからデータを受け取るための手段と、
前記カラー・バッファからの前記データ、前記オーバーレイ・バッファからの前記データ、前記第１のエントリ、及び前記第２のエントリに基づいて、前記グラフィカル表示を生成するための手段と、
をさらに備える、請求項９に記載の装置。
【請求項１１】
前記グラフィカル表示は、前記カラー・バッファからの前記データと、前記オーバーレイ・バッファからの前記データと、前記第１のエントリと、前記第２のエントリとを入力として受け取る段階的パイプラインによって生成される、請求項１０に記載の装置。
【請求項１２】
前記制御データは、ウィンドウ属性テーブル・カラー・サイズを設定するアプリケーションからの要求に応答して、グラフィックス・デバイス・ドライバから受け取られる、請求項７に記載の装置。
【請求項１３】
前記要求は、前記アプリケーションのウィンドウを開くときに該アプリケーションによって生成される、請求項１２に記載の装置。
【請求項１４】
前記グラフィックス・デバイス・ドライバはＸＳｅｒｖｅｒデバイス・ドライバである、請求項１２に記載の装置。
【請求項１５】
前記ウィンドウＩＤのビットの分割を識別する少なくとも１つのレジスタを動的に設定する手段をさらに備え、前記制御データは、グラフィックス・アダプタによってサポートされるグラフィカル・パラメータの組を要求するアプリケーションに応答して動的に受け取られる、請求項７に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、改良されたデータ処理システムに関し、具体的には、データ処理システムにおいてピクセル（ｐｉｘｅｌ）を表示するための方法及び装置に関する。さらにより具体的には、本発明は、アプリケーション環境の要件に基づいて、データ処理システムにおいてピクセルを表示するのに用いられるウィンドウ識別バッファを動的に更新するための方法及び装置を提供する。
【背景技術】
【０００２】
コンピュータ・グラフィックスは、コンピュータによるモデルから実際の又は仮想のオブジェクトを合成又は表示することに関係する。コンピュータ・グラフィックス・システムにおいては、画像は、ユーザに対して二次元及び三次元の形態で表示装置上に表示される。これらの画像は、ピクセルを用いて表示される。ピクセルは、ピクチャ・エレメント（ｐｉｃｔｕｒｅ  ｅｌｅｍｅｎｔ）を省略したものである。コンピュータによってスクリーン上に生成されるか又はプリンタによって紙の上に生成される画像を形成するように個々に「描かれる」何千もの点からなる直線で構成されたグリッドの中の１つの点である。ピクセルは、文字、数字、又はグラフィックスを作成する際に、表示又は印刷用のハードウェア及びソフトウェアが処理することができる最小の要素である。これらのピクセル、及びこれらのピクセルに関連する情報は、バッファに格納される。１つのピクセルを記述する情報は、ウィンドウＩＤ（ＷＩＤ）を用いて識別される。ＷＩＤは、ウィンドウ属性テーブル（ＷＡＴ）への索引として用いられる。ＷＡＴは、ピクセルがスクリーン上にどのように表示されるかを記述する情報を含む。例えば、ＷＡＴは、ピクセルについての深さ、カラー・マップ、バッファ、及びガンマを識別する。
【０００３】
典型的には、ＷＩＤは、別個のバッファ内に取り込まれ、１つ又は複数のフレーム・バッファ内のピクセルがどのように表示されるかを記述するのに用いられる。例えばＵＮＩＸ（Ｔｈｅ  Ｏｐｅｎ  Ｇｒｏｕｐの商標）サーバのような幾つかのグラフィック・システムは、オーバーレイを用いて三次元アプリケーションの性能を強化するものであるが、これは、三次元アプリケーションの上に重ねるデータを持つ必要がある。この種のサーバは、典型的には、各レイヤーについて固有のピクセル解釈を可能にするように、カラー・プレーン及びオーバーレイについて別個のＷＩＤバッファを必要とする。すなわち、いずれかの所与のピクセル位置、例えばｘ＝１０、ｙ＝１０について、オーバーレイ内のピクセルが、カラー・プレーン内のものとは異なるピクセル解釈、例えば異なるカラー・マップ、深さなどを持つことができるように、別個のＷＩＤバッファが用いられる。
【０００４】
こうしたオーバーレイの一例を図１に示す。この例においては、地図１００は、２つのフレーム・バッファ及び単一のＷＩＤバッファ内に配置されたピクセルを用いて表示することができる。地図１００は、地図１００において州を表す、カラー・フレーム・バッファ内の１組のピクセルを含む。例えば、形状１０２は、テキサス州の形状である。形状１０２のためのピクセルはカラー・フレーム・バッファ内に配置されるが、テキスト「テキサス」１０４はオーバーレイ・フレーム・バッファ内に配置される。この例においては、「テキサス」１０４はオーバーレイ・フレーム・バッファ内の領域１０６に配置されるが、形状１０２はカラー・フレーム・バッファ内の領域１０８に配置される。
【０００５】
図２（Ａ）においては、ＷＩＤカラー・バッファの一部のデータの一例が示される。図２（Ｂ）は、ＷＩＤオーバーレイ・バッファの一部のデータの一例である。これらの２つの例においては、数字の各々はＷＩＤを表し、該ＷＩＤと関連するピクセルを表示するのに用いられる情報を識別するＷＡＴへの索引として用いられる。図２において、ゼロは、オーバーレイが無効であることを示すのに用いられる。
【０００６】
図３は、スクリーン上に表示されるピクセルを示すのに用いられることになる、結果として得られるＷＩＤを示す。ＷＩＤの各々は、表示するために、どのバッファからどのピクセルが検索されるかを識別する。
【０００７】
典型的には、ハードウェアにおいては８ビット分割ＷＩＤを識別することができるが、このうち、３ビットはオーバーレイ・バッファについてのＷＩＤを識別するのに用いられ、５ビットはカラー・バッファについてのＷＩＤを識別するのに用いられる。例えば、最初の３ビットはオーバーレイＷＡＴへの索引として用いられ、後ろの５ビットはカラーＷＡＴへの索引として用いられる。３ビットを用いると、８つのＷＩＤエントリを識別することができ、又は、８つのＷＩＤエントリを、ＷＩＤオーバーレイ・バッファを用いるピクセルに割り当てることができる。ＷＩＤカラー・バッファを用いるピクセルには、３２の異なるＷＩＤエントリを割り当てることができる。このようにして、オーバーレイ・バッファについてのＷＩＤを上書きすることなく、カラー・バッファについてのＷＩＤを描くことができる。
【０００８】
代替的に、幾つかのハードウェアは８ビット分割ＷＩＤを使用し、このうち、４ビットはカラー・バッファについてのＷＩＤを識別するのに用いられ、他の４ビットはオーバーレイ・バッファについてのＷＩＤを識別するのに用いられる。結果として、こうした構成は、オーバーレイ・プレーンとカラー・プレーンの両方について１６のＷＩＤを与える。
【０００９】
このように、既知のシステムにおいては、５ビットをカラー・バッファについてのＷＩＤを識別するのに用い、３ビットをオーバーレイ・バッファについてのＷＩＤを識別するのに用いる８ビット分割ＷＩＤか、又は、４ビットをカラー・バッファ及びオーバーレイ・バッファについてのＷＩＤの各々を識別するのに用いる８ビット分割ＷＩＤのいずれかが、グラフィックス・アダプタに与えられる。これらの構成は固定されており、変更不可能である。
【発明の開示】
【発明が解決しようとする課題】
【００１０】
アプリケーションがグラフィックス的により高度になるにつれて、ＷＩＤプレーンを与えるこれらの２つの固定的な手法は、急速に限定的なものになりつつある。このことは、各々のレイヤー、すなわちカラー及びオーバーレイに必要なＷＩＤの数が時間と共に大きく変わる可能性のある今日の動的グラフィックス環境について、特に当てはまる。したがって、今日におけるコンピュータ・アプリケーションの動的グラフィックス環境に対応するために、動的に調節可能なＷＩＤ分割を提供するための改良された装置及び方法について必要性が存在する。
【課題を解決するための手段】
【００１１】
本発明は、カラー・バッファ及びオーバーレイ・バッファの各々についてのＷＩＤを識別するのに用いられるビットの数を、その時点でアクティブなアプリケーション環境に基づいてグラフィックス・アダプタにプログラムすることができる機構を提供する。本発明の装置及び方法を用いて、プログラム可能ＷＡＴカラー・サイズ選択装置が、グラフィックス・アダプタのＲＡＭＤＡＣ内に構成される。このプログラム可能ＷＡＴカラー・サイズ選択装置は、ＷＩＤバッファからのＷＩＤの様々なビット分割を用いてカラーＷＡＴテーブル及びオーバーレイＷＡＴテーブルへの異なる索引を取得するように、動的にプログラムすることができる。このように、例えば８ビットＷＩＤの異なる分割を、プログラム可能ＷＡＴカラー・サイズ選択装置の設定に基づいて取得し、様々なカラー及びオーバーレイ能力が動的に得られるようにすることができる。
【００１２】
本発明を別の側面から見ると、コンピューティング装置の表示装置上にグラフィカル表示を生成するための装置であって、ウィンドウＩＤバッファと、該ウィンドウＩＤバッファに結合されたプログラム可能ウィンドウ属性テーブル・カラー・サイズ選択装置と、該プログラム可能ウィンドウ属性テーブル・カラー・サイズ選択装置に結合されたカラー・ウィンドウ属性テーブル装置と、該プログラム可能ウィンドウ属性テーブル・カラー・サイズ選択装置に結合されたオーバーレイ・ウィンドウ属性テーブル装置と、カラー・ウィンドウ属性テーブル及びオーバーレイ・ウィンドウ属性テーブルに結合された段階的パイプラインと、該段階的パイプラインに結合されたカラー・バッファと、該段階的パイプラインに結合されたオーバーレイ・バッファと、を備え、該プログラム可能ウィンドウ属性テーブル・カラー・サイズ選択装置は、ソフトウェア・グラフィックス・デバイス・ドライバから受け取った制御データに基づいて動的にプログラム可能であり、それによりウィンドウＩＤ分割を第１のウィンドウＩＤ分割から第２のウィンドウＩＤ分割に変更する、装置が提供される。
【発明を実施するための最良の形態】
【００１３】
本発明の特性と考えられる新規な特徴は、特許請求の範囲に記載される。しかしながら、本発明自体、並びに、その好ましい使用形態、更なる目的、及び利点は、添付図面と併せて読むと、例示的な実施形態に関する以下の詳細な説明を参照することによって最も良く理解されるであろう。
【００１４】
ここで、図面、特に図４を参照すると、本発明の好ましい実施形態に従って本発明を実装することができるデータ処理システムの図が示される。システム・ユニット４１０と、ビデオ表示端末４０２と、キーボード４０４と、フロッピー（商標）ドライブ及び他の種類の永続的記憶媒体及び取り外し可能記憶媒体を含む記憶装置４０８と、マウス４０６とを含むコンピュータ４００が示される。パーソナル・コンピュータ４００には、付加的な入力装置を含むこともできる。コンピュータ４００は、ニューヨーク州アーモンク所在のＩｎｔｅｒｎａｔｉｏｎａｌ  Ｂｕｓｉｎｅｓｓ  Ｍａｃｈｉｎｅｓ  Ｃｏｒｐｏｒａｔｉｏｎの製品であるＩＢＭ（ＩＢＭ  Ｃｏｒｐｏｒａｔｉｏｎの商標）  ＲＳ／６０００（ＩＢＭ  Ｃｏｒｐｏｒａｔｉｏｎの商標）コンピュータ又はＩｎｔｅｌｌｉＳｔａｔｉｏｎ（ＩＢＭ  Ｃｏｒｐｏｒａｔｉｏｎの商標）コンピュータなどの、適切ないずれかのコンピュータを用いて実装することができる。描かれた図は１つのコンピュータを示すが、本発明の他の実施形態は、ネットワーク・コンピュータといった他の種類のデータ処理システムにおいて実装することもできる。コンピュータ４００はまた、コンピュータ４００内部で作動中のコンピュータ可読媒体内にあるシステム・ソフトウェアによって実装することができるグラフィカル・ユーザ・インターフェースを含むことが好ましい。
【００１５】
ここで図５を参照すると、ブロック図は、本発明を実装することができるデータ処理システムを示す。データ処理システム５００は、本発明の処理を実行するコード又は命令を配置することができる、図４におけるコンピュータ４００などのコンピュータの一例である。データ処理システム５００は、ペリフェラル・コンポーネント・インターコネクト（ＰＣＩ）ローカル・バス・アーキテクチャを用いる。示される例はＰＣＩバスを用いているが、アクセラレーテッド・グラフィックス・ポート（ＡＧＰ）及びインダストリル・スタンダード・アーキテクチャ（ＩＳＡ）などの他のバス・アーキテクチャを用いることもできる。プロセッサ５０２及びメイン・メモリ５０４は、ＰＣＩブリッジ５０８を介してＰＣＩローカル・バス５０６に接続される。ＰＣＩブリッジ５０８は、プロセッサ５０２のための統合メモリ・コントローラ及びキャッシュ・メモリを含むこともできる。ＰＣＩローカル・バス５０６への付加的な接続は、直接コンポーネント相互接続を介して、又はアドイン・ボードを介して、構築することができる。示される例においては、ローカル・エリア・ネットワーク（ＬＡＮ）アダプタ５１０、小型コンピュータ・システム・インターフェース（ＳＣＳＩ）ホスト・バス・アダプタ５１２、及び拡張バス・インターフェース５１４が、直接コンポーネント接続によってＰＣＩローカル・バス５０６に接続される。対照的に、オーディオ・アダプタ５１６、グラフィックス・アダプタ５１８、及びオーディオ／ビデオ・アダプタ５１９が、拡張スロットに挿入されたアドイン・ボードによってＰＣＩローカル・バス５０６に接続される。本発明の処理は、グラフィックス・アダプタ５１８又はオーディオ／ビデオ・アダプタ５１９によるデータのレンダリングを管理するのに用いることができる。
【００１６】
拡張バス・インターフェース５１４は、キーボード及びマウス・アダプタ５２０、モデム５２２、及び追加メモリ５２４を接続する。ＳＣＳＩホスト・バス・アダプタ５１２は、ハード・ディスク・ドライブ５２６、テープ・ドライブ５２８、及びＣＤ−ＲＯＭドライブ５３０を接続する。典型的なＰＣＩローカル・バス実装は、３つ又は４つのＰＣＩ拡張スロット又はアドイン・コネクタをサポートする。
【００１７】
オペレーティング・システムが、プロセッサ５０２上で稼動し、図５におけるデータ処理システム５００内部の様々なコンポーネントを調整し、制御するのに用いられる。オペレーティング・システムは、Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｂｕｓｉｎｅｓｓ  Ｍａｃｈｉｎｅｓ  Ｃｏｒｐｏｒａｔｉｏｎから入手可能なＯＳ／２（商標）などの市販のオペレーティング・システムとすることができる。「ＯＳ／２」はＩｎｔｅｒｎａｔｉｏｎａｌ  Ｂｕｓｉｎｅｓｓ  Ｍａｃｈｉｎｅｓ  Ｃｏｒｐｏｒａｔｉｏｎの商標である。Ｊａｖａ（商標）などのオブジェクト指向プログラミング・システムが、オペレーティング・システムと共に稼動することができ、データ処理システム５００上で実行するＪａｖａプログラム又はアプリケーションからオペレーティング・システムを呼び出す。「Ｊａｖａ」は、Ｓｕｎ  Ｍｉｃｒｏｓｙｓｔｅｍｓ,Ｉｎｃ．の商標である。オペレーティング・システム、オブジェクト指向オペレーティング・システム、及びアプリケーション又はプログラムについての命令は、ハード・ディスク・ドライブ５２６などの記憶装置上に配置され、プロセッサ５０２によって実行するためにメイン・メモリ５０４にロードすることができる。
【００１８】
当業者であれば、図５のハードウェアは、実装に応じて変えることができることを理解するであろう。図５に示されるハードウェアに加えて、又はこれに代えて、フラッシュＲＯＭ（又は、同等の不揮発性メモリ）又は光ディスク・ドライブなどといった他の内蔵ハードウェア又は周辺装置を用いることができる。また、本発明の処理は、マルチプロセッサ・データ処理システムに適用することができる。
【００１９】
例えば、データ処理システム５００は、必要に応じてネットワーク・コンピュータとして構成される場合には、任意に含むことを示す図５の点線５３２によって示されるように、ＳＣＳＩホスト・バス・アダプタ５１２、ハード・ディスク・ドライブ５２６、テープ・ドライブ５２８、及びＣＤ−ＲＯＭドライブ５３０を含まないこともある。その場合には、クライアント・コンピュータと呼ばれることが適切なコンピュータは、ＬＡＮアダプタ５１０、モデム５２２などといった何らかの種類のネットワーク通信インターフェースを含まなければならない。別の例として、データ処理システム５００は、何らかの種類のネットワーク通信インターフェースを備えるかどうかにかかわらず、何らかの種類のネットワーク通信インターフェースに依存せずにブート可能なものとして構成される独立型システムとすることができる。さらに別の例として、データ処理システム５００は、オペレーティング・システム・ファイル及び／又はユーザ作成データを記憶する不揮発性メモリを与えるためのＲＯＭ及び／又はフラッシュＲＯＭを伴って構成される携帯情報端末（ＰＤＡ）装置とすることができる。
【００２０】
図５に示される例及び上述の実施例は、アーキテクチャ上の制限を意味することを意図するものではない。例えば、データ処理システム５００は、ＰＤＡの形態をとることに加えて、ノートブック型コンピュータ又は携帯用コンピュータとすることもできる。データ処理システム５００は、キオスク又はＷｅｂアプライアンスとすることもできる。
【００２１】
次に図６を参照すると、本発明の好ましい実施形態に係るグラフィックス・アダプタを図示するブロック図が示される。グラフィックス・アダプタ６００は、図５のグラフィックス・アダプタ５１８などのグラフィックス・アダプタの一例である。グラフィックス・アダプタ６００は、アダプタ・メモリ６０２と、ランダム・アクセス・メモリ・デジタル−アナログ・コンバータ（ＲＡＭＤＡＣ：ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ  ｄｉｇｉｔａｌ  ｔｏ  ａｎａｌｏｇ  ｃｏｎｖｅｒｔｅｒ）６２０とを含む。ＲＡＭＤＡＣ６２０は、ＲＡＭＤＡＣ段階的パイプライン（ｓｔａｇｅｄ  ｐｉｐｅｌｉｎｅ）６０４と、カラーＷＡＴテーブル６０６及びオーバーレイＷＡＴテーブル６０８と、プログラム可能ＷＡＴカラー・サイズ選択装置６５０とを含む。アダプタ・メモリ６０２は、カラー・フレーム・バッファ６１０と、オーバーレイ・フレーム・バッファ６１２と、ＷＩＤバッファ６１４とを含む。２つのフレーム・バッファは、表示装置６６０への出力のためにＲＡＭＤＡＣ段階的パイプライン６０４に送られるピクセルを含む。ＲＡＭＤＡＣ段階的パイプライン６０４は、カラー・パレットを保持し、メモリからのデータを表示装置６６０のためのアナログ信号に変換するグラフィックス・コントローラ・チップである。
【００２２】
ＷＩＤバッファ６１４は、カラーＷＡＴテーブル６０６及びオーバーレイＷＡＴテーブル６０８への索引として用いられるＷＩＤを含む。これらのＷＡＴテーブル６０６及び６０８の各々は、１つのピクセルが表示装置上にどのようにレンダリングされるかを記述する。
【００２３】
プログラム可能ＷＡＴカラー・サイズ選択装置６５０は、ＷＩＤバッファ６１４のうちのどのビットがカラーＷＡＴテーブル６０６のエントリを識別するのに用いられ、該ＷＩＤバッファ６１４のうちのどのビットがオーバーレイＷＡＴテーブル６０８のエントリを識別するのに用いられるかを選択するために使用される。プログラム可能ＷＡＴカラー・サイズ選択装置６５０は、図５におけるＰＣＩローカル・バス５０６などのデータ・バス（図示せず）を介して外部エンティティによってプログラム可能である。データ・バスを介して受け取った制御データに基づいて、グラフィックス・アダプタのプログラム可能ＷＡＴカラー・サイズ選択装置６５０のレジスタが設定され、それが次に、カラーＷＡＴテーブルのエントリ及びオーバーレイＷＡＴテーブルのエントリを識別するために用いられるビット数を設定する。このように、ＷＩＤの分割は、例えばＸＳｅｒｖｅｒといったグラフィックス・デバイス・ドライバによって動的にプログラム可能である。
【００２４】
すなわち、受け取った制御データに基づいて、ＷＩＤバッファ６１４から受け取った特定の数のビットをカラーＷＡＴテーブル６０６に渡し、それにより該カラーＷＡＴテーブル６０６内のエントリを識別するように、プログラム可能ＷＡＴカラー・サイズ選択装置６５０の設定が修正される。ＷＩＤバッファからの残りのビットは、オーバーレイＷＡＴテーブルのエントリを識別するために、オーバーレイＷＡＴテーブル６０８に渡される。次いで、識別されたカラーＷＡＴテーブルのエントリ及びオーバーレイＷＡＴテーブルのエントリは、カラー・バッファ６１０及びオーバーレイ・バッファ６１２からのデータと共に用いて表示装置６６０上にスクリーン画像を生成するために、ＲＡＭＤＡＣ段階的パイプライン６０４に出力される。
【００２５】
プログラム可能ＷＡＴカラー・サイズ選択装置６５０においてＷＩＤ分割を設定するのに用いられる制御データは、グラフィックス・アダプタ６００とインターフェース接続され、用いられるＷＡＴカラー・サイズを選択することが可能ないずれかの外部ソースによって生成することができる。好ましい実施形態においては、ＷＡＴカラー・サイズは、その時点でアクティブなアプリケーション環境に基づいて選択され、制御データは、グラフィックス・デバイス・ドライバ・ソフトウェアによってグラフィックス・アダプタ６００に送られる。当然のことながら、本発明の精神及び範囲から逸脱することなく、ＷＩＤ分割を設定するための他の機構を用いることができる。こうした他の機構は、物理スイッチ、外部回路から制御信号を受け取る別個の入力ラインなどの形態をとることができる。
【００２６】
例えば、アプリケーションが、新たなＷＩＤを必要とする属性（新たなカラー・マップ、スワップ・バッファなど）を変更することがある。典型的には、これは、新たなウィンドウがアプリケーションによって開かれたときに発生する。新たなウィンドウには、該ウィンドウが別のウィンドウと同じピクセル解釈、すなわち同じカラー・マップ、バッファ、深さ、レイヤーなどを持つ場合には共有ＷＩＤが割り当てられるか、又は新たなＷＩＤが割り当てられる。新たなウィンドウについてのこれらの新たな属性に基づいてＷＩＤ分割を変更する必要があるのはこの時点である。
【００２７】
結果として、グラフィックス・デバイス・ドライバ・ソフトウェアは、新たなウィンドウについてのこれらの新たな属性に基づいてプログラム可能ＷＡＴカラー・サイズ選択装置６５０に制御データを送り、それにより、ＷＩＤバッファからのＷＩＤの分割を変更するように該プログラム可能ＷＡＴカラー・サイズ選択装置６５０をプログラムすることができる。こうした分割は、例えば、８ビットＷＩＤの７−１カラー／オーバーレイ分割、ＷＩＤバッファ６１４からの８ビットＷＩＤの６−２、５−３、４−４などといった分割を含むことができる。
【００２８】
このように、コンピューティング・システムによってその時点で用いられている特定のアクティブなアプリケーション環境に基づいて、様々なレベルのカラー及びオーバーレイ・グラフィックス能力を動的に取得することができる。例えばＸＳｅｒｖｅｒなどのグラフィックス・デバイス・ドライバは、その時点でアクティブなアプリケーション環境に基づいて、ＷＩＤ分割を動的に管理する。このように、異なるアプリケーションがコンピューティング・システムにおいてアクティブになるときに、異なるアプリケーションについて異なるＷＩＤ分割を取得することができる。
【００２９】
図７においては、本発明の好ましい実施形態に従って、ＷＡＴテーブルの一例が示される。ＷＡＴテーブル７００は、カラーＷＡＴについて、ピクセル・タイプ、カラー・マップ、バッファ、及びガンマを記述する情報を含む。ＷＡＴテーブル７００は、オーバーレイＷＡＴについて、ピクセル・タイプ、カラー・マップ、及び透明性などの情報を含む。ＷＡＴテーブル７００は、この例においては、ＷＩＤによって索引付けされる１６のエントリを２セット含む。この例におけるピクセル・タイプは、８ビットのピクセル・カラー又は２４ビットのトゥルー・カラーとして記述される。含むことができる他の情報は、例えば、どのフレーム・バッファを表示するか、オーバーレイが透明であるかどうか、又はオーバーレイが無効であるかどうか、とすることができる。これらのエントリは、図６のカラーＷＡＴテーブル６０６及びオーバーレイＷＡＴテーブル６０８において用いることができる。
【００３０】
この例においては、４ビットのみが、ＷＡＴテーブルへの索引として用いられる。各々のテーブルは、図６におけるＷＩＤバッファ６１４からのＷＩＤによって索引付けされる１６のエントリを含む。このことは、ＷＩＤがカラーＷＡＴとオーバーレイＷＡＴとの間で分割される８ビット・システムとは対照的である。４ビットＷＩＤは、オーバーレイＷＡＴとカラーＷＡＴとの間で共有される。したがって、各々のＷＩＤエントリは、オーバーレイＷＡＴとカラーＷＡＴとを指定することになる。ピクセルをスクリーン上に表示するのに用いられるバッファは、ＷＩＤエントリについてのオーバーレイＷＡＴの設定によって決まる。この設定は、例えば、不透明オーバーレイ、透明オーバーレイ、又はオーバーレイ無効とすることができる。
【００３１】
前述のように、既知のシステムにおいては、５ビットをカラー・バッファについてのＷＩＤを識別するのに用い、３ビットをオーバーレイ・バッファについてのＷＩＤを識別するのに用いる８ビット分割ＷＩＤか、又は、４ビットをカラー・バッファ及びオーバーレイ・バッファについてのＷＩＤの各々を識別するのに用いる８ビット分割ＷＩＤのいずれかが、グラフィックス・アダプタに与えられる。これらの構成は固定されており、変更不可能である。すなわち、グラフィックス・アダプタは、ＷＩＤバッファからの固定ビット数によって索引付けされる単一のカラーＷＡＴテーブル及びオーバーレイＷＡＴテーブルのみを含むことができる。したがって、グラフィックス・アダプタのカラー及びオーバーレイ能力に関して自由度がない。
【００３２】
しかしながら、最新の動的グラフィックス環境は、カラー・バッファ及びオーバーレイ・バッファの各々についてのＷＩＤを識別するのに用いられるビット数が選択可能であるような、分割ＷＩＤの自由度がより高い手法から利益を受けるであろう。本発明は、カラー・バッファ及びオーバーレイ・バッファの各々についてのＷＩＤを識別するのに用いられるビット数を、その時点でアクティブなアプリケーション環境に基づいてグラフィックス・アダプタにプログラムすることができる機構を提供する。
【００３３】
このプログラム可能性を容易なものにするために、カラーＷＡＴテーブル６０６及びオーバーレイＷＡＴテーブル６０８のサイズを大きくして、テーブルへの索引付けに用いることができるビットの最大数に対応するようにすることができる。すなわち、カラーＷＡＴテーブルとオーバーレイＷＡＴテーブルとの間のビット分割が７−１の場合など、カラーＷＡＴテーブルについてのビットの最大数が７である場合には、該カラーＷＡＴテーブル６０６におけるエントリ数は、７ビットのカラーＷＩＤから得られる全ての可能な値を網羅するのに十分なものであることが必要であろう。同様に、カラーＷＡＴテーブルとオーバーレイＷＡＴテーブルとの間のビット分割が４−４の場合など、オーバーレイＷＡＴテーブルについてのビットの最大数が４である場合には、該オーバーレイＷＡＴテーブル６０８におけるエントリ数は、４ビットのオーバーレイＷＩＤから得られる全ての可能な値を網羅するのに十分なものであることが必要であろう。こうしたカラーＷＡＴテーブル６０６及びオーバーレイＷＡＴテーブル６０８を用いると、最大数より少ないビット数が用いられる場合であっても、結果として得られるＷＩＤが、カラーＷＡＴテーブル６０６及びオーバーレイＷＡＴテーブル６０８の特定のエントリに索引付けされることになる。
【００３４】
図８は、本発明に係るプログラム可能ＷＡＴカラー・サイズ選択装置をプログラムするための１つの例示的な実施形態を示す例示的なブロック図である。図８に示されるように、アプリケーション８１０は、カラー・プレーンにウィンドウを開くことを要求する（オーバーレイも同様に動作することになる）。グラフィックス・デバイス・ドライバ８３０（例えばＸＳｅｒｖｅｒ）は、要求を受け取って、新たなＷＩＤをそのウィンドウに割り当てることになるか又は既存のＷＩＤを利用できるかを判断する。新たなＷＩＤが割り当てられる場合には、ＷＩＤ分割は、アプリケーションによって開かれている新たなウィンドウの属性に基づいて決定される。ＷＩＤ分割に関するこの決定に基づいて、制御データがグラフィックス・アダプタ８４０のＲＡＭＤＡＣ８５０内のプログラム可能ＷＡＴカラー・サイズ選択装置８６０に送られ、それにより、所望のＷＩＤ分割を与えるようにプログラム可能ＷＡＴカラー・サイズ選択装置８６０をプログラムすることができる。
【００３５】
例えば、ＷＩＤ分割を決定するときに、グラフィックス・デバイス・ドライバは、カラー・プレーンに利用可能なＷＩＤは存在しないが、オーバーレイ・プレーンに利用可能な多くのＷＩＤが存在すると判断する場合がある。このような場合には、オーバーレイＷＩＤから１つのプレーンを取り、それをカラー・プレーンＷＩＤに与えることによって、ＷＩＤ分割を変更することができる。ＷＩＤ分割のこの変更は、制御データをプログラム可能ＷＡＴカラー・サイズ選択装置に送り、それにより１つのプレーンをオーバーレイＷＩＤからカラー・プレーンＷＩＤに移動させるようにＷＩＤ分割を設定するグラフィックス・デバイス・ドライバによって、実現することができる。
【００３６】
図９は、本発明に係るプログラム可能ＷＡＴカラー・サイズ選択装置の例示的な動作の概略を示すフローチャートである。図９に示されるように、動作は、ＷＩＤ分割を再プログラムするかどうかに関する判断から開始する（ステップ９１０）。この判断は、実際には、単に、グラフィックス・デバイス・ドライバからの新たなＷＩＤ分割を示す制御データを受け取ることに応答して自動的に行われるものとすることができる。その場合、すなわち新たなＷＩＤ分割を識別する制御データを受け取った場合には、カラー・ビットとオーバーレイ・ビットとの間のＷＩＤ分割は更新される（ステップ９２０）。これは、例えば、プログラム可能ＷＡＴカラー・サイズ選択装置内の、ＷＩＤ分割を識別する１つ又はそれ以上のレジスタを設定することによって、行うことができる。
【００３７】
その後、又はＷＩＤ分割を再プログラムするための制御データを受け取らなかった場合には、動作は、ＷＩＤバッファから次のＷＩＤを読み込む（ステップ９３０）。次いでＷＩＤのビットは、その時点で有効なＷＩＤ分割に従って分割され（ステップ９４０）、対応するビットが、カラーＷＡＴテーブル及びオーバーレイＷＡＴテーブルに送られる（ステップ９５０）。その後、例えばコンピューティング装置のシャットダウンなどの終了条件が発生したかどうかに関する判断が行われる（ステップ９６０）。発生した場合には、動作は終了する。そうでない場合には、動作はステップ９１０に戻り、終了条件が発生するまで繰り返される。
【００３８】
このように、本発明を用いて、動的にプログラム可能なグラフィックス・アダプタを提供することにより、グラフィックス・アダプタのグラフィックス能力に関する自由度が得られる。より詳細には、本発明を用いると、カラーＷＡＴテーブル及びオーバーレイＷＡＴテーブルの索引付けに用いられるビットの数を動的に変更して、様々なカラー及びオーバーレイ能力を得ることができる。さらに、ＷＡＴテーブルへのこの索引付けは、その時点でアクティブな特定のアプリケーション環境に基づいて、動的に変更可能とすることができる。
【００３９】
本発明は、完全に機能するデータ処理システムに関して説明されたが、当業者であれば、本発明の処理は、命令に関するコンピュータ可読媒体の形態、及び様々な形態で配布することが可能であり、本発明は、実際に配布を実施するのに用いられる特定の種類の信号支持媒体にかかわらず等しく適用されると理解するであろうということに留意することが重要である。コンピュータ可読媒体の例は、フロッピー(商標）ディスク、ハード・ディスク・ドライブ、ＲＡＭ、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭなどの書き込み可能型媒体と、デジタル及びアナログ通信リンク、有線通信リンク、又は、例えば無線周波数伝送及び光波伝送などの伝送形式を用いる無線通信リンクといった伝送型媒体と、を含む。コンピュータ可読媒体は、特定のデータ処理システムにおいて実際に使用するために復号化される、符号化されたフォーマットの形態をとることができる。
【００４０】
本発明の説明は、例示及び説明の目的で提示されたものであり、網羅的であること又は開示された形式の発明に限定することを意図するものではない。当業者であれば、多くの修正及び変形が明らかであろう。実施形態は、本発明の原理及び実際の適用を最も良く説明するように、及び、当業者以外であっても、考えられる特定の用途に適合するような様々な修正を伴う様々な実施形態について本発明を理解できるように、選択され、説明されたものである。
【図面の簡単な説明】
【００４１】
【図１】カラー・バッファ及びオーバーレイ・バッファの一部のデータの一例である。
【図２】（Ａ）ＷＩＤカラー・バッファの一部のデータの一例である。（Ｂ）ＷＩＤオーバーレイ・バッファの一部のデータの一例である。
【図３】スクリーン上に表示されるピクセルを表示するのに用いられることになる、結果として得られるＷＩＤを示す。
【図４】本発明の好ましい実施形態に従って本発明を実装することができるデータ処理システムの図である。
【図５】本発明を実装することができるデータ処理システムを示すブロック図である。
【図６】本発明に係るグラフィックス・アダプタを図示するブロック図である。
【図７】本発明に係るカラーＷＡＴ及びオーバーレイＷＡＴについて示される例示的なＷＡＴテーブルである。
【図８】本発明に係る動的に構成可能なＷＩＤを提供するために、アプリケーションと、デバイス・ライバと、ＲＡＭＤＡＣとの間のデータ・フローを示す例示的な図である。
【図９】本発明の例示的な動作の概略を示すフローチャートである。
【図１】
2006524855.tif 000003
【図２】
2006524855.tif 000004
【図３】
2006524855.tif 000005
【図４】
2006524855.tif 000006
【図５】
2006524855.tif 000007
【図６】
2006524855.tif 000008
【図７】
2006524855.tif 000009
【図８】
2006524855.tif 000010
【図９】
2006524855.tif 000011
【国際調査報告】
2006524855.tif 000012
2006524855.tif 000013
2006524855.tif 000014