(57)【要約】      （修正有）【課題】表示情報がディスプレイのコンフィグレーションの変更を組み込むように動的に更新される機構を提供する。【解決手段】ディスプレイ管理アーキテクチャは、ディスプレイ環境の変更を検知し、オペレーティングシステム等にその変更を通知し、リアルタイムに、その変更に正しく適合できるようにする。ディスプレイ管理システムは、オペレーティングシステム、ディスプレイデバイス、ビデオデバイスの間の通信チャネルを提供するディスプレイマネージャ（対応するディスプレイデバイスのディスプレイ能力に関して、ドライバより情報を受け取り、再コンフィグレーションサービスを提供する）を有しており、ディスプレイ環境の変更が発生すると、その変更を各プログラムに通知して、それに応じて各プログラムが表示情報を動的に更新し、或いは、再コンフィグレーションできるようにし、コンピュータの再起動を不要とする。【選択図】図１
2008181522.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータにおいて前記コンピュータ上で動作しているアプリケーションプログラムによって生成された情報の表示を制御するシステムであって、
前記コンピュータに関するディスプレイ環境のコンフィグレーションを決定する手段と、
前記コンフィグレーションの変更を検知し、これに応じて原コンフィグレーションと変更後のコンフィグレーションとの差異を判断する手段と、
その表示が前記差異による影響を受ける情報を前記差異に応じて識別する識別手段と、
前記コンピュータ上で前記アプリケーションプログラムが動作中に、前記変更後のコンフィグレーションを前記アプリケーションプログラムに通信し、前記コンピュータの再起動を要求することなく、前記差異による影響を受ける前記アプリケーションプログラムによって生成された情報が前記変更後のコンフィグレーションで表示されるようにする通信手段と、
を備えることを特徴とするシステム。
【請求項２】
前記アプリケーションプログラムへの通信は、前記原コンフィグレーションと前記変更後のコンフィグレーションとの識別子を含む
ことを特徴とする請求項１に記載のシステム。
【請求項３】
前記識別手段は、前記原コンフィグレーションにおいて表示されていた情報が新コンフィグレーションにおいて表示されるか否かを判断し、
前記通信手段は、前記変更後のコンフィグレーションを、その表示された情報が前記差異の影響を受けるアプリケーションプログラムに通信し、情報が前記新コンフィグレーションにおいて表示されることを保証するために、前記アプリケーションプログラムに当該情報を再配置させる
ことを特徴とする請求項１に記載のシステム。
【請求項４】
前記識別手段は、ディスプレイデバイスの配置との相対的な関係において、ディスプレイ空間における情報の位置を判断し、
前記アプリケーションプログラムは、情報がディスプレイデバイスの配置に一致するように、前記ディスプレイ空間内に当該情報を再配置する
ことを特徴とする請求項３に記載のシステム。
【請求項５】
前記再配置された情報は、特定部分及び非特定部分を含み、
前記情報は、前記特定部分がディスプレイデバイスの前記配置に一致し、前記非特定部分の少なくとも幾つかが前記ディスプレイデバイスの前記配置の外側に再配置される
ことを特徴とする請求項４に記載のシステム。
【請求項６】
複数のディスプレイコンフィグレーションの各々を表現する情報を格納する手段と、
前記コンピュータに接続された１以上のディスプレイデバイスが前記複数のディスプレイコンフィグレーションの１つのディスプレイコンフィグレーションに適合していることを判断する判断手段と、
前記１つのディスプレイコンフィグレーションに関する前記格納された情報を前記通信手段に対して提供し、表示されている情報を前記１つのディスプレイコンフィグレーションに適合させる手段と、
をさらに備えた
ことを特徴とする請求項１に記載のシステム。
【請求項７】
前記判断手段は、前記１以上のディスプレイデバイスのハードウエアコンフィグレーションを検知する
ことを特徴とする請求項６に記載のシステム。
【請求項８】
前記判断手段は、環境インジケータに応じて前記１以上のディスプレイデバイスが前記複数のディスプレイコンフィグレーションの１つに適合しているか否かを判断する
ことを特徴とする請求項６に記載のシステム。
【請求項９】
前記環境インジケータは、ネットワーク識別子である
ことを特徴とする請求項８に記載のシステム。
【請求項１０】
前記環境インジケータは、前記コンピュータのユーザによって生成されるコマンドである
ことを特徴とする請求項８に記載のシステム。
【請求項１１】
コンピュータシステムにおいて情報の表示を制御する方法であって、
前記コンピュータシステムに関するディスプレイ環境の変更要求を生成する工程と、
表示されている情報の現在の状態を記憶する工程と、
記憶した前記現在の状態においてディスプレイデバイス上に表示される情報を識別する工程と、
前記ディスプレイ環境に関する新コンフィグレーションを判断する工程と、
前記新コンフィグレーションにおいて少なくとも１つのディスプレイデバイスの配置を判断する工程と、
前記コンピュータ上で動作している１以上のアプリケーションプログラムに対して、前記アプリケーションプログラムが動作中に、前記ディスプレイ環境のコンフィグレーションの変更に関する情報を提供し、前記アプリケーションプログラムが前記アプリケーションプログラムによって生成された表示情報を調整して前記新コンフィグレーションに適合できるようにする工程と、
前記識別した情報の少なくとも幾つかを前記新コンフィグレーションにおける前記ディスプレイデバイスの位置に移動させることにより、表示情報を前記新コンフィグレーションに適合するように再配置する工程と、
を含むことを特徴とする方法。
【請求項１２】
いずれかの前記識別された情報が、新コンフィグレーションにおけるディスプレイデバイスのスクリーンから外れているか否かを検知する工程と、
当該情報を他の表示された情報との相対的な関係において移動させ、少なくとも当該情報の一部を前記ディスプレイデバイスのスクリーン上に位置させる移動工程と、
を更に含む
ことを特徴とする請求項１１に記載の方法。
【請求項１３】
前記移動された情報は、
当該情報に対するアクセスをユーザに提供する特定部分と、
非特定部分と、
を含み、
前記移動工程は、少なくとも前記特定部分を前記ディスプレイデバイスのディスプレイ領域内に位置させるとともに少なくとも当該情報の前記非特定部分の一部を前記ディスプレイ領域の外側に残す工程を含む
ことを特徴とする請求項１２に記載の方法。
【請求項１４】
前記コンピュータ上で有効ないずれかの物理的なディスプレイデバイスの脱落を検知する工程と、
仮想ディスプレイデバイスに関する識別子を生成し、少なくとも幾つかの前記表示情報を前記仮想ディスプレイデバイスに割当る工程と、
その後に、前記コンピュータシステム上で物理的なディスプレイデバイスが有効になることを検知する工程と、
前記仮想ディスプレイデバイスより、有効になった前記ディスプレイデバイスに前記表示情報を再割当する工程と、
を更に含む
ことを特徴とする請求項１１に記載の方法。
【請求項１５】
前記仮想ディスプレイデバイスに割当られた前記表示情報は、前記コンピュータシステムの少なくとも幾つかの機能を制御するためのコマンド情報を含む
ことを特徴とする請求項１４に記載の方法。
【請求項１６】
前記コマンド情報は、ユーザがアクセス可能なコマンドのメニューバーを含む
ことを特徴とする請求項１５に記載の方法。
【請求項１７】
コンピュータシステムであって、
前記コンピュータシステム中で処理された情報を表示する少なくとも１つのディスプレイデバイスと、
前記コンピュータシステム上で動作しているアプリケーションプログラムによって生成された情報を受信し、前記生成された情報が表示されるように前記ディスプレイデバイスに前記生成された情報を提供するオペレーティングシステムと、
を含み、
前記オペレーティングシステムは、
前記ディスプレイデバイスのコンフィグレーションの変更に応じて、前記コンピュータ上で動作しているアプリケーションプログラムに該変更を通知して、前記アプリケーションプログラムによって生成された情報を前記変更されたコンフィグレーションに適合させるディスプレイマネージャを含む
ことを特徴とするコンピュータシステム。
【請求項１８】
前記コンフィグレーションの変更は、複数のディスプレイデバイスの物理的な構成の変更を含む
ことを特徴とする請求項１７に記載のコンピュータシステム。
【請求項１９】
前記ディスプレイマネージャは、グローバルディスプレイ空間を定義し、アプリケーションプログラムに前記グローバルディスプレイ空間内のディスプレイデバイスの物理的な配置を通知する
ことを特徴とする請求項１７に記載のコンピュータシステム。
【請求項２０】
前記コンフィグレーションの変更は、前記コンピュータシステムに接続されたディスプレイデバイスの取り外しを含む
ことを特徴とする請求項１７に記載のコンピュータシステム。
【請求項２１】
前記ディスプレイマネージャは、取り外されたディスプレイデバイスが前記コンピュータシステムに接続された唯一の有効なディスプレイデバイスであったのか否かを検知し、
前記取り外されたディスプレイデバイスが唯一の有効なディスプレイデバイスであった場合に仮想ディスプレイデバイスを生成する手段を含む
ことを特徴とする請求項２０に記載のコンピュータシステム。
【請求項２２】
前記コンフィグレーションの変更は、ディスプレイデバイスの追加を更に含む
ことを特徴とする請求項２０に記載のコンピュータシステム。
【請求項２３】
前記ディスプレイマネージャは、ディプレイデバイスの前記取り外しに応じて、前記取り外されたディスプレイデバイス上に表示されていた情報の少なくとも幾つかを、前記コンピュータシステムに接続された他のディスプレイデバイスに表示させる
ことを特徴とする請求項１９に記載のコンピュータシステム。
【請求項２４】
他のディスプレイデバイス上に表示される前記情報は、前記コンピュータシステムの動作に必要な特定制御要素を含む
ことを特徴とする請求項２３に記載のコンピュータシステム。
【請求項２５】
前記特定制御要素は、メニューバーである
ことを特徴とする請求項２４に記載のコンピュータシステム。
【請求項２６】
前記ディスプレイマネージャは、前記コンピュータシステムに対する複数のディスプレイデバイスの接続に応じて、前記複数のディスプレイデバイスの各々に同一の情報を表示させる
ことを特徴とする請求項１７に記載のコンピュータシステム。
【請求項２７】
通知の内容は、原ディスプレイコンフィグレーションと変更後のディスプレイコンフィグレーションとの識別子を含む
ことを特徴とする請求項１７に記載のコンピュータシステム。
【請求項２８】
前記コンフィグレーションの変更は、ディスプレイデバイスのサイズの変更を含む
ことを特徴とする請求項１７に記載のコンピュータシステム。
【請求項２９】
前記コンフィグレーションの変更は、１つのディスプレイデバイスから他のディスプレイデバイスへの前記コンピュータの動作を決定するための表示された制御要素の移動を含む
ことを特徴とする請求項１７に記載のコンピュータシステム。
【請求項３０】
前記ディスプレイマネージャは、グローバルディスプレイ空間を定義し、前記制御要素が表示されているディスプレイデバイスに基づいて前記グローバルディスプレイ空間内の参照位置を決定する
ことを特徴とする請求項２９に記載のコンピュータシステム。
【請求項３１】
前記ディスプレイマネージャは、前記制御要素が表示されているディスプレイデバイスの識別子をメモリの所定位置に記憶し、前記所定位置に記憶されている前記識別子を、前記制御要素が移動される先のディスプレイデバイスを特定するように変更し、前記制御要素が表示される前記ディスプレイデバイスの前記識別子のための一定の参照位置を維持する
ことを特徴とする請求項２９に記載のコンピュータシステム。
【請求項３２】
前記コンフィグレーションの変更は、ディスプレイデバイスの分解能の変更を含む
ことを特徴とする請求項１７に記載のコンピュータシステム。
【請求項３３】
前記ディスプレイデバイスに関連するディスプレイドライバソフトウエアプログラムを更に含み、
前記ディスプレイドライバソフトウエアプログラムは、前記ディスプレイデバイスのコンフィグレーションに関する情報を前記ディスプレイマネージャに提供する
ことを特徴とする１７に記載のコンピュータシステム。
【請求項３４】
前記ディスプレイドライバは、前記オペレーティングシステムが前記ディスプレイデバイスに表示すべき情報を提供する経路と独立した経路を介して、前記ディスプレイマネージャと通信する
ことを特徴とする請求項３３に記載のコンピュータシステム。
【請求項３５】
前記ディスプレイドライバは、前記コンフィグレーションの情報を、前記ディスプレイデバイスから直接受け取る
ことを特徴とする請求項３３に記載のコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
発明の属する技術分野
本発明は、コンピュータディスプレイのアーキテクチャに係り、特に、コンピュータシステムのコンフィグレーションの変更を動的に組み込むために表示情報を制御するシステムに関する。
【背景技術】
【０００２】
発明の背景
コンピュータ、特にパーソナルコンピュータが一般に普及し、ユーザは、様々な状況でそれらを採用している。ユーザは、使用する状況に応じてコンピュータに接続する１つ以上のディスプレイのコンフィグレーションを変更することができる。例えば、所謂ラップトップまたはノートブック型のポータブルコンピュータが一層ポピュラーになってきた。小型、軽量であり、移動しながらの使用に適しているからである。寸法を最小に維持する必要から、かかるコンピュータに内蔵されたディスプレイスクリーンは比較的小さなサイズであり、表示能力は限定されたものである。従って、オフィス環境において、このタイプのコンピュータを使用する場合、ユーザは、そのコンピュータを大きな表示領域を有し表示能力の高いモニタに接続することがある。このような接続は、例えば、ドッキングステーションの手段により行うことができる。ドッキングステーションによって、ポータブルコンピュータを様々な周辺機器に簡易に接続することが可能になる。この場合、コンピュータに内蔵されたディスプレイスクリーンは、使用できなくなり、外部モニタのみが使用できるようになる。
【０００３】
続いて、ユーザは、例えば、家に持ち帰ったり、移動しながら使用するために、コンピュータをドッキングステーションから取り外す場合があろう。この場合、外部モニタは、もはや存在せず、内蔵されたディプレイスクリーンを使用する必要がある。換言すると、コンピュータは、外部モニタが接続されていたポートではなく、内蔵のディスプレイに対して、表示すべき情報を送出しなければならない。さらに、表示情報に対して、内蔵のディスプレイのディスプレイパラメータに適合させるために再フォーマット、その他の処理を施す必要がある。
【０００４】
さらに、ユーザは、様々な場において好みによって異なる選択をすることができる。例えば、ユーザは、オフィスにおいて、ポータブルコンピュータに内蔵されたディスプレイスクリーンと特定の位置関係に配置された、あるタイプの外部モニタを持つことができる。そして、家では、異なるタイプの外部モニタが使用され、ポータブルコンピュータとの相対的な位置関係が異なる位置に配置されるかもしれない。これらの各々の状況では、互いに異なるディスプレイ環境となっている。一貫した情報表示をユーザに提供するならば、コンピュータは、特定の環境のためにユーザの好みに応じて表示される情報を再コンフィグレーションしなければならない。
【０００５】
ディスプレイの環境を変更する他の例を挙げると、多くのモニタは、広範囲の分解能での表示が可能である。そのようなモニタの例として、マルチ同期能力を有するものがある。これらのタイプのモニタにおいて、ユーザには、そのディスプレイモードを変更することによりモニタを再コンフィグレーションする能力が提供される。他の状況の下では、ディスプレイの物理的サイズや分解能が変更され得る。この結果、その変更に応じて表示オブジェクトのパラメータを拡大／縮小する必要が生じる。
【０００６】
一般に、ディスプレイ環境を変更するための多数の手法がある。例えば、モニタ或いはその他のタイプのディスプレイデバイスを付加または削除すること、マルチモニタ環境において他のモニタとの相対的な位置関係を変更するために１つ以上のモニタを移動すること、ディスプレイデバイスのサイズ及び／または分解能を変更すること、ディスプレイが定義されたグローバル座標空間の原点を移動すること、２以上のディスプレイデバイスに同一の情報が表示されるようにミラーリングすることなどが挙げられる。これらのタイプのいずれか１つの変更が発生する度に、コンピュータ上で動作しているソフトウエアプログラムは、オブジェクトや他の情報を表示するように、対応する変化を組み込むことができるように通知を受けなければならない。
【０００７】
従来、ディスプレイデバイスのコンフィグレーションの変更及びその変更を組み込む必要性は、コンピュータの起動時に検知されるだけであった。コンピュータが動作している際にディスプレイコンフィグレーションを変更した場合は、ユーザがコンピュータを再起動するまで、その変更は有効にならない。ある環境において、ディスプレイコンフィグレーションの変更、例えば、モニタの追加の前に、常にユーザがコンピュータの電源を遮断するとは限らない。特に、多くのポータブルコンピュータは、バッテリー電力の消費を抑えるための動作の”スリープ”モードを提供している。このモードにおいては、コンピュータのＣＰＵ（central processing unit）は、メモリ内で動作しているソフトウエアプログラムを維持するための最小限の動作状態に保たれるが、他の電力消費デバイス、例えば、ディスプレイ及びディスクドライバは、電力供給を遮断される。例えば、ドッキングステーションからボータブルコンピュータを取り外す前に、ポータブルコンピュータがスリープモードであることは希ではない。この場合、ドッキングステーションから取り外された後にコンピュータが再度動作状態になった時に、変更されたディスプレイコンフィグレーションは認識されておらず、従って、コンピュータは適切に機能しない。特に、様々なプログラムにより制御されているデイスプレイデバイスは、もはや存在しない。その結果、ユーザは、新たなコンフィグレーションのプログラムを通知するために、コンピュータを再起動し、動作していたプログラムを再度立ち上げるための時間消費を強いられ不便である。
【発明の開示】
【課題を解決するための手段】
【０００８】
発明の要約
従って、コンピュータの動作中において、ディスプレイコンフィグレーションの変更を動的に組み込み、コンフィグレションの変更に対応させるためのコンピュータの再起動や、プログラムの再立ち上げを行わなくても良いようにする。本発明に拠れば、この目的は、ディスプレイコンフィグレーションの変化を検知し、例えばオペレーティングシステムやアプリケーションプログラム等のソフトウエアプログラムに対して、その変更を通知して、その変更への適合を可能にするディスプレイ管理アーキテクチャにより達成される。
【０００９】
本発明のディスプレイ管理アーキテクチャは、コンピュータのオペレーティングシステムの一部を含むディスプレイマネージャを含む。このディスプレイマネージャは、オペレーティングシステム、他のソフトウエアプログラム、デイスプレイドライバ及びビデオドライバの間の通信チャネルを提供する。ディスプレイマネージャは、対応するディスプレイドライバの表示能力に関して随時ドライバより情報を受け取り、コンピュータ内の他のソフトウェアに再コンフィグレーションサービスを提供する。ディスプレイ環境に変更が生じた場合、ディスプレイマネージャは、ソフトウェアプログラムにその変更を通知し、それに応じた表示情報の動的な更新或いは再コンフィグレーションを可能にする。プログラムがかかる通知に応答できない場合は、ディスプレイマネージャは、新たなディスプレイ環境に応じて表示オブジェクトを再配置する。これらの全ての動作は、コンピュータの動作中にリアルタイムに起こり、その変更を有効とする前のコンピュータを再起動する必要を避ける。
【００１０】
以下、添付図面を参照しながら本発明の他の特徴及び利点を特定の実施例に基づいて詳細に説明する。
【発明を実施するための最良の形態】
【００１１】
好適な実施例の説明
本発明は、コンピュータシステム内で表示能力を判断し、それらの能力に応じてディスプレイデバイスを動的にコンフィグレーションするアーキテクチャに関する。このアーキテクチャの全体のブロック図は、図１に示されている。同図において、コンピュータシステムのハードウエアの構成要素は点線１０の上に示され、ソフトウェアの構成要素は点線１０の下に示されている。システムは、１つ以上のディスプレイ装置１２、例えば、モニタやＬＣＤスクリーンを備えることができる。しかし、本発明が適切に動作するために、現実のディスプレイデバイスが存在する必要はない。各ディスプレイデバイスは、ビデオドライバソフトウエア１６に従って動作するビデオカード１４に接続され、制御される。図示のカードは、別体のカード、或いはプリント回路ボードであるが、ビデオカードの構成は、例えば、コンピュータのマザーボード等の他の１枚のカードと一体化しても良い。
【００１２】
１つ以上のソフトウエアプログラム、例えば、アプリケーションプログラム２０が、ディスプレイデバイス上に表示される情報を生成する。かかる情報は、例えば、テキスト、ウィンドウ、その他のグラフィカルオブジェクト、例えば、メニューやダイアログボックス等のコマンドストラクチャを含む。この情報は、コンピュータのオペレーティングシステム１８を介してディスプレイデバイスに提供される。オペレーティングシステムは、ディスプレイ上に提供される自己の情報も生成する。具体的には、オペレーティングシステムは、対応するデイスプレイドライバ１３を介してディスプレイと通信する。ディスプレイドライバ１３は、デイスプレイ装置１２のハードウエア構成に対応するソフトウエア要素である。
【００１３】
本発明に拠れば、オペレーティングシステムは、ディスプレイデバイス１２を動的にコンフィグレーションするために、ソフトウエア構成の各々の間での通信機能を提供するディスプレイマネージャ２２を有する。様々なソフトウエア要素及びハードウエアデバイス間の通信は、それらに対応するドライバ、例えば、ビデオドライバやディスプレイドライバを介して行われる。これに関して、多くのビデオディスプレイは、それらの有効な動作モード及び／またはタイミングの仕様に関する情報を提供する能力を有する。”スマートディスプレイ（smart display）”と呼ばれるディスプレイは、それらの動作モードに関する情報を直接的に提供、例えば、問合わせに応答する能力を有する。かかるタイプのディスプレイに関して、ディスプレイマネージャ２２は、通信チャネル２４を介して、ディスプレイドライバ１３により、ディスプレイデバイスと通信する。この通信チャネルは、コンピュータ内のバス、シリアル通信線、その他、ディスプレイマネージャとディスプレイデバイスのディスプレイドライバ１３との間で情報を交換する適切な経路（path）とすることができる。
【００１４】
ディスプレイデバイスは、その能力を直接伝えることができない場合がある。しかしながら、ルックアップテーブル等の使用により、ディスプレイドライバ１３は、そのようなディスプレイの能力を取得することができ、それをディスプレイマネージャに提供することができる。
【００１５】
他のタイプのディスプレイデバイスは、ディスプレイデバイスとビデオカード１４との間に接続された通信線２６を介して転送される検知コード（sense code）によってタイミング情報を提供することができる。本質的には、検知コードは、その仕様を示すためにグランドまたはディスプレイデバイスの他の部位に接続された特定の端子により決定される。この検知コードは、ビデオカード１４からディスプレイマネージャ２２に送られる。ディスプレイの仕様と能力について受信した情報に応じて、ディスプレイマネージャは、ビデオドライバソフトウェア１６を介して、ディスプレイデバイスを駆動するためのコマンドをビデオカードに発行する。
【００１６】
ディスプレイマネージャは、オペレーティングシステム１８の一部及びコンピュータ上で動作する他のソフトウェアプログラム２０とも通信する。例えば、オペレータのコマンドに応じて、オペレーティングシステムは、ディスプレイマネージャに対して、動作中のディスプレイのリストに新たなディスプレイデバイスを追加すること、或いは、ディスプレイデバイスを削除することを命じる。これに応答して、ディスプレイマネージャは、アプリケーションプログラム２０に対して新ディスプレイコンフィグレーションを通知し、これに応じた表示情報の更新ができるようにする。
【００１７】
ディスプレイマネージャは、種々様々な変更をディスプレイ環境に組み込み、これによってシステムを動的に再コンフィグレーションする。ディスプレイ環境で発生し得るタイプの変化に関して、図２Ａ〜２Ｄを参照して説明する。一般的に、ディスプレイ環境は、グローバル座標空間３０により定義されるものと考えられる。表示されるオブジェクト及びその他の情報は、この空間内の如何なる場所にも配置され得る。配置の場所は、ユーザ及び／または情報を生成したソフトウエアプログラムにより決定される。この空間の基準点、例えば、その原点或いは（０、０）の座標点は、通常は、常にディスプレイ上に存在するオブジェクトを基準として定められる。例えば、殆どのグラフィカルユーザインターフェースは、コンピュータを制御するための基本的なコマンドに対するユーザによるアクヤスを可能にするためのメニューバーや、その他のストラクチャを含む。
【００１８】
このメニューバーを表示するデバイスは、メインデバイス（main device）として知られている。コンピュータシステムが多数のディスプレイデバイスを有する場合は、これらの多数のデバイスがメニューバーを有する場合においても、ただ１つのデバイスのみがメインデバイスとして指定されている。
【００１９】
座標表示空間の原点は、通常は、このメニューバーを基準として定められる。例えば、図２Ａに示すように、座標空間の（０，０）点３８は、メニューバー３６の左上の角に一致する。表示空間３０内に表示されるオブジェクト及びその他の情報の全ての位置は、この空間内におけるそれらの座標によって定義される。オペレーティングシステムは、例えば、情報を生成するソフトウエアプログラム２０からこの座標情報を受け取り、それをディスプレイドライバに提供することにより、ディスプレイ空間の対応する位置に配置されたディスプレイデバイスのスクリーン上の適切な位置にその情報が現れるようにする。
【００２０】
図２Ａにおいて、例えば、ディスプレイ環境は、グローバルディスプレイ空間３０内の２つのディスプレイ装置３２及び３４からなる。メニューバー３６は、デバイス３２のためにスクリーンの上端に表示される。これにより、デバイス３２がメインデバイスとなる。この結果、原点３８は、デバイス３２の左上の角に一致する。図２Ａに示すように、ユーザは、デバイス３２上に表示されるオブジェクト、例えば、ウインドウ４０等及びデバイス３４上に表示される他のオブジェクト４２を生成している。
【００２１】
図２Ｂは、図示の影になった部分のように、デバイス３２がコンピュータのコンフィグレーションから削除された状況を示している。この場合、デバイス３４は、残った唯一のデバイスであるため、メインデバイスになる。その結果、ディスプレイ空間３０の原点３８は、図示の点線及び矢印で示すように、デバイス３４の左上の角に一致するようにシフトする。このデバイスに関してディスプレイドライバに提供される情報は、メニューバーがその上に表示されるように、修正されなければならない。このシフトによってオブジェクト４２は、スクリーンから外れる。ディスプレイ空間におけるオブジェクト４２の配置位置は、存在するデバイスにより占有されなくなるからである。その結果、このオブジェクトを生成したプログラムは、オブジェクトがディスプレイ空間３０内に再配置され、有効なスクリーン上に現れるように、適切な通知を受けなければならない。
【００２２】
ディスプレイ環境における他のタイプの変更が、図２Ｃ及び図２Ｄに示されている。図２Ｃに示す例において、ディスプレイ環境は、フルページモニタ４４及びハーフページモニタ４６及び４８の３つのモニタからなり、各モニタは、様々なオブジェクト４５、４５’、４７及び４９を有する。フルページモニタ４４は、メインデバイスであり、その上に表示されたメニューバー３６を有する。例えば、モニタ４４と４６とを交換することなどにより、ユーザがあるモニタと他のモニタとの相対的な位置関係を再配置した場合、表示されたオブジェクトの相対的な配置は、図２Ｄに示すように、グローバルディスプレイ空間３０内で入れ代わる。例えば、メニューバー３６は、前回のコンフィグレーションの場合のような最も左のモニタではなく、中央のモニタ上に表示される。このメニューバーを最も左のモニタに戻すと、デバイス４６がメインモニタとなる。
【００２３】
ディスプレイ環境における他のタイプの変更は、（ｉ）ディスプレイデバイスのサイズ及び／またはアスペクト比の変化、（ｉｉ）１つのディスプレイデバイスから他のデバイスへのメニューバー３６の移動であって、デバイスとの相対的な関係においてグローバルディスプレイ空間の原点をシフトさせるもの、及び（ｉｉｉ）デバイス上に表示されたオブジェクトのサイズの拡大／縮小を必要とするディスプレイデバイスの分解能の変化を含む。
【００２４】
本発明のシステムにおいて、ディスプレイマネージャは、コンピュータの動作中に、オペレーティングシステム１８に変更を通知することにより、ディスプレイ環境の変更に応答する。同様に、ディスプレイマネージャは、アプリケーションプログラム２０及びその他の適切なソフトウエアプログラムにディスプレイコンフィグレーションの変更を通知する。これにより、それらは、新たなコンフィグレーションに応じて表示情報を動的に調整することができる。
【００２５】
コンフィグレーションの変化に応答してディスプレイマネージャによりオペレーティングシステム及びその他のソフトウエアプログラムに提供される情報は、ディスプレイ状態記述子（Display State Descriptor）の対のリストを含む。ディスプレイ通知（display notification）に関する構造の一例が図３に示されている。同図において、ディスプレイマネージャは、各ディスプレイデバイスのディスプレイ状態記述子を送出する。各対は、旧状態記述子（keyDisplayOldConfig： Display State Descriptor）と新状態記述子（keyDisplayNewConfig： Display State Descriptor）とを含む。ディスプレイデバイスがシステムに追加されると、旧状態記述子は無効値となり、新状態記述子は、そのデイスプレイデバイスの特性と動作パラメータを記述した情報となる。これには、例えば、ディスプレイ領域のサイズ、画素サイズ、動作モード、グローバルディスプレイ空間内のその位置等の情報が含まれる。ディスプレイデバイスが取り外されると、新状態記述子は無効値となる。
【００２６】
この通知（notification）は、ディスプレイのコンフィグレーションが検知される都度、ディスプレイマネージャにより提供される。このような変更は、例えば、ユーザがディスプレイデバイスの追加、削除、動作モードの変更等のコマンドを明らかに発行した場合に、ユーザの操作に起因して起こる。或いは、それは、コンピュータへのデバイスの接続、取り外し、例えば、ドッキングステーションへの挿入、そこからの取り外し、または、ポートレイトボジションからランドスケープボジションへのピボッティング（pivoting）を検知した結果として自動的に起こる。
【００２７】
新旧の状態の通知に応答して、かかる通知を受け取った各ソフトウエアプログラムは、動作中に、表示された情報を更新する。例えば、プログラムは、ウインドウをリサイズ（resize）したり、再配置したりして、ウインドウをディスプレイ領域内に適合させることができる。
【００２８】
ディスプレイコンフィグレーションの変更を識別するための通知に正しく応答するために、ソフトウエアプログラムは、その通知における情報の受け取りや処理を可能にする特別な機能を持つ必要がある。しかしながら、この機能を持たないプログラムもあリ得る。この場合、ディスプレイマネージャは、ディスプレイコンフィグレーションの変更があっても、これらのプログラムの互換性を保証する必要がある。
【００２９】
このような互換性は、グラフィカルユーザインターフェースにおけるウインドウ及びその他のオブジェクト等の、旧コンフィグレーションの下で表示されていた全表示オブジェクトを新コンフィグレーションの下でも表示されることを保証することにより達成される。図２Ａを参照すると、例えば、ディスプレイマネージャは、グローバルディスプレイ空間３０内のデバイス３２及び３４の各々の位置を、メニューバー３６及びその他の関連する情報と共に格納する。その後、ディスプレイマネージャは、ディスプレイ空間を再配置する。図２Ｂに示すように、新コンフィグレーションが確立されると、ディスプレイマネージャは、前回スクリーン上に存在したいずれかのオブジェクトがスクリーンから外れるか否かを判断する（例えば、オブジェクト４２）。この判断に応じて、ディスプレイマネージャは、スクリーン上に再配置されるオブジェクトを生成する。これは、そのオブジェクトを生成したソフトウエアプログラムへの命令によりなされる。
【００３０】
スクリーンから外れたオブジェクトを配置する位置の決定において、ディスプレイマネージャは、多数の選択肢の中から選択できる。例えば、旧コンフィグレーションの下でデバイス上に表示されていたオブジェクトが新たな環境の下でも存在する場合に、当該デバイスのスクリーン上の同一の位置に配置されるようにそのオブジェクトを移動することができる。また、ディスプレイマネージャが、スクリーンから外れたオブジェクトに最も近い有効デバイスを判断し、そのオブジェクトがそのデバイス上に現れるようにそのデバイスを移動する。
【００３１】
この機能の実行に際して、新コンフィグレーションの下で表示されたオブジェクトが旧コンフィグレーションの下で表示された方法と厳密に一致する必要はない。例えば、旧コンフィグレーションは、図４Ａに示すように、２つのディスプレイデバイスを含んでも良い。メニューバー３６は、メインデバイス３２上に表示されており、様々なウインドウ４０及び４２は、ディスプレイデバイスの２つのスクリーンの夫々に現れる。
【００３２】
図４Ｂに示す新コンフィグレーションにおいて、ディスプレイデバイス３４は、取り除かれている。この場合、その表示オブジェクトすなわち、ウインドウ４２を残ったデバイス３２に移動する必要がある。小さなオブジェクトに関しては、オブジェクトを残ったデバイスのスクリーンに完全に移動することが好ましい。これらは、例えば、ディスプレイの右端に沿って、存在するオブジェクトの下の適切なデフォルト位置に配置することができる。しかしながら、例えばウインドウ等の大きなオブジェクトに関しては、オブジェクトを残ったデバイスのスクリーンに完全に移動すると、非常に込み合うことになる。この場合、ウインドウにアクセスする機能をユーザに提供するための完全なウインドウを表示するする必要はない。むしろ、ユーザは、ウインドウを制御するために、そのウインドウの限定された部分にのみアクヤスする必要がある。殆どのウインドウにおいて、このような特定部分は、タイトルバー５０であり、これは典型的にはウインドウの一辺（通常は、上辺）に沿って配置される。ユーザが、例えばカーソルを用いてこのタイトルバーを”つかむ”ことにより、ディスプレイ領域内の所望の位置にそのウインドウを配置し、その内容を参照し、その機能を制御することができる。
【００３３】
従って、ディスプレイデバイスの取り外し、或いは再配置に起因してスクリーンから外れるようなオブジェクトを再配置する際に、各オブジェクトの特定の部位のみ、すなわち、そのアクヤスが、ユーザによるオブジェクトの機能の制御を可能にする部位のみが、新コンフィグレーション内に表示される。本発明のかかる特徴は、図４Ｂに示されており、ウインドウ４２の夫々のタイトルバーの部分のみが、残ったディスプレイデバイス３２のスクリーン上に表示される。
【００３４】
メインデバイスがディスプレイ環境から取り除かれると、ディスプレイマネージャは、メニューバー３０を残ったディスプレイデバイス（これは、図２Ａ及び２Ｂの例に示すようにメインデバイスになる）に移動する。新コンフィグレーションにおけるメインデバイスのサイズが旧コンフィグレーションのサイズと異なる場合には、デイスプレイマネージャは、各アプリケーションのメニューバーについて新しいサイズを演算し、そのメニューバーを含むウインドウ或いはその他のデータ構造を新しいメインデバイス上に移動する。この機能を達成するために、ディスプレイマネージャは、各アプリケーションの表示内容を切替え、メニューバーを検査する。その後、このメニューバーは、再描画され（例えば、拡大／縮小される）、新しいディスプレイ空間に適合される。
【００３５】
動作上、アプリケーション及びその他のプログラムは、メインデバイスのオブジェクトの参照情報（reference）を一次的に保持しおくことがある。すなわち、メインデバイスのオブジェクトのアドレスを一度取得し、将来の使用のためにそのアドレスを格納する。このような状況で、新しいデバイスがメインデバイスになったら、これらのタイプのプログラムは、もはや存在しないデバイスに対してディスプレイ情報を伝えようとする。他のデバイスがメインデバイスになった場合のかかるジレンマを避けるため、メインデバイスのオブジェクトへの参照情報が引き続いて現在のメインデバイスを適切に参照し続けるように、前のメインデバイスと現在のメインデバイスに関しての２つのオブジェクトの内容を変更することが好ましい。この方法により、メインデバイスのオブジェクトに対して一時的に保持されている参照情報は、新しいメインデバイスを識別するためにその内容が変更された場合にも、その有効性が維持される。
【００３６】
ディスプレイコンフィグレーションの変更の仕方として、最後のディスプレイデバイスが取り除かれる場合がある。このような状況は、例えば、１つのモニタのプラグが引き抜かれた後であって、新たなモニタがプラグに接続される前に起こる。他の状況として、ユーザは、ポータブルコンピュータの蓋を閉め、内蔵されたデイスプレイがディスプレイ環境から取り除かれる場合が挙げられる。本発明の好適な構成において、ディスプレイマネージャは、ディスプレイ環境からのデバイスの除去を検知する。例えば、ポータブルコンピュータの蓋が閉じられた時やモニタケーブルが引き抜かれた時、スイッチは、ディスプレイマネージャに信号を供給することができる。これに応答して、ディスプレイマネージャは、そのディスプレイを動作中のデバイスリストから削除することにより、そのディスプレイの動作を無効にし、それに応じて動的に環境を再コンフィグレーションする。
【００３７】
これらの場合のいずれにおいても、取り外されたデバイスがコンピュータに接続された唯一のデバイスであった場合には、メインデバイスとして機能する物理的なデバイスがなくなる。このような場合には、ディスプレイマネージャは、仮想デバイスを導入し、それをメインデバイスとする。この動作は、図５Ａ〜５Ｇに示されている。これらの各図において、左側は、２つのデバイスリスト（devlce Iist: DeviceList）、動作中リスト（active list）及び削除リスト（removed list: RemovedList）を示し、図の右側は、動作中リスト（active list）上にあるディスプレイを示している。デバイスリストにおいて、個々のメモリ配置は、ブロック５２により示され、その配置の内容は、ブロック内の文字により示される。
【００３８】
図５Ａは、コンフィグレーションの変更の前に存在する状況を示している。デバイスリスト（DeviceList）は、１つの内容（item）、すなわち、現在のメインデバイスの識別子を含んでおり、削除リスト（RemovedList）は空である。最後に残ったデバイスが動作不能になると、図５Ｂに示すように、ダミー或いは仮想デバイスが生成され、デバイスリスト（DeviceList）に追加される。この手順は、デイスプレイ関連情報を送出するための動作中のデバイスが常に１つは存在することを保証する。図５Ｃに示すように、この処理は、デバイスのハンドルの内容またはオブジェクトを交換する工程を含む。すなわち、前回のメインデバイスの識別子は、新しいデバイス（ここでは、仮想デバイス）のそれと入れ替えられる。結果として、ディスプレイの識別子は、異なるディスプレイデバイスを指示し、メインデバイスのレファレンスは、仮想デバイスである現在のメインデバイスを指示し続ける。上述のように、この特徴により、メインデバイスへの情報を一時的に保存するプログラムが正しく動作できるようにする。具体的には、メインデバイスのオブジェクトを指示する、格納されたプログラムの参照情報は、現在のメインデバイスを依然として指示している。デバイスのハンドルの内容が交換された後、図５Ｄに示すように、前回のメインディスプレイに対応するデバイスは、デバイスリストから削除され、削除リストに追加される。
【００３９】
次いで、新しい現実のディスプレイがコンフィグレーションに追加される。この状況は、図５Ｅに示されている。この時点で、仮想デバイスが未だ存在している。常に少なくとも１つの動作中のディスプレイが存在することを保証するためである。例えば、ユーザの操作に応答して現実のデイスプレイが動作可能となると、図５Ｆに示すように、ディスプレイマネージャは、新しいディスプレイデバイスの識別子と仮想デバイスの識別子とを交換する。これにより、メニューバーは、新しい現実のデイスプレイに移動する。その後、デイスプレイリストから仮想デバイスを削除することにより、仮想ディスプレイは動作不能となり、図５Ｇに示すように、新しいメインデイスプレイのみが残される。
【００４０】
ユーザが、一般的に採用されているマルチデイスプレイコンフィグレーションを持つ場合には、ディスプレイマネージャは、夫々の情報を格納し、環境を自動的に適切なコンフィグレーションとするために、この情報を使用する。例えば、ユーザは、オフィスにおいて採用される１つのディスプレイコンフィグレーションを有し、家には異なるディスプレイコンフィグレーションを有する。ディスプレイマネージャは、これらの各コンフィグレーションに関して、例えば、ディスプレイの配置やそれらのビット深さ（bit depths）等のユーザの選択を、指定されたメインディスプレイデバイスと共に格納することができる。ハードウエア構成及び／または環境インジケータ、例えば、ネットワーク識別子やユーザ定義位置の検知に基づいて、ディスプレイマネージャは、その環境に関する情報を回復し、それに応じてディスプレイデバイスをコンフィグレーションする。
【００４１】
他の特徴もディスプレイマネージャに有効である。例えば、ディスプレイデバイスは、２以上のディスプレイデバイスのミラーリングを提供する。２つのディスプレイデバイスが他方にミラーリングされる場合、それらの双方は、同一の情報を表示する。本発明のアーキテクチャに拠れば、全ディスプレイデバイスがディスプレイマネージャと通信する場合に、ミラーリング機能を提供するために、ディスプレイマネージャを介して同一の情報が２以上のかかるデバイスのいずれにも送られる。これは、例えば、２つのデバイスを同一のサイズにサイズ変更すること、グローバルディスプレイ空間において１つのデバイスを他のデバイスの上に置くことによりなされる。これとは別に、表示情報を格納するフレームバッファを採用する場合に、２以上のデバイスが同一のフレームバッファを共有するようにしても良い。
【００４２】
他の特徴として、ディスプレイマネージャは、相互依存する因子に応じたディスプレイ管理を提供することができる。例えば、特定のタイミング仕様を有する特定のディスプレイは、特定のビット深さの能力（すなわち、限定された有効色数）のみ提供する。このタイプのディスプレイが環境に追加される都度、ディスプレイマネージャは、最適の動作モード或いはビット深さを選択し、その情報をビデオドライバ及び／またはデバイスドライバに通信する。他の例においては、２つ以上のデバイスは、フレームバッファを共通にしても良い。１つのデバイスの動作モードが変化すると、他のデバイスの動作に影響（例えば、他のデバイスのために有効なメモリ量という意味で）を与える。これに応答して、ディスプレイマネージャは、変化した条件に応じて他のデバイスの動作モードを切替えることができる。
【００４３】
ディスプレイマネージャは、ソフトウエアインタフェースを介してディスプレイの特定のハードウエア指向の特徴を制御するために使用されても良い。例えば、ユーザは、ディスプレイの物理的サイズ（geometry）、画像の位置、ディスプレイデバイス上で認められる他の特徴（例えば、輝度やコントラスト）を調整するためのディスプレイマネージャを採用しても良い。
【００４４】
前述のように、本発明は、ディスプレイの情報、すなわち、ディスプレイドライバ、ビデオドライバ、オペレーティングシステムソフトウエア及びアプリケーションプログラムに関するコンピュータの全ての構成要素の間でハードウエアに依存しない通信チャネルを提供する。このアーキテクチャは、コンピュータの再起動を必要とせず、表示情報がディスプレイのコンフィグレーションの変更を組み込むように動的に更新される機構を提供する。
【００４５】
本発明は、その思想または本質的な特徴を逸脱しない範囲で様々な形態に適用できることは、当業者にとって明らかである。上記の説明は、例示であって発明を制限するものではない。本発明の範囲は、上記の説明ではなく特許請求の範囲により定義され、また、それと均等な意味及び範囲内での変更は、本発明に包含される。
【図面の簡単な説明】
【００４６】
【図１】本発明に係るディスプレイシステムのアーキテクチャの全体的なブロック図である。
【図２Ａ】ディスプレイ環境の変更例を説明する図である。
【図２Ｂ】ディスプレイ環境の変更例を説明する図である。
【図２Ｃ】ディスプレイ環境の変更例を説明する図である。
【図２Ｄ】ディスプレイ環境の変更例を説明する図である。
【図３】ディスプレイマネージャにより供給されるディスプレイ変更通知の構造を示すブロック図である。
【図４Ａ】デイプレイデバイスがコンピュータから取り外される前及び後のデイスプレイコンフィグレーションの例を説明する図である。
【図４Ｂ】デイプレイデバイスがコンピュータから取り外される前及び後のデイスプレイコンフィグレーションの例を説明する図である。
【図５Ａ】１つのディスプレイデバイスを他のデバイスと交換し、その間、仮想デバイスが使用される処理を説明する図である。
【図５Ｂ】１つのディスプレイデバイスを他のデバイスと交換し、その間、仮想デバイスが使用される処理を説明する図である。
【図５Ｃ】１つのディスプレイデバイスを他のデバイスと交換し、その間、仮想デバイスが使用される処理を説明する図である。
【図５Ｄ】１つのディスプレイデバイスを他のデバイスと交換し、その間、仮想デバイスが使用される処理を説明する図である。
【図５Ｅ】１つのディスプレイデバイスを他のデバイスと交換し、その間、仮想デバイスが使用される処理を説明する図である。
【図５Ｆ】１つのディスプレイデバイスを他のデバイスと交換し、その間、仮想デバイスが使用される処理を説明する図である。
【図５Ｇ】１つのディスプレイデバイスを他のデバイスと交換し、その間、仮想デバイスが使用される処理を説明する図である。
【図１】
2008181522.tif 000003
【図２Ａ】
2008181522.tif 000004
【図２Ｂ】
2008181522.tif 000005
【図２Ｃ】
2008181522.tif 000006
【図２Ｄ】
2008181522.tif 000007
【図３】
2008181522.tif 000008
【図４Ａ】
2008181522.tif 000009
【図４Ｂ】
2008181522.tif 000010
【図５Ａ】
2008181522.tif 000011
【図５Ｂ】
2008181522.tif 000012
【図５Ｃ】
2008181522.tif 000013
【図５Ｄ】
2008181522.tif 000014
【図５Ｅ】
2008181522.tif 000015
【図５Ｆ】
2008181522.tif 000016
【図５Ｇ】
2008181522.tif 000017