(57)【特許請求の範囲】
【請求項１】
単一のディスプレイの可視区域を少なくとも２つの仮想可視区域へと区分化することと、
オペレーティングシステムがあたかも２つの実際の物理ディスプレイとインタフェースしているかのように挙動すべく、前記オペレーティングシステムに対して少なくとも２つのエミュレートされた物理ディスプレイのそれぞれに関する情報を提供することによって前記少なくとも２つの仮想可視区域を少なくとも２つのエミュレートされた物理ディスプレイとしてエミュレートすることと、を備える方法。
【請求項２】
前記少なくとも２つの仮想可視区域を少なくとも２つのエミュレートされた物理ディスプレイとしてエミュレートすることは、
ディスプレイ情報に対する前記オペレーティングシステムからのクエリーに応答して前記少なくとも２つのエミュレートされた物理ディスプレイの各々に対して生成されるディスプレイ識別データを前記オペレーティングシステムに提供することを備える請求項１の方法。
【請求項３】
前記少なくとも２つの仮想可視区域を少なくとも２つのエミュレートされた物理ディスプレイとしてエミュレートすることは、
前記単一のディスプレイに対応する割り込みの通知をグラフィクス処理ユニットから受け取ることと、
あたかも２つの割り込みが受け取られたかのように前記少なくとも２つのエミュレートされた物理ディスプレイに対応する割り込み報告情報の少なくとも２セットを前記オペレーティングシステムに報告することと、を備える請求項１の方法。
【請求項４】
前記少なくとも２つの仮想可視区域の１つの仮想可視区域内で第１のアプリケーションウインドウをフルスクリーンモードでディスプレイすることを備え、
前記フルスクリーンモードにおける前記アプリケーションウインドウは前記１つの仮想可視区域の周囲内にのみ拡大する請求項１の方法。
【請求項５】
前記第１のアプリケーションウインドウが前記１つの仮想可視区域内において前記フルスクリーンでディスプレイされている間に前記少なくとも２つの仮想可視区域の別の仮想可視区域内において第２のアプリケーションウインドウをディスプレイすることと、
前記第２のアプリケーションウインドウが焦点に置かれている間に前記第１のアプリケーションウインドウを前記フルスクリーンモードでディスプレイし続けることと、を備える請求項４の方法。
【請求項６】
前記少なくとも２つの仮想可視区域の全部からのデータを各データフレームが含むディスプレイデータフレームを組成することと、
前記ディスプレイデータフレームを前記単一のディスプレイへ送ることと、を備える請求項１の方法。
【請求項７】
前記少なくとも２つの仮想可視区域の第１の仮想可視区域内にディスプレイされる当該ディスプレイデータが変更されたことを決定することと、
前記少なくとも２つの仮想可視区域の第２の仮想可視区域からのディスプレイデータを第１のディスプレイデータフレーム内にコピーすることと、を備える請求項６の方法。
【請求項８】
前記単一のディスプレイの可視区域を前記少なくとも２つの仮想可視区域へと区分化するディスプレイ構成に対応する選択入力を受け取ることを備え、
単一のディスプレイの可視区域を少なくとも２つの仮想可視区域へと区分化することは前記選択入力に応答する請求項１の方法。
【請求項９】
前記少なくとも２つの仮想可視区域を少なくとも２つのエミュレートされた物理ディスプレイとしてエミュレートすることは、
前記少なくとも２つのエミュレートされた物理ディスプレイの１つ上でのディスプレイの準備が整ったバッファリングされたデータの通知を前記オペレーティングシステムから受け取ることと、
前記少なくとも２つのエミュレートされた物理ディスプレイの第１のエミュレートされた物理ディスプレイ上でのディスプレイデータが変化したことを決定することと、
前記少なくとも２つのエミュレートされた物理ディスプレイの第２のエミュレートされた物理ディスプレイのためのディスプレイデータであって変化しなかったものであり且つ第１のデータフレーム内に存在していないディスプレイデータを前記第１のデータフレーム内へコピーし、前記第１及び第２のエミュレートされた物理ディスプレイに対して前記第１のデータフレームにおいて完了したものとしてフラグを設定することと、
前記第１のエミュレートされた物理ディスプレイに対して第２のデータフレームにおいて完了しなかったものとしてフラグを設定することと、を備える請求項１の方法。
【請求項１０】
前記少なくとも２つの仮想可視区域を少なくとも２つのエミュレートされた物理ディスプレイとしてエミュレートすることは、
前記少なくとも２つのエミュレートされた物理ディスプレイの１つ上でのディスプレイの準備が整ったバッファリングされたデータの通知を前記オペレーティングシステムから受け取ることと、
前記少なくとも２つのエミュレートされた物理ディスプレイの第１のエミュレートされた物理ディスプレイ上でのディスプレイデータが変化しておらず且つ第２のデータフレーム内に存在していないことを決定することと、
前記第１のエミュレートされた物理ディスプレイ及び第２のエミュレートされた物理ディスプレイの両方のためのディスプレイデータであって前記第２のエミュレートされた物理ディスプレイに対するディスプレイデータは変化したものであるディスプレイデータをコピーし、第１及び第２のエミュレートされた物理ディスプレイの両方のための前記ディスプレイデータを前記第２のデータフレーム内にコピーし、前記第１及び第２のエミュレートされた物理ディスプレイに対して前記第２のデータフレームにおいて完了したものとしてフラグを設定することと、
前記第２のエミュレートされた物理ディスプレイに対して第１のデータフレームにおいて完了しなかったものとしてフラグを設定することと、を備える請求項１の方法。
【請求項１１】
前記少なくとも２つの仮想可視区域を少なくとも２つのエミュレートされた物理ディスプレイとしてエミュレートすることは、
前記少なくとも２つのエミュレートされた物理ディスプレイの１つ上でのディスプレイの準備が整ったバッファリングされたデータの通知を前記オペレーティングシステムから受け取ることと、
前記少なくとも２つのエミュレートされた物理ディスプレイの第１のエミュレートされた物理ディスプレイ上でのディスプレイデータが変化したこと及び第２のエミュレートされた物理ディスプレイからの第２のディスプレイデータが変化しておらず且つ第１のデータフレーム内に存在することを決定することと、
前記第１のエミュレートされた物理ディスプレイのためのディスプレイデータを前記第１のデータフレーム内へコピーし、前記第１のエミュレートされた物理ディスプレイに対して前記第１のデータフレームにおいて完了したものとしてフラグを設定することと、
前記第１のエミュレートされた物理ディスプレイに対して第２のデータフレームにおいて完了しなかったものとしてフラグを設定することと、を備える請求項１の方法。
【請求項１２】
前記少なくとも２つの仮想可視区域を少なくとも２つのエミュレートされた物理ディスプレイとしてエミュレートすることは、
カーソル位置に対応する割り込みを受け取ることと、
前記少なくとも２つのエミュレートされた物理ディスプレイのうち当該カーソルが位置するエミュレートされた物理ディスプレイを決定することと、
前記カーソルが位置する前記エミュレートされた物理ディスプレイに対する前記カーソルの相対位置を前記単一のディスプレイの全体ディスプレイ面に対応する物理位置に変換することと、を備える請求項１の方法。
【請求項１３】
少なくとも１つのプログラム可能プロセッサと前記プログラム可能プロセッサに動作可能に結合されるメモリとを備える装置であって、
前記メモリは前記少なくとも１つのプロセッサによる実行のための実行可能な命令を含み、前記少なくとも１つのプログラム可能プロセッサは、前記実行可能な命令を実行する場合に、
単一のディスプレイの可視区域を少なくとも２つの仮想可視区域へと区分化し、
オペレーティングシステムがあたかも２つの実際の物理ディスプレイとインタフェースしているかのように挙動すべく、前記オペレーティングシステムに対して少なくとも２つのエミュレートされた物理ディスプレイのそれぞれに関する情報を提供することによって前記少なくとも２つの仮想可視区域を少なくとも２つのエミュレートされた物理ディスプレイとしてエミュレートするように動作可能である装置。
【請求項１４】
前記少なくとも１つのプログラム可能プロセッサは、前記実行可能な命令を実行する場合に、
ディスプレイ情報に対する前記オペレーティングシステムからのクエリーに応答して前記少なくとも２つのエミュレートされた物理ディスプレイの各々に対して生成されるディスプレイ識別データを前記オペレーティングシステムに提供することによって前記少なくとも２つの仮想可視区域を少なくとも２つのエミュレートされた物理ディスプレイとしてエミュレートするように動作可能である請求項１３の装置。
【請求項１５】
前記少なくとも１つのプログラム可能プロセッサは、前記実行可能な命令を実行する場合に、
前記単一のディスプレイに対応する割り込みの通知をグラフィクス処理ユニットから受け取ることと、
あたかも２つの割り込みが受け取られたかのように前記少なくとも２つのエミュレートされた物理ディスプレイに対応する割り込み報告情報の少なくとも２セットを前記オペレーティングシステムに報告することと、によって前記少なくとも２つの仮想可視区域を少なくとも２つのエミュレートされた物理ディスプレイとしてエミュレートするように動作可能である請求項１３の装置。
【請求項１６】
前記少なくとも１つのプロセッサに動作可能に結合されるディスプレイを更に備え、
前記ディスプレイは前記少なくとも２つの仮想可視区域の１つの仮想可視区域内で第１のアプリケーションウインドウをフルスクリーンモードでディスプレイするように動作可能であり、前記フルスクリーンモードにおける前記アプリケーションウインドウは前記１つの仮想可視区域の周囲内にのみ拡大する請求項１３の装置。
【請求項１７】
前記ディスプレイは前記第１のアプリケーションウインドウが前記１つの仮想可視区域内において前記フルスクリーンモードでディスプレイされている間に前記少なくとも２つの仮想可視区域の別の仮想可視区域内において第２のアプリケーションウインドウをディスプレイするように動作可能である請求項１６の装置。
【請求項１８】
前記少なくとも１つのプログラム可能プロセッサは、前記実行可能な命令を実行する場合に、
前記少なくとも２つの仮想可視区域の全部からのデータを各データフレームが含むディスプレイデータフレームを組成し、
前記ディスプレイデータフレームを前記単一のディスプレイへ送るように動作可能である請求項１３の装置。
【請求項１９】
前記少なくとも１つのプログラム可能プロセッサは、前記実行可能な命令を実行する場合に、
前記少なくとも２つの仮想可視区域の第１の仮想可視区域内にディスプレイされる当該ディスプレイデータが変更されたことを決定し、
前記少なくとも２つの仮想可視区域の第２の仮想可視区域からのディスプレイデータを第１のディスプレイデータフレーム内にコピーするように動作可能である請求項１８の装置。
【請求項２０】
前記少なくとも１つのプログラム可能プロセッサは、前記実行可能な命令を実行する場合に、
前記単一のディスプレイの可視区域を前記少なくとも２つの仮想可視区域へと区分化するディスプレイ構成に対応する選択入力を受け取るように動作可能であり、
単一のディスプレイの可視区域を少なくとも２つの仮想可視区域へと区分化することは前記選択入力に応答する請求項１３の装置。
【請求項２１】
前記少なくとも１つのプログラム可能プロセッサは、前記実行可能な命令を実行する場合に、
前記少なくとも２つのエミュレートされた物理ディスプレイの１つ上でのディスプレイの準備が整ったバッファリングされたデータの通知を前記オペレーティングシステムから受け取ることと、
前記少なくとも２つのエミュレートされた物理ディスプレイの第１のエミュレートされた物理ディスプレイ上でのディスプレイデータが変化したことを決定することと、
前記少なくとも２つのエミュレートされた物理ディスプレイの第２のエミュレートされた物理ディスプレイのためのディスプレイデータであって変化しなかったものであり且つ第１のデータフレーム内に存在していないディスプレイデータを前記第１のデータフレーム内へコピーし、前記第２のエミュレートされた物理ディスプレイに対して前記第１及び第２のデータフレームにおいて完了したものとしてフラグを設定することと、
前記第１のエミュレートされた物理ディスプレイに対して第２のデータフレームにおいて完了しなかったものとしてフラグを設定することと、によって前記少なくとも２つの仮想可視区域を少なくとも２つのエミュレートされた物理ディスプレイとしてエミュレートするように動作可能である請求項１３の装置。
【請求項２２】
前記少なくとも１つのプログラム可能プロセッサは、前記実行可能な命令を実行する場合に、
前記少なくとも２つのエミュレートされた物理ディスプレイの１つ上でのディスプレイの準備が整ったバッファリングされたデータの通知を前記オペレーティングシステムから受け取ることと、
前記少なくとも２つのエミュレートされた物理ディスプレイの第１のエミュレートされた物理ディスプレイ上でのディスプレイデータが変化しておらず且つ第１及び第２のデータフレームの第２のデータフレーム内に存在していないことを決定することと、
前記第１のエミュレートされた物理ディスプレイ及び第２のエミュレートされた物理ディスプレイの両方に対するディスプレイデータであって前記第２のエミュレートされた物理ディスプレイに対するディスプレイデータは変化したものであるディスプレイデータをコピーし、第１及び第２のエミュレートされた物理ディスプレイの両方に対する前記ディスプレイデータを前記第２のデータフレーム内にコピーし、前記第１及び第２のエミュレートされた物理ディスプレイに対して前記第２のデータフレームにおいて完了したものとしてフラグを設定することと、
前記第２のエミュレートされた物理ディスプレイに対して前記第１のデータフレームにおいて完了しなかったものとしてフラグを設定することと、によって前記少なくとも２つの仮想可視区域を少なくとも２つのエミュレートされた物理ディスプレイとしてエミュレートするように動作可能である請求項１３の装置。
【請求項２３】
前記少なくとも１つのプログラム可能プロセッサは、前記実行可能な命令を実行する場合に、
前記少なくとも２つのエミュレートされた物理ディスプレイの１つ上でのディスプレイの準備が整ったバッファリングされたデータの通知を前記オペレーティングシステムから受け取ることと、
前記少なくとも２つのエミュレートされた物理ディスプレイの第１のエミュレートされた物理ディスプレイ上でのディスプレイデータが変化したこと及び第２のエミュレートされた物理ディスプレイからの第２のディスプレイデータが変化しておらず且つ第１のデータフレーム内に存在することを決定することと、
前記第１のエミュレートされた物理ディスプレイのためのディスプレイデータを前記第１のデータフレーム内へコピーし、前記第１のエミュレートされた物理ディスプレイに対して前記第１のデータフレームにおいて完了したものとしてフラグを設定することと、
前記第１のエミュレートされた物理ディスプレイに対して第２のデータフレームにおいて完了しなかったものとしてフラグを設定することと、によって前記少なくとも２つの仮想可視区域を少なくとも２つのエミュレートされた物理ディスプレイとしてエミュレートするように動作可能である請求項１３の装置。
【請求項２４】
前記少なくとも１つのプログラム可能プロセッサは、前記実行可能な命令を実行する場合に、
カーソル位置に対応する通知を受け取ることと、
前記少なくとも２つのエミュレートされた物理ディスプレイのうち当該カーソルが位置するエミュレートされた物理ディスプレイを決定することと、
前記カーソルが位置する前記エミュレートされた物理ディスプレイに対する前記カーソルの相対位置を前記単一のディスプレイの全体ディスプレイ面に対応する物理位置に変換することと、によって前記少なくとも２つの仮想可視区域を少なくとも２つのエミュレートされた物理ディスプレイとしてエミュレートするように動作可能である請求項１３の装置。
【請求項２５】
少なくとも１つのプロセッサによる実行のための実行可能な命令を備えるコンピュータ可読メモリであって、
前記実行可能な命令は実行されるときに前記少なくとも１つのプロセッサに、
単一のディスプレイの可視区域を少なくとも２つの仮想可視区域へと区分化することと、
オペレーティングシステムがあたかも２つの実際の物理ディスプレイとインタフェースしているかのように挙動すべく、前記オペレーティングシステムに対して少なくとも２つのエミュレートされた物理ディスプレイのそれぞれに関する情報を提供することによって前記少なくとも２つの仮想可視区域を少なくとも２つのエミュレートされた物理ディスプレイとしてエミュレートすることと、をさせるコンピュータ可読メモリ。
【請求項２６】
前記実行可能な命令は実行されるときに前記少なくとも１つのプロセッサに、
ディスプレイ情報に対する前記オペレーティングシステムからのクエリーに応答して前記少なくとも２つのエミュレートされた物理ディスプレイの各々に対して生成されるディスプレイ識別データを前記オペレーティングシステムに提供することによって前記少なくとも２つの仮想可視区域を少なくとも２つのエミュレートされた物理ディスプレイとしてエミュレートすることを更にさせる請求項２５のコンピュータ可読メモリ。
【請求項２７】
前記実行可能な命令は実行されるときに前記少なくとも１つのプロセッサに、
前記単一のディスプレイに対応する割り込みの通知をグラフィクス処理ユニットから受け取ることと、
あたかも２つの割り込みが受け取られたかのように前記少なくとも２つのエミュレートされた物理ディスプレイに対応する割り込み報告情報の少なくとも２セットを前記オペレーティングシステムに報告することと、によって前記少なくとも２つの仮想可視区域を少なくとも２つのエミュレートされた物理ディスプレイとしてエミュレートすることを更にさせる請求項２５のコンピュータ可読メモリ。
【請求項２８】
前記実行可能な命令は実行されるときに前記少なくとも１つのプロセッサに、
前記少なくとも２つの仮想可視区域の１つの仮想可視区域内で第１のアプリケーションウインドウをフルスクリーンモードでディスプレイ上にディスプレイすることを更にさせ、
前記フルスクリーンモードにおける前記アプリケーションは前記１つの仮想可視区域の周囲内にのみ拡大する請求項２５のコンピュータ可読メモリ。
【請求項２９】
前記実行可能な命令は実行されるときに前記少なくとも１つのプロセッサに、
前記第１のアプリケーションウインドウが前記１つの仮想可視区域内において前記フルスクリーンでディスプレイされている間に前記少なくとも２つの仮想可視区域の別の仮想可視区域内において第２のアプリケーションウインドウを前記ディスプレイ上にディスプレイすることとを更にさせる請求項２８のコンピュータ可読メモリ。
【請求項３０】
前記実行可能な命令は実行されるときに前記少なくとも１つのプロセッサに、
前記単一のディスプレイの可視区域を前記少なくとも２つの仮想可視区域へと区分化するディスプレイ構成に対応する選択入力を受け取ることを更にさせ、
単一のディスプレイの可視区域を少なくとも２つの仮想可視区域へと区分化することは前記選択入力に応答する請求項２５のコンピュータ可読メモリ。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、ディスプレイ、及び単一の物理ディスプレイのディスプレイ面を多重仮想ディスプレイへと区分化すること(partitioning)に関する。
【背景技術】
【０００２】
所与の複数のアプリケーションをモニタリングするために、ディスプレイ面を多重セクションに分割する能力を有することが便利である。例えばユーザは、あるアプリケーションがディスプレイの一部分で動作し、また別の区分(partition)でインターネットチャットアプリケーションが動作することを望む場合がある。このようにして、ユーザは、オンラインゲームアプリケーションを行いながら、一人以上のゲーマー仲間又は他の友人とのチャットセッションを実行することができる。別の例では、ユーザは、１つの区分において主たるアプリケーションを動作させながら、株式市況やニュース等の他の項目を監視し続けることができる。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
ユーザが区分を作成することを可能にする幾つかのユーティリティが存在する。残念なことに、アプリケーション設定は区分に勝り(trump)、そのような既存のユーティリティが特定の使用事例シナリオを提供することを不可能にしてしまう。例えば、あるアプリケーションが「フルスクリーンモード」で実行中の場合、即ちアプリケーションウインドウが実際のディスプレイ面の全区域にわたって広がっているであろう場合、そのアプリケーションは任意の設定された区分を覆い隠してしまい、任意の他のアプリケーションはもはや見えなくなることになる。つまり、フルスクリーンモード等のアプリケーション設定は、既存の区分ユーティリティによって作成された任意のディスプレイ区分設定に勝る。
【０００４】
そこで、フルスクリーンモードで実行中のアプリケーションが、設定された区分内にとどまり他の区分内にディスプレイされる他のアプリケーションを妨げることのないように、アプリケーションからの干渉を受けることなくディスプレイ面を区分化することができる装置及び方法に対する必要性が存在する。
【図面の簡単な説明】
【０００５】
【図１】図１は実施形態に従う装置のブロック図である。
【０００６】
【図２】図２は実施形態に従い２つの仮想ディスプレイ区分を有するディスプレイ面の図である。
【０００７】
【図３】図３は実施形態に従い他の仮想ディスプレイ区分を妨げることなしにアプリケーションの１つがフルスクリーンモードで動作させられる２つの仮想ディスプレイ区分を有するディスプレイ面の図である。
【０００８】
【図４】図４は実施形態に従いアプリケーションの１つが仮想ディスプレイ境界を横切って移動させられる２つの仮想ディスプレイ区分を有するディスプレイ面の図である。
【０００９】
【図５】図５は実施形態に従いカーソルが仮想ディスプレイ境界を横切って移動させられる２つの仮想ディスプレイ区分を有するディスプレイ面の図である。
【００１０】
【図６】図６は実施形態に従い第２のディスプレイが仮想ディスプレイ区分の１つの複製を提供する２つの仮想ディスプレイ区分を有するディスプレイ面の図である。
【００１１】
【図７】図７は実施形態に従い画像ティアリング(image tearing)を提示する方法でのフレーム組成を示すフローチャートである。
【００１２】
【図８】図８は実施形態に従う仮想ディスプレイのためのハードウエア割り込みの処理及びハードウエア割り込みのシミュレーションを示すフローチャートである。
【００１３】
【図９】図９は実施形態に従うハードウエア割り込みの処理及び仮想ディスプレイ更新を示すフローチャートである。
【００１４】
【図１０】図１０は実施形態に従いカーソルが種々の仮想ディスプレイ区分の間を移動するときのカーソルの操作を示すフローチャートである。
【００１５】
【図１１】図１１は種々の実施形態の高レベル動作を示すフローチャートである。
【００１６】
【図１２】図１２は種々の実施形態の高レベル動作を示すフローチャートである。
【００１７】
【図１３】図１３はアプリケーションがフルスクリーンモードで動作させられている場合における種々の実施形態の高レベル動作を示すフローチャートである。
【００１８】
【図１４】図１４は種々の実施形態に従い複数の仮想区分を有する分割ディスプレイの有効化を示すフローチャートである。
【００１９】
【図１５】図１５は種々の実施形態に従う分割ディスプレイの無効化を示すフローチャートである。
【００２０】
【図１６】図１６は実施形態に従う分割ディスプレイ構成アプリケーションウインドウの例を示す図である。
【００２１】
【図１７】図１７は実施形態に従い分割ディスプレイ構成アプリケーションウインドウのメニュー内に設けられてよい例示的なディスプレイ構成の図である。
【発明を実施するための形態】
【００２２】
本開示は、単一のディスプレイの可視区域を少なくとも２つの仮想可視区域へと区分化することと、オペレーティングシステムがあたかも２つの実際の物理ディスプレイとインタフェースしているかのように挙動すべくオペレーティングシステムと共に少なくとも２つの仮想可視区域を少なくとも２つのエミュレートされた物理ディスプレイとしてエミュレートすることと、を含む方法を提供する。方法は、少なくとも２つのエミュレートされた物理ディスプレイのエミュレーションを種々の方法で達成する。例えば方法は、ディスプレイ情報に対するオペレーティングシステムからのクエリーに応答して、エミュレートされた物理ディスプレイの各々に対して生成されるディスプレイ識別データ（例えばＥＤＩＤ、「拡張されたディスプレイ識別データ(extended display identification data)」）をオペレーティングシステムに提供する。
【００２３】
別の例においては、方法は、割り込みの通知をグラフィクス処理ユニットから受け取ること（ここで割り込みは単一の物理ディスプレイに対応する）と、あたかも２つの割り込みが受け取られたかのように少なくとも２つのエミュレートされた物理ディスプレイに対応する割り込み報告情報の少なくとも２セットをオペレーティングシステムに報告することと、によって、少なくとも２つのエミュレートされた物理ディスプレイをエミュレートする。それにより、オペレーティングシステムは、あたかも２つの物理ディスプレイが動作中であるがごとく作用するように「疑似化される(faked)」。
【００２４】
方法は更に、少なくとも２つの仮想可視区域のうち、物理ディスプレイとしてエミュレートされた１つの仮想可視区域内で第１のアプリケーションウインドウをフルスクリーンモードでディスプレイすることを提供し、ここでフルスクリーンモードにおけるアプリケーションは１つの仮想可視区域の周囲内にのみ拡大する。方法は更に、第１のアプリケーションが１つの仮想可視区域内においてフルスクリーンでディスプレイされている間に、少なくとも２つの仮想可視区域のうち別の物理ディスプレイとしてエミュレートされた別の仮想可視区域内において第２のアプリケーションウインドウをディスプレイすることと、第２のアプリケーションウインドウがアクセスされている間、例えば焦点に置かれている間に、第１のアプリケーションをフルスクリーンモードでディスプレイし続けることと、を含んでいてよい。
【００２５】
方法は、ディスプレイデータフレームを組成するためのダブルバッファリング方法を含み、ここで各データフレームは、少なくとも２つの仮想可視区域の全部(both)からのデータを含む。方法は、ディスプレイデータフレームを単一のディスプレイへ送ることを含む。方法はまた、少なくとも２つの仮想可視区域の第１の仮想可視区域内にディスプレイされるディスプレイデータが変更されたことを決定することと、少なくとも２つの仮想可視区域の第２の仮想可視区域からのディスプレイデータを第１のディスプレイデータフレーム内にコピーすることと、を含んでいてもよい。
【００２６】
方法はまた、単一のディスプレイの可視区域を少なくとも２つの仮想可視区域へと区分化するディスプレイ構成に対応する選択入力を受け取ることを含んでいてもよい。この実施形態においては、方法は、選択入力に応答して、単一のディスプレイの可視区域を少なくとも２つの仮想可視区域へと区分化する。
【００２７】
幾つかの実施形態において、方法はまた、少なくとも２つのエミュレートされた物理ディスプレイの１つ上でのディスプレイの準備が整ったバッファリングされたデータの通知をオペレーティングシステムから受け取ることと、少なくとも２つのエミュレートされた物理ディスプレイの第１のエミュレートされた物理ディスプレイ上でのディスプレイデータが変化したことを決定することと、少なくとも２つのエミュレートされた物理ディスプレイのうちディスプレイデータは変化しなかったが第１のデータフレーム内にはない第２のエミュレートされた物理ディスプレイのためのディスプレイデータを第１のデータフレーム内へコピーし、第１及び第２のエミュレートされた物理ディスプレイに対して第１のデータフレームにおいて完了したものとしてフラグを設定することと、第１のエミュレートされた物理ディスプレイに対して第２のデータフレームにおいて完了しなかったものとしてフラグを設定することと、によって少なくとも２つの仮想可視区域を少なくとも２つのエミュレートされた物理ディスプレイとしてエミュレートしてもよい。エミュレートする方法はまた、少なくとも２つのエミュレートされた物理ディスプレイの１つ上でのディスプレイの準備が整ったバッファリングされたデータの通知をオペレーティングシステムから受け取ることと、少なくとも２つのエミュレートされた物理ディスプレイの第２のエミュレートされた物理ディスプレイ上でのディスプレイデータが変化したことを決定することと、少なくとも２つのエミュレートされた物理ディスプレイのうちディスプレイデータは変化しなかったが第２のデータフレーム内にはない第１のエミュレートされた物理ディスプレイと第２のエミュレートされた物理ディスプレイとの両方のためのディスプレイデータを第２のデータフレーム内にコピーし、第１及び第２のエミュレートされた物理ディスプレイに対して第２のデータフレームにおいて完了したものとしてフラグを設定することと、第２のエミュレートされた物理ディスプレイに対して第１のデータフレームにおいて完了しなかったものとしてフラグを設定することと、を含んでいてもよい。
【００２８】
方法はまた、カーソル制御、例えば、カーソル位置に対応する通知を受け取ることと、少なくとも２つのエミュレートされた物理ディスプレイのうちカーソルが位置するエミュレートされた物理ディスプレイを決定することと、カーソルが位置するエミュレートされた物理ディスプレイに対するカーソルの相対位置を単一のディスプレイの全体ディスプレイ面に対応する物理位置に変換することと、を含んでいてもよい。
【００２９】
開示される実施形態はまた、少なくとも１つのプログラム可能プロセッサとプログラム可能プロセッサに動作可能に結合されるメモリとを有する装置を提供する。メモリは、少なくとも１つのプロセッサによる実行のための実行可能な命令を含む。少なくとも１つのプログラム可能プロセッサが実行可能な命令を実行する場合、プログラム可能プロセッサは、単一のディスプレイの可視区域を少なくとも２つの仮想可視区域へと区分化し、オペレーティングシステムがあたかも２つの実際の物理ディスプレイとインタフェースしているかのように挙動すべくオペレーティングシステムと共に少なくとも２つの仮想可視区域を少なくとも２つのエミュレートされた物理ディスプレイとしてエミュレートするように動作可能である。
【００３０】
装置の少なくとも１つのプログラム可能プロセッサは、実行可能な命令を実行する場合に、ディスプレイ情報に対するオペレーティングシステムからのクエリーに応答して少なくとも２つのエミュレートされた物理ディスプレイの各々に対して生成されるディスプレイ識別データをオペレーティングシステムに提供することによって、少なくとも２つの仮想可視区域を少なくとも２つのエミュレートされた物理ディスプレイとしてエミュレートするように動作可能であってもよい。少なくとも１つのプログラム可能プロセッサは、単一のディスプレイに対応する割り込みの通知をグラフィクス処理ユニットから受け取ることと、あたかも２つの割り込みが受け取られたかのように少なくとも２つのエミュレートされた物理ディスプレイに対応する割り込み報告情報の少なくとも２セットをオペレーティングシステムに報告することと、によって少なくとも２つのエミュレートされた物理ディスプレイをエミュレートするように動作可能であってもよい。
【００３１】
装置はまた、少なくとも２つの仮想可視区域の１つの仮想可視区域内で第１のアプリケーションウインドウをフルスクリーンモードでディスプレイするように動作可能なディスプレイを含んでいてもよく、ここでフルスクリーンモードにおけるアプリケーションウインドウは、１つの仮想可視区域の周囲内にのみ拡大する。ディスプレイは、第１のアプリケーションウインドウが１つの仮想可視区域内においてフルスクリーンモードでディスプレイされている間に、少なくとも２つの仮想可視区域の別の仮想可視区域内において第２のアプリケーションウインドウを更にディスプレイしてもよい。そしてディスプレイは、第２のアプリケーションウインドウがアクセスされている間、例えば焦点に置かれている間に、第１のアプリケーションウインドウをフルスクリーンモードでディスプレイし続けることになる。
【００３２】
開示される装置の少なくとも１つのプログラム可能プロセッサはまた、ディスプレイデータフレームを組成してもよく、ここで各データフレームは、少なくとも２つの仮想可視区域の全部からのデータを含む。ディスプレイデータフレームは、単一のディスプレイへ送られる。少なくとも１つのプログラム可能プロセッサはまた、少なくとも２つの仮想可視区域の第１の仮想可視区域内にディスプレイされるディスプレイデータが変更されたことを決定してよく、そして少なくとも２つの仮想可視区域の第２の仮想可視区域からのディスプレイデータを第１のディスプレイデータフレーム内にコピーしてもよい。
【００３３】
幾つかの実施形態においては、分割ディスプレイの構成のため及び仮想ディスプレイ区域がどのように配置されるのかを選択するために、ユーザインタフェースが更に設けられる。従って、装置の少なくとも１つのプログラム可能プロセッサは、単一のディスプレイの可視区域を少なくとも２つの仮想可視区域へと区分化するディスプレイ構成に対応する選択入力を受け取るように動作可能であってもよい。単一のディスプレイの可視区域は次いで、選択入力に応じて、少なくとも２つの仮想可視区域へと区分化される。
【００３４】
幾つかの実施形態においては、少なくとも１つのプログラム可能プロセッサは、少なくとも２つのエミュレートされた物理ディスプレイの１つ上でのディスプレイの準備が整ったバッファリングされたデータの通知をオペレーティングシステムから受け取ることと、少なくとも２つのエミュレートされた物理ディスプレイの第１のエミュレートされた物理ディスプレイ上でのディスプレイデータが変化したことを決定することと、少なくとも２つのエミュレートされた物理ディスプレイのうちディスプレイデータが変化しなかった第２のエミュレートされた物理ディスプレイのためのディスプレイデータを第１のデータフレーム内へコピーし、第２のエミュレートされた物理ディスプレイに対して第１のデータフレームにおいて完了したものとしてフラグを設定することと、第２のエミュレートされた物理ディスプレイに対して第２のデータフレームにおいて完了しなかったものとしてフラグを設定することと、によって少なくとも２つの仮想可視区域を少なくとも２つのエミュレートされた物理ディスプレイとしてエミュレートするように動作可能であってよい。
【００３５】
プログラム可能プロセッサはまた、少なくとも２つのエミュレートされた物理ディスプレイの１つ上でのディスプレイの準備が整ったバッファリングされたデータの通知をオペレーティングシステムから受け取ることと、少なくとも２つのエミュレートされた物理ディスプレイの第１のエミュレートされた物理ディスプレイ上でのディスプレイデータが変化したことを決定することと、少なくとも２つのエミュレートされた物理ディスプレイのうちディスプレイデータは変化しなかったが第１のデータフレーム内にはない第１のエミュレートされた物理ディスプレイ及び第２のエミュレートされた物理ディスプレイの両方のためのディスプレイデータを第１のデータフレーム内へコピーし、第１及び第２のエミュレートされた物理ディスプレイに対して第１のデータフレームにおいて完了したものとしてフラグを設定することと、第１のエミュレートされた物理ディスプレイに対して第２のデータフレームにおいて完了しなかったものとしてフラグを設定することと、によって物理ディスプレイをエミュレートするように動作可能であってもよい。プログラム可能プロセッサはまた、少なくとも２つのエミュレートされた物理ディスプレイの１つ上でのディスプレイの準備が整ったバッファリングされたデータの通知をオペレーティングシステムから受け取ることと、少なくとも２つのエミュレートされた物理ディスプレイの第２のエミュレートされた物理ディスプレイ上でのディスプレイデータが変化したことを決定することと、少なくとも２つのエミュレートされた物理ディスプレイのうちディスプレイデータが変化した第２のエミュレートされた物理ディスプレイ及びディスプレイデータは変化しなかったが第２のデータフレーム内にはない第１のエミュレートされた物理ディスプレイのためのディスプレイデータを第２のデータフレーム内にコピーし、第１及び第２のエミュレートされた物理ディスプレイに対して第２のデータフレームにおいて完了したものとしてフラグを設定することと、第２のエミュレートされた物理ディスプレイに対して第１のデータフレームにおいて完了しなかったものとしてフラグを設定することと、によって物理ディスプレイをエミュレートするように動作可能であってもよい。
【００３６】
少なくとも１つのプログラム可能プロセッサはまた、カーソル位置に対応する通知を受け取ることと、少なくとも２つのエミュレートされた物理ディスプレイのうちカーソルが位置するエミュレートされた物理ディスプレイを決定することと、カーソルが位置するエミュレートされた物理ディスプレイに対するカーソルの相対位置を単一のディスプレイの全体ディスプレイ面に対応する物理位置に変換することと、を含むカーソル制御を確立するように動作可能であってもよい。
【００３７】
本開示は更に、少なくとも１つのプロセッサによる実行のための実行可能な命令を含むコンピュータ可読メモリであって、実行されるときに上に概説したような実施形態に従う動作及び方法を少なくとも１つのプロセッサに行わせるコンピュータ可読メモリを提供する。例えば、実行可能な命令は、実行されるときに、単一のディスプレイの可視区域を少なくとも２つの仮想可視区域へと区分化することと、オペレーティングシステムがあたかも２つの実際の物理ディスプレイとインタフェースしているかのように挙動すべくオペレーティングシステムと共に少なくとも２つの仮想可視区域を少なくとも２つのエミュレートされた物理ディスプレイとしてエミュレートすることと、を少なくとも１つのプロセッサにさせてよい。
【００３８】
コンピュータ可読メモリは、実行可能な命令又はプログラムコードを後で更に詳細に説明されるような他の処理デバイス又は電子デバイスにロードするために用いられ得る任意の適切な不揮発性メモリ、限定はされないが例えば、ＥＥＰＲＯＭ等のプログラム可能チップ、フラッシュＲＯＭ（サムドライブ(thumb drives)）、コンパクトディスク（ＣＤ）デジタルビデオディスク（ＤＶＤ）等であってよい。
【００３９】
ここで用いられる「モジュール」の用語は、１つ以上のプログラム可能プロセッサ、ＡＳＩＣ、ＤＳＰ、ハードワイヤード論理(hardwired logic)、又はこれらの組み合わせにおいて実行されるソフトウエア及び／又はファームウエアを含んでいてよく、またモジュールは、電子デバイス／装置内及び／又はディスプレイデバイス内にあってよい。
【００４０】
次に図面を参照すると、図１は実施形態に従う装置又は電子デバイスを示しており、全図を通して同様の参照符号は同様の要素を表す。装置は、例えば、ラップトップコンピュータ、デスクトップコンピュータ、限定はされないが携帯電話、ブックリーダ、ＰＤＡ等の携帯型電子デバイスであってよく、あるいはディスプレイが電子デバイスの外部にあるか電子デバイス内に一体化されているかにかかわらずそのようなディスプレイを使用する任意の電子デバイスであってよい。図１の装置は、中央処理ユニットＣＰＵ２０９と、ＣＰＵ２０９に動作可能に結合されるグラフィクス処理ユニットＧＰＵ２１５と、を含む。ＣＰＵ２０９は、オペレーティングシステム２０７と、オペレーティングシステム２０７に動作可能に結合されるグラフィクスモジュール２０１と、を含む。幾つかの実施形態においては、グラフィクスモジュール２０１はカーネルモードドライバ(kernel mode driver)として実装されてよい。オペレーティングシステム２０７はまた、ＣＰＵ２０９上で実行中であってもよい構成ユーザインタフェース(configuration user interface)２０３に動作可能に結合される。構成ユーザインタフェース２０３は、グラフィクスモジュール２０１と共に分割ディスプレイシステム(split display system)２００を構成する。ＣＰＵ２０９及びＧＰＵ２１５は、種々の実施形態において種々の方法で実装されてよい。例えばＣＰＵ及びＧＰＵは、１つ以上の処理コアを含んでいてよく、また物理的に別個の集積回路上に配置されてよく、更には別個のプリント回路板上に配置されてもよい。しかし、幾つかの実施形態では、ＣＰＵ２０９及びＧＰＵ２１５は、単一の集積回路ダイ上に一体化された集積回路であることがある。ＣＰＵ及びＧＰＵはシステムメモリを共有していてよく、システムメモリは、ＣＰＵ及びＧＰＵの外部に物理的に配置されてよく、あるいは同じダイ上又はＣＰＵ及びＧＰＵを有するプリント回路板上に配置されてよい。
【００４１】
システムメモリはフレームバッファ２１９を含んでいてよい。しかし、幾つかの実施形態においては、ＧＰＵ２１５が専用のメモリを有していてよく、更にはフレームバッファ２１９を含んでいてもよい。更に他の実施形態においては、フレームバッファ２１９は、ＧＰＵ２１５専用メモリとＣＰＵ２０９及びＧＰＵ２１５によって共有されるシステムメモリとの間で分散させられていてよい。従って、実施形態に従うと、フレームバッファ２１９は、システムメモリであるかＧＰＵ２１５専用メモリ等の専用メモリであるかにかかわらず任意の適切なメモリ内に収容されていてよい。フレームバッファ２１９は、２つの主要な部分、即ち仮想ディスプレイバッファセット２２１と物理ディスプレイフレームバッファ２２３とを含む。オペレーティングシステム２０７はフレームバッファ２１９への論理インタフェース２１３を提供するが、ＧＰＵ２１５とフレームバッファ２１９の間での実際の物理データ転送は、インタフェース２１７を介して生じる。実施形態に従うと、ＧＰＵ２１５はデータを仮想ディスプレイバッファセット２２１に供給し、ここで仮想ディスプレイバッファの各々は、物理ディスプレイ１０１等の物理ディスプレイの仮想ディスプレイ区域に対応する。仮想バッファ２２１によって物理ディスプレイフレームバッファ２２３に供給されるデータは、ディスプレイデータ、即ち仮想ディスプレイに対応するディスプレイデータである。物理ディスプレイバッファ２２３はディスプレイデータをバッファリングし、そして仮想ディスプレイ区域１０９及び１１１でのディスプレイのためにディスプレイデータを物理ディスプレイ１０１へ送る。物理ディスプレイバッファ２２３は２つのフレーム、即ちフレームＡ及びフレームＢにセグメント化されており、ここではフレームＡ及びＢの各々は、両方の仮想ディスプレイからのディスプレイデータを含む。つまり、フレームＡは、仮想ディスプレイ区域＃１及び仮想ディスプレイ区域＃２に対するディスプレイデータを含むことになる。同様にフレームＢは、仮想ディスプレイ区域＃１及び仮想ディスプレイ区域＃２に対するディスプレイデータを含むことになる。
【００４２】
物理ディスプレイ１０１はディスプレイデバイスであり、例えばテレビジョン、コンピュータモニタ、あるいはラップトップコンピュータ、携帯型コンピューティングデバイス、携帯電話、ＰＤＡ等の別の電子デバイスに一体化されるディスプレイであってよい。ディスプレイデバイスは、例えば、ＣＲＴ、ＬＣＤフラットパネル、ＬＥＤフラットパネル、プラズマスクリーン等、即ち任意の適切なディスプレイ技術によるものであってよい。物理ディスプレイ１０１はＧＰＵ２１５に動作可能に結合され、そしてＣＰＵ２０９にも動作可能に結合される（例えばＧＰＵ２１５を介して）。物理ディスプレイ１０１は、アプリケーション並びに／又は限定はされないがＪＰＧ／ＪＰＥＧ、ＧＩＦ、ＭＰＥＧ等の種々のファイル種類の電子的ファイル及び／若しくは限定はされないが「．ｄｏｃ」、「．ｐｄｆ」等のファイル「拡張」によって決定されるファイル、に関連する情報及び画像をディスプレイするように動作する。物理ディスプレイ１０１は、メモリ、及び／又はそのスクリーンスペース上にディスプレイされる画像に関連する画像品質設定の調節若しくは構成を可能にする論理、を含んでいてよい。物理ディスプレイ１０１は、限定はされないが「ＥＤＩＤ」情報（「拡張されたディスプレイ識別データ(extended display identification data)」）等の情報に対するクエリー(queries)を受信すると共にこれに応答する能力を包含する。
【００４３】
図１の上端近くに示されるように、物理ディスプレイ１０１は物理ディスプレイ可視面(physical display visible surface)１００を含む。実施形態に従うと、物理ディスプレイ可視面１００は、境界１０７によって仮想ディスプレイ区域＃１＿１０９と仮想ディスプレイ区域＃２＿１１１とに区分化されている。従って仮想ディスプレイ区域は、物理ディスプレイ１０１可視面区域の区分化された部分である。仮想ディスプレイ区域はまた、「仮想ディスプレイ」、即ち更に説明されることになるエミュレートされた(emulated)物理ディスプレイ、に対応しているものと考えることもできる。２つの仮想ディスプレイ区域の各々は、対応する仮想ディスプレイバッファを有しており、即ちそれぞれ仮想ディスプレイバッファ＃１及び仮想ディスプレイバッファ＃２である。図１に示される例示的な実施形態においては、物理ディスプレイ可視面１００は２つの仮想ディスプレイ区域のみに区分化されているが、物理ディスプレイ可視面１００は、実施形態に従って任意の望ましい数の仮想ディスプレイ区域に区分化されてよい。従って、フレームバッファ２１９は、仮想ディスプレイバッファセット２２１内に１〜Ｎ仮想ディスプレイバッファを有していてよい。図１に示されるように、仮想ディスプレイバッファセット２２１は、ディスプレイ構成毎に決定される。上述したように、ディスプレイ構成は、構成ユーザインタフェース２０３を用いてユーザ決定されてよい。仮想ディスプレイバッファセット２２１はディスプレイデータを物理ディスプレイフレームバッファ２２３に供給し、物理ディスプレイフレームバッファ２２３は、仮想ディスプレイバッファデータをディスプレイデータの複数の単体フレーム(single frames)に統合し(consolidates)、そしてそれらを物理ディスプレイ１０１にインタフェース２２５を介して供給する。
【００４４】
種々の実施形態に従い、グラフィクスモジュール２０１は、仮想化／物理ディスプレイマッピング論理境界２１１で示されるように、ＣＰＵ２０９に対する仮想化とＧＰＵ２１５に対する物理ディスプレイマッピングとを提供する。動作において、オペレーティングシステム２０７は、論理インタフェース２１３を介して、仮想ディスプレイ区域１０９及び１１１を、ＣＰＵに動作可能に結合される多重物理ディスプレイとして把握する。しかし、ＧＰＵ２１５の視点からは、単一の物理ディスプレイ、即ち物理ディスプレイ１０１のみが存在し且つ全体システムに動作可能に結合されていることになる。グラフィクスモジュール２０１は、オペレーティングシステムがまるで多重物理ディスプレイと相互作用しているよう動作するように、オペレーティングシステム２０７とＧＰＵ２１５の間でインタフェースして割り込みを処理し、そしてそれらの間で情報を提供する。グラフィクスモジュール２０１とＧＰＵ２１５の間での相互作用は、まるで単一の物理ディスプレイが接続されているかのようにＧＰＵが通常通りに動作することを可能にするが、これは事実上、仮想ディスプレイ区域からの情報が物理ディスプレイ１０１の物理ディスプレイ可視面１００に対応する情報に変換し直されて、この情報がＧＰＵ２１５に提供され得る場合である。つまり、論理境界２１１の物理ディスプレイマッピング部分は、グラフィクスモジュール２０１とＧＰＵ２１５の間のインタフェースである。
【００４５】
以下の図面、図２〜図６は、種々の実施形態の動作を理解するのに有用である。例えば図２は、物理ディスプレイ１０１物理ディスプレイ可視面１００がどのようにして２つの仮想ディスプレイ区域１０９及び１１１に区分化されるのかを示している。これらの仮想ディスプレイ区域は仮想境界１０７によって画定される。図２に示されるように、種々のアプリケーションウインドウが種々の仮想ディスプレイ区域内に示されまた動作中であってよい。例えば、仮想ディスプレイ区域１０９はアプリケーションウインドウ１〜３を有しているものとして示されている一方で、仮想ディスプレイ区域１１１はアプリケーションウインドウ４〜６を有するものとして示されている。図２にはまた、ここに説明される方法及び装置によって操作されるマウスカーソル１０５が示されており、これについては後で更に詳細に説明する。図３を参照すると、アプリケーションウインドウ２がフルスクリーンモードで示されており、これはこの例では「排他的モード(exclusive mode)」である。即ち、アプリケーションウインドウ２は、仮想ディスプレイ区域１０９の全ディスプレイ区域又はスクリーンスペースを占めるように拡大されており、そしていかなる境界をも示していない。しかし、従来の区分化ユーティリティとは異なり、ここに開示される種々の実施形態は、他の仮想ディスプレイ区域１１１を邪魔し又は覆うことなしにアプリケーションウインドウ＃２が仮想ディスプレイ区域１０９内でフルスクリーンになることを可能にする。従って、図３に示されるように、仮想ディスプレイ区域１１１内に存在するアプリケーションウインドウ４〜６は、見えたままであってよく、またユーザが焦点に置くと共に動作させることが可能なままであってよい一方で、アプリケーションウインドウ＃２は仮想ディスプレイ区域１０９内でフルスクリーンモードになっている。ウインドウを焦点に置くことは、例えば、アプリケーションウインドウ内の当該情報を見るために、又は当該アプリケーション若しくは当該アプリケーションウインドウに関連する何らかの他の動作（限定はされないが、例えばアプリケーションウインドウをリサイズしたり動かしたりすること）に進むために、通常はマウスカーソルをスクリーンスペース上のある区域に移動させて当該アプリケーションウインドウをクリックすることによって、即ち「選択すること」によって、コンピューティングデバイス又は電子デバイスのユーザが動作を選択することを含む。別の例においては、アプリケーションウインドウはまた、フルスクリーンモードに置かれてよく、ここでは、アプリケーションウインドウ境界は示されたままであり、また仮想ディスプレイ区域の周囲に沿って拡大される。この場合にも、アプリケーションウインドウは隣接している仮想ディスプレイ区域を邪魔することはなく、あるいは隣接している仮想ディスプレイ区域内にディスプレイされているいかなるアプリケーションを邪魔することもない。即ち、「フルスクリーンモード」は、例えば、アプリケーションスクリーンがディスプレイの可視区域を埋めると共に境界を有していない例えばゲーム（又は他の）アプリケーションにおいて用いられる「排他的モード」、あるいはアプリケーションウイ��ドウがディスプレイの可視区域内に完全に拡大されるが、アプリケーションウインドウの周囲を囲む境界を示したままであってよいフルスクリーンウインドウアプリケーションのいずれかであってよい。
【００４６】
図４は種々の実施形態の更なる能力を示している。図４において、アプリケーションウインドウ２は、２つの仮想ディスプレイ区域１０９及び１１１を部分的に横断して又はこれらの間で移動させられているものとして示されている。図４からわかるように、仮想ディスプレイ区域１１１内へのアプリケーションウインドウ＃２の移動は、仮想ディスプレイ区域１１１内の種々のアプリケーションウインドウの動作を妨げない。図１に示される装置は、オペレーティングシステム２０７とＧＰＵ２１５の間で必要なトランスレーション(translations)を行う。即ち、グラフィクスモジュール２０１は、ＧＰＵ２１５が適切な物理ディスプレイマッピングを受け取り、また仮想ディスプレイ区域１０９及び１１１に対応する２つのエミュレートされた物理ディスプレイに適する適切な情報をオペレーティングシステム２０７が受け取るように、アプリケーションウインドウ＃２等のオブジェクトの境界１０７を横切る移行に対して適切なアクションを取る。
【００４７】
図５はマウスカーソル１０５が２つの仮想ディスプレイ区域１０９及び１１１の間で移動する場合のシナリオを示している。図５において、カーソル１０５は、一方の仮想ディスプレイ区域から他方の仮想ディスプレイ区域に移動させられるように境界１０７を横切って示されている。種々の実施形態は、同様にそのようなマウスカーソル移動シナリオを取り扱い、これについては後で更に議論する。
【００４８】
別の使用事例のシナリオが図６に示されている。図６において、物理ディスプレイ１０１は、第２の物理ディスプレイ６０１と共に用いられる。第２の物理ディスプレイ６０１は、物理ディスプレイ１０１上に示されるデスクトップ又は仮想ディスプレイ区域１０９の複製を含む。図６に示されるように、物理ディスプレイ１０１上のアプリケーションウインドウ＃２は、仮想ディスプレイ境界１０７を横切って移動していてよい。しかし、物理ディスプレイ６０１上に示される仮想ディスプレイ区域１０９の複製に関しては、物理ディスプレイ１０１上の仮想ディスプレイ区域境界１０７は、物理ディスプレイ６０１の実際の物理ディスプレイ可視面の端に相当し、アプリケーションウインドウ＃２は可視ディスプレイ区域から、即ちモニタ枠(bezel)の外へ消えていっている。
【００４９】
種々の実施形態の動作、及びこれまでの図面に示される種々のシナリオを実施形態がどのように取り扱うのかは、図７〜図１５に提供されるフローチャートによって最も良く理解され、以下これを議論する。
【００５０】
種々の実施形態の動作を達成するために、グラフィクスモジュール２０１は、目標管理ＥＤＩＤ管理、接続管理、モードリスト管理、ディスプレイ特性管理、及び逆トポロジー管理(reverse topology management)を含む種々のディスプレイ管理タスクを行い、ここで逆トポロジー管理は、例えばＶｓｙｎｃ割り込み等の割り込みの管理である。グラフィクスモジュールが実施形態に従って行う必要のある他のタスクは、レンダリング(rendering)管理に関連している。従って、実施形態に従うグラフィクスモジュールは、特に、ディスプレイレンダリング検出、ディスプレイ可能フレーム組成(displayable frame composition)、及び資源管理を行う必要があり、資源管理は、フレームバッファ、コマンドバッファ及び組成コンテクストの管理並びにカーソル管理を含む。従って、グラフィクスモジュール２０１は、物理ディスプレイ１０１から導かれる１つ以上の仮想ディスプレイを維持し、そして仮想ディスプレイに関連する情報をオペレーティングシステム２０７に報告する。仮想ディスプレイ、即ち仮想ディスプレイ区域に対応するエミュレートされた物理ディスプレイは、リアル物理ディスプレイと同じ属性、例えばＥＤＩＣ、接続性、ビデオ出力タイプ、及び割り込みを与えられる。グラフィクスモジュール２０１は、物理ディスプレイ１０１上で表示されることになる最終的な画像のためのスワップチェイン(swap chain)としての専用メモリブロックをシステムメモリ内又は専用メモリ内に確保していてよい。グラフィクスモジュール２０１は、エミュレートされた物理ディスプレイが同じ同期信号（Ｖｓｙｎｃ）を物理ディスプレイ１０１と共有することを強制する。
【００５１】
例えば幾つかの実施形態においては、グラフィクスモジュール２０１は、デスクトップウインドウズマネージャ(desktop windows manager)（ＤＷＭ）と相互に作用してよい。例えばデスクトップウインドウズマネージャがオフの場合、グラフィクスモジュールは、物理ディスプレイ１０１上で表示されるべきフレームを専用メモリブロック内で構築してよい。ディスプレイデータフレームの構築は、例えばエミュレートされた両方の物理ディスプレイ上の面に対する「ｐｒｅｓｅｎｔ（）」又は「ｆｌｉｐ（）」を介した新たなレンダー要求の検出に基づいていてよい。デスクトップウインドウズマネージャがオンである場合に対しては、グラフィクスモジュール２０１は、両方の仮想ディスプレイに対するオペレーティングシステムに同期信号（Ｖｓｙｎｃ）を報告してよい。ＤＷＭをオンにするために、又は仮想ディスプレイ区域（即ちエミュレートされた物理ディスプレイ）のいずれか１つに対するフルスクリーンモードのために、フリップ要求(flip request)が入ってくると、グラフィクスモジュール２０１は、エミュレートされた物理ディスプレイのフレームからスワップチェインの１フレームへの組成を行い、そして新たに構築されたフレームを物理ディスプレイ１０１上に表示する。
【００５２】
グラフィクスモジュール２０１が、仮想ディスプレイ区域に対してアプリケーション独立性を保証し、また種々の仮想ディスプレイ区域内で実行中であってよい種々のアプリケーションからのいかなる構成変更にもかかわらず状態を維持するという点において、種々の実施形態はアプリケーションに対してトランスペアレント(transparent)である。ユーザ経験(user experience)の無矛盾性(consistency)及び安定性を維持するために、グラフィクスモジュール２０１は、ユーザによって作成される種々の仮想ディスプレイ上での構成変更の場合において必要に応じた措置を講じる。例えば、デスクトップの再配置又はディスプレイ上での解像度の変更が、グラフィクスモジュール２０１によって処理される。
【００５３】
図７を参照すると、実施形態に従うフレーム組成方法が示されている。このフレーム組成方法は、本質的には、仮想ディスプレイ区域の特定の必要性に対して修正されたダブルバッファリング動作である。例えば７０１では、オペレーティングシステムは、仮想ディスプレイ区域の１つでディスプレイされる準備が整っているバッファデータを有しており、そしてステップ７０３では、グラフィクスモジュールは、これがその場合であることの通知をオペレーティングシステムから受け取る。ダブルバッファリングスキームは、物理ディスプレイフレームバッファ２２３を２つの部分、即ちフレームＡとフレームＢに分割する。従って、７０５に示されるように、ディスプレイされるべき次の可視フレームがフレームＡである場合には、７０７において、左パネル又は右パネルのどちらがディスプレイされる準備が整っているかの決定がなされる。７０７から先のフローチャートは両側で対称であり、ここで、仮想ディスプレイ区域の１つに対して新たなレンダーフレーム(render frame)が存在する場合、反対側の又は他の仮想ディスプレイ区域面データがコピーされ、そして当該特定の仮想ディスプレイ区域に関して完了した旨のフラグがフレームに立てられる。例えば７１１に示されるように、フレームＡ内の右パネル面に対して新たなレンダーフレームが存在する場合、７２７に示されるように左パネル面データのみがコピーされる。次いでバッファは、７２９に示されるように、フレームＡ内の左パネル情報に関して完了した旨をマーキングされる。フレームＢは、７３１に示されるように更新される必要があるので、左パネルに関してマーキングされない。方法は次いでブロック７３３〜７４３に進み、ここではオペレーティングシステム２０７に関して割り込みが応答される。図８は実施形態に従うハードウエア割り込みの処理及びエミュレートされた物理ディスプレイに対するハードウエア割り込みのシミュレーションを示している。例えば８０１に示されるようにＧＰＵ２１５がハードウエア割り込みを送ってよい。示されている幾つかの実施形態においては、これはＶｓｙｎｃ割り込みであってよい。ブロック８０３に示されるように、グラフィクスモジュール２０１は、ＧＰＵの制御器ＩＤに関連する目標ＩＤを入手することになる。グラフィクスモジュール２０１は次いで、８０５に示されるように、制御器ＩＤに関連するソースＩＤを入手し、そして８０７において、特定のソースが分割ディスプレイモードに関与しているかどうかを決定する。関与していない場合には、グラフィクスモジュール２０１は、ブロック８１７に示されるように、リトリーブされた(retrieved)目標ＩＤ及び面アドレスをＯＳに報告し、そして８１９において制御をＯＳに戻す。
【００５４】
８０７においてソースが分割ディスプレイモードに関与している場合には、グラフィクスモジュール２０１は、８０９に示されるように、任意の追加的なソースが分割ディスプレイモードに関与しているかどうかをチェックする。関与している場合には、グラフィクスモジュールは、８１１に示されるように、分割ディスプレイに関与している次のソースＩＤ及び目標ＩＤに対してアレイを検索する。グラフィクスモジュールは次いで、８１３に示されるように、発見されたソースＩＤをインデックスとして用いて当該関連する面アドレスをリトリーブする。面アドレスは、例えば、システムメモリ内に記憶されていてよいテーブル８３１から取得されてよい。分割ディスプレイに関与している全てのソースが８０９によって決定された場合、グラフィクスモジュール２０１は、ボックス８１７及び８１９に示されるように、オペレーティングシステムに報告する。従ってグラフィクスモジュール２０１は、ハードウエアが不適切に動作しているとオペレーティングシステムが不用意に結論付けたりオペレーティングシステムがＧＰＵ２１５を不用意にリセットモードにしたりしないように、エミュレートされた物理ディスプレイに対する割り込みをオペレーティングシステムのためにシミュレートする。図８において、目標ＩＤは、物理ディスプレイに対応するＩＤであるモニターＩＤであるとみなされてよいことが理解されるはずである。従ってグラフィクスモジュール２０１は、オペレーティングシステムが仮想ディスプレイ区域を別個の物理ディスプレイとして把握するように、仮想ディスプレイ区域に関して目標ＩＤをシミュレートする必要がある。ソースＩＤは、仮想ディスプレイ区域又は仮想デスクトップ、例えば仮想ディスプレイ区域１０９及び１１１に対応する。
【００５５】
図９はデスクトップウインドウズマネージャ（ＤＷＭ）が動作中でない場合における組成の処理を示している。グラフィクスモジュール２０１は、Ｖｓｙｎｃ割り込みコールバック等、ハードウエア割り込みを介してＧＰＵ２１５と共にコールバック９０１を作成する。この場合、割り込みが生じると、グラフィクスモジュール２０１は、９０３において、両仮想ディスプレイ区域の両方の新たなコンテンツ状態(content states)をチェックする。仮想ディスプレイ区域の両方に変化がある場合９０９には、グラフィクスモジュール２０１は、両方の仮想ディスプレイ区域を物理ディスプレイバッファ２２３内の第１のディスプレイフレームＡ内にコピーする。仮想ディスプレイ区域のいずれかに変化がある場合９１１，９１５には、グラフィクスモジュール２０１は、当該特定の仮想ディスプレイ区域のみを物理ディスプレイバッファ２２３内の第１のディスプレイフレームＡ内にコピーする。しかし、グラフィクスモジュールは、なんら情報をオペレーティングシステム２０７に報告し戻す必要はない。
【００５６】
図１０は例えばカーソル１０５が仮想ディスプレイ区域境界１０７を横切って移動する図５に示されるシナリオに対応するカーソル管理の方法を示している。この場合、グラフィクスモジュール２０１は、１００５に示されるように、カーソルが左パネル又は右パネルのどちらにあるのかを決定し、即ちグラフィクスモジュール２０１は、マウスカーソルが存在する仮想ディスプレイを決定する。マウスカーソルの位置は、仮想ディスプレイ区域上の相対位置から、全体的な物理ディスプレイ１０１の物理ディスプレイ可視面１００に対応する物理ディスプレイ位置へと変換される。この情報は次いで、１００９に示されるように、ＧＰＵ２１５に供給される。
【００５７】
図１１〜１３は種々の実施形態の動作を要約している。図１１に示されるように、ブロック１１０１においては、単一の物理ディスプレイの可視区域が少なくとも２つの仮想可視区域へと区分化されてよい。種々の実施形態のグラフィクスモジュール２０１は次いで、仮想可視区域をオペレーティングシステム２０７に対する物理ディスプレイとしてエミュレートしてよい。図１２はシステム２００が構成ユーザインタフェース２０３を含んでいてよいことを示している。それに従い１２０１においては、仮想ディスプレイの構成のためにユーザインタフェース２０３が提供されてよい。１２０３においては、グラフィクスモジュール２０１は、ディスプレイ配置のためのユーザ選択入力を、構成ユーザインタフェース２０３から論理インタフェース２０５を介して受け取ってよい。１２０５に示されるように、グラフィクスモジュール２０１は、グラフィクスモジュール２０１とＧＰＵ２１５の間のハードウエアインタフェース上で仮想ディスプレイデータを物理ディスプレイ１０１にマッピングする。グラフィクスモジュール２０１は次いで、１２０９に示されるように、複数の仮想ディスプレイセクションを横切る画像移動を処理する。図１３はアプリケーションがフルスクリーンモードで表示されている場合の仮想ディスプレイ区域の動作を示している。１３０１においては、第１の仮想可視区域内に第１のアプリケーションがフルスクリーンモードでディスプレイされてよい。１３０２に示されるように、第１のアプリケーションが第１の仮想可視区域内にフルスクリーンモードでディスプレイされる間に、第２の仮想可視区域内の第２のアプリケーションへのアクセスが提供される。
【００５８】
図１４及び１５は、構成ユーザインタフェース２０３の更なる動作を示すフローチャートであり、物理ディスプレイ１０１上での分割ディスプレイモードの有効化及び無効化を示している。１４０１において、構成ユーザインタフェース２０３は、ユーザが分割ディスプレイモードをエンターしたがっていることの通知をグラフィクスモジュール２０１へ送ってよい。１４０３において、グラフィクスモジュール２０１は、分割ディスプレイ有効化シーケンスの開始を構成ユーザインタフェース２０３に通知する。このことは、例えば「中断(pause)」イベントを用いることによって達成されてよい。１４０５において、グラフィクスモジュール２０１は、分割ディスプレイデータを保存し、そして元のディスプレイ、即ち物理ディスプレイ１０１が取り外されたこと及び２つの新たなディスプレイが今や取り付けられたことをオペレーティングシステム２０７に通知する。２つの新たなディスプレイは、実際には物理ディスプレイ１０１内の図１に示される仮想ディスプレイ区域１０９及び１１１であるエミュレートされた物理ディスプレイである。オペレーティングシステムは次いで、１４０７に示されるようにディスプレイ情報に対してクエリーし(queries)、そしてグラフィクスモジュール２０１は、疑似ＥＤＩＤ(fake EDIDs)を生成してこれらをオペレーティングシステム２０７に供給する。１４０９に示されるように、オペレーティングシステム２０７は次いでモニターモードをクエリーし、そしてグラフィクスモジュール２０１はモニターソースモードをオペレーティングシステム２０７に提供する。１４１１において、オペレーティングシステム２０７はモードリストをクエリーし、そしてグラフィクスモジュール２０１は、サポートされているモードリストをオペレーティングシステム２０７に提供する。１４１３において、オペレーティングシステム２０７は、２つの仮想ディスプレイ区域１０９及び１１１に対応する２つのエミュレートされた物理ディスプレイに対応している２つのディスプレイ上で当該モードを設定する。１４１５において、グラフィクスモジュール２０１は、例えば「レジューム(resume)」イベントを用いて分割ディスプレイシーケンスの終了について構成ユーザインタフェース２０３に通知する。１４１７において、オペレーティングシステム２０７は２つの仮想ディスプレイ区域上でのレンダリングを開始し、そしてグラフィクスモジュール２０１は２つの独立したデスクトップを単一の物理ディスプレイ１０１上に組成する。図１５は分割モード無効化の動作を示す別のフローチャートを示している。グラフィクスモジュール２０１は、１５０５に示されるように、２つの疑似ディスプレイ、即ち２つの疑似ＥＤＩＤに対応する２つのエミュレートされた物理ディスプレイが取り外されたこと、及び元の物理ディスプレイ１０１が今や取り付けられていることをオペレーティングシステム２０７に通知することによって、分割ディスプレイモードを無効化する。グラフィクスモジュール２０１は、ブロック１５０９〜１５１５に示されるように、必要な情報をオペレーティングシステム２０７に提供し、その結果、オペレーティングシステムは、１５１７に示されるように、物理ディスプレイ１０１上への物理ディスプレイ可視面１００のレンダリングを再び開始することができる。
【００５９】
従って、種々の実施形態に従うと、幾つかの実施形態ではカーネルモードドライバとして実装され得るグラフィクスモジュール２０１は、グラフィクス処理ユニット及び関連するグラフィクスハードウエアが単一の物理ディスプレイのみをその特定の動作に関して把握している場合にオペレーティングシステム２０７が多重物理ディスプレイの動作を把握するように、オペレーティングシステム２０７とグラフィクス処理ユニット２１５（及びチップセット等の関連するグラフィクスハードウエア等）との間でのインタフェースを提供する。それにより、物理ディスプレイは、上述したように種々の仮想ディスプレイ区域へと区分化されてよい。図１６は構成ユーザインタフェース２０３の一部として用いられてよい例示的なアプリケーションウインドウを示している。アプリケーションウインドウ１６００は、例えばプルダウンメニュー１６０３によってユーザがディスプレイレイアウトを選択することを可能にする。構成ユーザインタフェース２０３アプリケーションウインドウ１６００は、物理ディスプレイ可視面１６０１の仮想画像を提供してよく、そして選択された仮想ディスプレイ区域区分、例えば物理ディスプレイ区域区分境界１６０９を表示してよい。ユーザは次いで、カーソル１６０７を用いてＯＫをクリックして分割ディスプレイモードをエンターすることができ、これは、構成ユーザインタフェース２０３が分割ディスプレイモードの通知をグラフィクスモジュール２０１へ送る図１４におけるブロック１４０１に関して説明した通りである。従って、図１４のブロック１４０１によって説明される措置は、構成ユーザインタフェース２０３のアプリケーションウインドウ１６００内でのユーザの活動の結果であってよい。
【００６０】
アプリケーションウインドウ１６００は、可能なユーザインタフェースを説明することを目的として単純化された例示的なアプリケーションウインドウである。しかし、アプリケーションウインドウ１６００は例示的なものとしてのみ理解されるべきであり、従ってアプリケーションウインドウ１６００の種々の他のレイアウト及び構成が種々の実施形態において用いられ得ることが理解されるはずである。例えば、プルダウンメニュー１６０３は物理ディスプレイ可視区域の構成のテキスト記述を提供してよいが、プルダウンメニューは、図１７に示される構成タイプ１７００によって説明されるような構成タイプの記号を提供してもよい。図１７に示されるように、種々の構成タイプ１７００は、アプリケーションウインドウ１６００のプルダウンメニュー１６０３の一部として提供されてよい。従って、ユーザは単純にプルダウンメニューを選択し、そして構成タイプ１７００の構成選択から適切な構成を選択すればよい。言うまでもなく、構成タイプ１７００は、包括的なセットと考えられるよりはむしろ、種々の実施形態によって用いられ得る幾つかの可能な構成を例示するものとしてのみ考えられるべきである。即ち、図１７に示される例示的な構成タイプ１７００は最大で４つの仮想ディスプレイ区域を示しているが、４つより多くの仮想ディスプレイ区域があってもよい。また、図１７に示される仮想ディスプレイ区域は、垂直及び水平位置境界によって画定されている。しかし、仮想ディスプレイ区域は単純に水平及び垂直境界によって画定される必要はなく、種々の幾何学的形状及びパターン、限定はされないが例えば、三角形、長方形、円又は他の形状の仮想ディスプレイ区域境界パターンによって画定されてよい。
【００６１】
以上のように、ディスプレイ面を複数の仮想ディスプレイ区域へと区分化するための動作の装置及び方法がここに開示されてきた。当業者であれば、ここに開示される実施形態と均等な他の変形に気付くであろうし、そのような変形は、以下の特許請求の範囲によって画定される実施形態の範囲に従って存在するであろう。
【図１】
0005506120.tif 000002
【図２】
0005506120.tif 000003
【図３】
0005506120.tif 000004
【図４】
0005506120.tif 000005
【図５】
0005506120.tif 000006
【図６】
0005506120.tif 000007
【図７】
0005506120.tif 000008
【図８】
0005506120.tif 000009
【図９】
0005506120.tif 000010
【図１０】
0005506120.tif 000011
【図１１】
0005506120.tif 000012
【図１２】
0005506120.tif 000013
【図１３】
0005506120.tif 000014
【図１４】
0005506120.tif 000015
【図１５】
0005506120.tif 000016
【図１６】
0005506120.tif 000017
【図１７】
0005506120.tif 000018