(57)【特許請求の範囲】
【請求項１】
グラフィカルユーザーインターフェースを更新する方法であって、
コンピュータが、アプリケーションに対する要求された操作に応答して情報処理を開始し、前記要求された操作に関連する前記グラフィカルユーザーインターフェースの構成要素を特定するステップと、
前記グラフィカルユーザーインターフェースの構成要素に対する更新を二重バッファリングするステップであって、前記二重バッファリングするステップは、
コンピュータ画面の表示領域内に存在し、かつ透明度を変更できるように構成された透明レイヤーウィンドウの前記透明度を透明にするステップと、
前記透明レイヤーウィンドウに対して前記構成要素に対する更新を行うステップと、
前記構成要素に対する更新を行うステップの完了後、前記透明度を不透明にするステップと
を含む、二重バッファリングするステップと、
前記コンピュータが、前記要求された操作の完了を検知するステップと、
前記コンピュータが、前記要求された操作の完了の検知に応答して前記情報処理を終了するステップと、
前記コンピュータが、前記情報処理の終了後に、前記二重バッファリングされた更新をコンピュータ画面に提供するステップ
と
を含むことを特徴とする方法。
【請求項２】
前記特定するステップは、前記要求された操作に関連する１つ又は２つ以上のウィンドウを特定するステップを含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記情報処理の開始は、延長された量の時間又は未知の量の時間に亘って実行される前記要求された操作に応答することを特徴とする請求項１に記載の方法。
【請求項４】
前記二重バッファリングするステップは、前記グラフィカルユーザーインターフェースの構成要素に対する更新を描くための非表示画面描画バッファを供給するステップを含むことを特徴とする請求項１に記載の方法。
【請求項５】
前記コンピュータが、前記情報処理中にスプラッシュ画面を提供するステップを更に含むことを特徴とする請求項１に記載の方法。
【請求項６】
前記コンピュータが、独立したスプラッシュ画面処理を提供するステップを更に含むことを特徴とする請求項５に記載の方法。
【請求項７】
前記コンピュータが、前記情報処理中に取消オプションを提供するステップを更に含むことを特徴とする請求項１に記載の方法。
【請求項８】
前記コンピュータが、前記情報処理中に進捗表示器を提供するステップを更に含むことを特徴とする請求項１に記載の方法。
【請求項９】
格納されたコンピュータ実行可能命令を有するコンピュータ可読記憶媒体であって、前記コンピュータ実行可能命令はコンピュータによって実行されたときに、
アプリケーションに対する要求された操作に応答して情報処理を開始し、前記要求された操作に関連する前記グラフィカルユーザーインターフェースの構成要素を特定させることと、
前記グラフィカルユーザーインターフェースの構成要素に対する更新を二重バッファリングさせることであって、前記二重バッファリングするステップは、
コンピュータ画面への表示領域内に存在し、かつ表示の透明度を変更できるように構成された透明レイヤーウィンドウの前記透明度を透明にするステップと、
前記透明レイヤーウィンドウに対して前記構成要素に対する更新を行うステップと、
前記構成要素に対する更新を行うステップの完了後、前記透明度を不透明にするステップと
を含む、二重バッファリングするステップと、
前記要求された操作の完了を検知させることと、
前記要求された操作の完了の検知に応答して前記情報処理を終了させることと、
前記情報処理の終了後に、前記二重バッファリングされた更新をコンピュータ画面に提供させることと
を前記コンピュータに実行させることを特徴とするコンピュータ可読記憶媒体。
【請求項１０】
前記特定させることは、前記要求された操作に関連する１つ又は２つ以上のウィンドウを特定させることを含むことを特徴とする請求項９に記載のコンピュータ可読記憶媒体。
【請求項１１】
前記情報処理の開始は、延長された量の時間又は未知の量の時間に亘って実行される前記要求された操作に応答することを特徴とする請求項９に記載のコンピュータ可読記憶媒体。
【請求項１２】
前記二重バッファリングさせることは、前記グラフィカルユーザーインターフェースに対する更新を描くための非表示画面描画バッファを供給させることを含むことを特徴とする請求項９に記載のコンピュータ可読記憶媒体。
【請求項１３】
前記コンピュータ実行可能命令は前記コンピュータによって実行されたときに、前記コンピュータに更に、独立したスプラッシュ画面処理を提供させることを特徴とする請求項９に記載のコンピュータ可読記憶媒体。
【請求項１４】
前記コンピュータ実行可能命令は前記コンピュータによって実行されたときに、前記コンピュータに更に、前記情報処理中に取消オプションを提供させることを特徴とする請求項９に記載のコンピュータ可読記憶媒体。
【請求項１５】
前記コンピュータ実行可能命令は前記コンピュータによって実行されたときに、前記コンピュータに更に、前記情報処理中に進捗表示器を提供させることを特徴とする請求項９に記載のコンピュータ可読記憶媒体。
【請求項１６】
グラフィカルユーザーインターフェースを更新するシステムであって、前記システムは、
処理ユニットと、
前記処理ユニットに、延長された量の時間又は未知の量の時間を要する、アプリケーションに対する要求された操作に応答して情報処理を開始させ、前記要求された操作に関連する前記グラフィカルユーザーインターフェースの構成要素を特定させ、前記グラフィカルユーザーインターフェースの構成要素に対する更新を二重バッファリングさせ、前記要求された操作の完了の検知に応答して前記情報処理を終了させ、前記情報処理の終了後に前記非表示画面描画バッファに二重バッファリングされた更新をコンピュータ画面に提供させるよう操作可能な１つ又は２以上のモジュールであって、前記二重バッファリングさせることは、
コンピュータ画面への表示領域内に存在し、かつ表示の透明度を変更できるように構成された透明レイヤーウィンドウの前記透明度を透明にさせることと、
前記透明レイヤーウィンドウに対して前記構成要素に対する更新を行わせることと、
前記構成要素に対する更新を行わせることの完了後、前記透明度を不透明にさせることと
を含む、モジュールと
を含むことを特徴とするシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、グラフィカルユーザーインターフェース描画処理のための情報処理された二重バッファリングに関する。
【背景技術】
【０００２】
典型的なグラフィカルソフトウェアアプリケーションは、ＵＩ（Ｕｓｅｒ Ｉｎｔｅｒｆａｃｅ）又はＧＵＩ（Ｇｒａｐｈｉｃａｌ Ｕｓｅｒ Ｉｎｔｅｒｆａｃｅ）を有する。そのようなソフトウェアアプリケーションの例としては、マイクロソフト社のマイクロソフトウィンドウズ（登録商標）オペレーティングシステムに含まれるものや当該オペレーティングシステムと連携するものがある。より具体的には、そのようなソフトウェアアプリケーションの例としては、マイクロソフト社のマイクロソフトオフィス（登録商標）オフィスオートメーションソフトウェア、マイクロソフト社のアウトルック（登録商標）個人情報管理ソフトウェア、及びマイクロソフト社のマイクロソフトワード（登録商標）文書処理ソフトウェアがある。
【０００３】
グラフィカルソフトウェアアプリケーションのＧＵＩは、通常、複数の要素から構成される。これらの要素は、様々な制御、表示、メニュー、ツールバー、指示器、多数のその他のＵＩ要素を含む。与えられたアプリケーションの全体の表示領域は、しばしばアプリケーションウィンドウと称され、様々なＵＩ要素は、それ自体がアプリケーション表示内のウィンドウとして考えられる。ソフトウェアの実行レベルにおいては、これらの様々なＵＩ要素すなわちウィンドウは、ウィンドウ又はウィンドウハンドルへのポインターと考えられ得る。あるアプリケーションの全てのＵＩ要素を表示するために、アプリケーション表示内の全ての関連ウィンドウが個別的に描かれ、描画され、又は着色される。これは、「着色」メッセージ又は信号をそれぞれのウィンドウに送信すること、又は同様にアプリケーションの表示領域内のそれぞれのウィンドウに関連付けられる１つのウィンドウの着色手段を呼び出すことにより一般的に行われる。
【０００４】
アプリケーションが立ち上げられ、構成ウィンドウの再着色を含む操作が実行されたとき、個々のウィンドウの再着色が様々な遅延をもって見かけ上、不規則になされるので、ユーザーはアプリケーション描画が部分的又は不完全であると感じる。このような事が起こる場合の例としては、ファイル又はリソースがネットワークを通じてロードされ、不確定量の時間がかかる場合が挙げられる。他の例としては、表示要素についての多数の再計算が行われる最初のアプリケーションの立ち上げ又はアプリケーションビューの切り替えの場合が挙げられる。
【０００５】
見かけ上の不規則な遅延及びＵＩ要素の更新の不規則な順序は、ユーザーの気を散らせ又は困惑させる。大きい遅延が発生した場合、例えばネットワーク負荷に関する遅延が生じた場合、ユーザーは長時間に亘って部分的に描かれたウィンドウと向き合うことになるだろう。これは、不具合が生じたのではないかとユーザーを心配させる原因となる。かかる心配は、明瞭で安全な機構を欠くことによって、ユーザーに対して操作を中断させ得る。
【０００６】
本明細書は、これらの考察及びここに開示されたその他の内容に関するものである。
【発明の概要】
【０００７】
本明細書には、グラフィカルインターフェースにおける描画又は再着色の間におけるユーザー体験を改善する技術が開示される。特にグラフィカルインターフェース描画が二重バッファされることができる情報処理の間における情報処理に関するユーザーインターフェースを確立するための技術が開示される。延長された又は遅延した画面更新が、その完了まで非表示画面又は一時的な不可視画面のレイヤーにより実行されることができる。更新が完了すると、更新された画面がすぐに描かれることができる。これは、円滑且つ即応性の高い改善されたユーザー体験をもたらし得る。グラフィカル画面更新は、描画、着色、再着色、描くことなど様々なことを意味する。
【０００８】
本願明細書に開示された本願発明の一形態によれば、グラフィカルユーザーインターフェースにおける情報処理された着色又は再着色は、ユーザー行為（アクション、操作）に応答して開始されることができる。特定のユーザー行為によって延長された量の時間又は不確定な量の時間が生じた場合に情報処理が確立されることができる。当該情報処理の間、ユーザーインターフェース描画処理は、要求された行為が完了するまで二重バッファされ得る。行為の完了は、様々な必要な画面着色処理が終了したことを確認しているアプリケーション内で、ＵＩ状態の更新に結び付けられ得る。要求された行為が完了すると、二重バッファされた画面更新は、ほぼ瞬時にユーザーの前に現れるようにするためにディスプレイ画面に一斉に与えられることができる。この情報処理されたバッファリングの完了は、要求された行為の完了に応答して自動的に生じることができる。
【０００９】
本願明細書に開示された本願発明の他の一形態によれば、画面更新の二重バッファリングは、アプリケーションに関連付けられた複数のＧＵＩ要素すなわちウィンドウに亘って実行され得る。単一の構成要素ウィンドウすなわちＵＩ要素は、１つのバッファに二重バッファされ得る。また、複数のＵＩ要素は、個々にバッファされ得る。しかしながら、１つのアプリケーションに関連する複数のＵＩ要素を描画のための１つの共通の二重バッファに二重バッファリングすることによって、追加的な効果及び性能が提供され得る。
【００１０】
本願明細書に開示された本願発明の他の一形態によれば、二重バッファリングは、画面レイヤーを完全に透明（ｔｒａｎｓｐａｒｅｎｃｙ）にすることによって支援されることができる。非表示画面バッファ及び透明レイヤー（ｔｒａｎｓｐａｒｅｎｔ  ｌａｙｅｒ）のうちのいずれか一方又はこれらの組合せが、ＧＵＩディスプレイの二重バッファリングを提供するために用いられ得る。
【００１１】
本願明細書に開示された本願発明の他の一形態によれば、情報処理を開始した要求された行為の進捗又は状態がユーザーにフィードバックされることができる。例えば、ネットワークを介して文書を開くときには長時間を要する場合がある。この間、進捗情報がユーザーに提供されることができる。一方、それらの開かれたファイルの描画は、ネットワーク動作によって遅延する。たとえ現実のアプリケーション表示が現時点において非表示画面で又は透明レイヤー上に二重バッファされているとしても、その進捗情報はスプラッシュ画面上に表示されることができる。スプラッシュ画面は、動作を中断するための安全な方法をユーザーに提供するための取り消しＵＩを含み得る。例えば、もし、ユーザーが動作の完了まで待ち続けることを望んでいない場合や、ユーザーが情報処理の開始動作にエラーが発生したと気付いた場合に、取り消しＵＩが用いられる。スプラッシュ画面、進捗表示器、取り消しＵＩ、及びこれらに関連する動作は、それ自身が情報処理された動作とは異なる個別の処理すなわち他の併行の動作において実行され得る。たとえ情報処理された動作が実行中であっても、そのような個別の処理は、スプラッシュ画面が顕著に反応することを支援し得る。
【００１２】
上記した本願の構成は、コンピュータ制御装置、コンピュータプロセス、コンピューティングシステム、又はコンピュータによって読み出し可能な媒体のような工業製品として実施し得る。これら及び様々な他の構成は、以下の発明の詳細な説明及び添付図面から明らかにされる。
【００１３】
この発明の概要は、選択した概念を簡略化された形式で説明するためのものであり、その概念は以下の発明の詳細な説明に詳細に記載される。この発明の概要は、特許請求の範囲に記載された発明の重要な構成・特徴又は本質的な構成・特徴を特定することを意図したものではない。また、この発明の概要は、請求の範囲に記載された発明の範囲を限定するために用いられることを意図したものでもない。更に、特許請求の範囲に記載された発明は、本願明細書中において示されたいくつかの又は全ての問題点を解決する実施形態に限定されない。
【図面の簡単な説明】
【００１４】
【図１】本願明細書に開示された一実施例形態による、スプラッシュ画面表示と共にグラフィカルユーザーインターフェースを二重表示する仕組み（メカニズム）を示す機能ブロック図である。
【図２】本願明細書に開示された一実施例形態による、グラフィカルユーザーインターフェースの描画の改善のための工程の形態を示す論理フロー図である。
【図３】本願明細書に開示された一実施例形態による、グラフィカルユーザーインターフェース描画がなされている間の情報処理された二重バッファリングのための工程の形態を示す論理フロー図である。
【図４】本願明細書に開示された一実施例形態による、グラフィカルユーザーインターフェースにおいてスプラッシュ画面を支援するための工程の形態を示す論理フロー図である。
【図５】本願明細書に開示された一実施例形態の実装を可能とするコンピューティングシステムのためのコンピュータハードウェア及びソフトウェアの構成の実施例を示すコンピュータ構成図である。
【発明を実施するための形態】
【００１５】
以下の詳細な説明は、ユーザーインターフェースに関する情報処理の確立のための技術に関し、グラフィカルユーザーインターフェース描画が二重バッファされることができる情報処理の間の技術に関する。本願明細書に開示される技術及び概念（技術思想）の利用を通じて、更新完了まで非表示画面又は一時的に不可視の画面レイヤー上で、延長され又は遅延した画面更新がなされる。更新が完了したら、単一の動作として、更新画面が視認できる画面に表示され得る。これにより、ユーザーは、応答性及び円滑さが向上したことを感じられ得る。
【００１６】
本願明細書に開示されている発明は、コンピュータシステム上のオペレーティングシステム及びアプリケーションプログラムの実行と連携して実行するプログラムモジュールの一般的状況において示されているが、当業者であれば、他の種類のプログラムモジュールと連携して実行され得る他の実施形態を理解できる。一般に、プログラムモジュールは、ルーチン、プログラム、構成要素、データ構造、及び特定の処理の実行又は特定の論理的なデータタイプの実装を行うその他の種類の構造を含む。そしてまた、本願明細書に開示されている発明が、手で持てる大きさのデバイス、マルチプロセッサデバイス、マイクロプロセッサベースの又はプログラム可能な消費者向け電気製品、ミニコンピュータ、メインフレームコンピュータなどの他のコンピュータシステム構成と共に実施され得ることを、当業者であれば理解できる。
【００１７】
以下の詳細な説明においては、出願書類の一部である添付図面を参照する。図面は、特定の実施形態又は実施例を説明するために表わされたものである。図面を参照すると、いくつかの図面を通じて同じような数字が同じような要素を示している。グラフィカルユーザーインターフェース描画が二重バッファされる情報処理の間における、ユーザーインターフェースに関する情報処理を確立するためのコンピューティングのシステム及び手順（方法）の形態が図面に記載されている。
【００１８】
図１には、本願明細書に開示された一実施例形態による、スプラッシュ画像１６０の表示と共にグラフィカルユーザーインターフェースを二重バッファリングするためのシステム１００についての機能ブロックダイアグラムが図示されている。特に、ソフトウェアアプリケーション１１０と連携するグラフィカルユーザーインターフェースが、コンピュータ画面１９０に示されることができる。ユーザーによって開始された行為が延長された遅延又は不確定量の時間を含み得る場合には、ユーザーインターフェースの部分の再着色と他の部分の再着色と間において遅延が生じ得る。これによって、ユーザーは、表示の部分的な間延び、急な描画、一様でない表示が生じたと感じ得る。延長された遅延は、アプリケーションを大量にロードしたとき、リソースがネットワークを介してロードされたとき、画面切り替えにつき表示要素の再計算を要するとき、その他の同様の場合に生じ得る。
【００１９】
情報処理された二重バッファリングは、より円滑なグラフィカルユーザーインターフェースの実現を支援できる。非表示画面描画バッファ１３０が、二重バッファリングマネージャー１２０によって提供されることができる。アプリケーション１１０と連携する、制御、メニュー、ツールバー、ウィンドウ、及びその他のユーザーインターフェース要素を表わす様々な構成ウィンドウが、描画バッファ１３０に描かれ又は更新される。これは、潜在的に、揺れた表示、不完全な表示、又は急な表示の更新がユーザーに見えないようにするためである。一旦、ＵＩ更新が完了すると、描画バッファ１３０の内容が、単一の処理でコンピュータ画面１９０に出力される。そうすることにより、画面更新をほぼ瞬時に行うことができる。更新は、二重バッファマネージャー１２０によって制御され得る。二重バッファマネージャー１２０は、要求に応答して描画バッファ１３０内の更新を画面１９０に提供することができる。二重バッファマネージャー１３０は、アプリケーションソフトウェアの一部であっても良いし、オペレーティングシステム、グラフィックスサブシステム、又は画面マネージャーによって支援されても良い。
【００２０】
二重バッファリングのための他のメカニズムとして、透明レイヤードウィンドウ１４０を用いることができる。非表示画面描画バッファ１３０への更新を描画するために、アプリケーションの構成を変更することができないときには、透明レイヤードウィンドウ１４０を手段として用いることができる。利用可能なソースコードがないとき、アクティブＸ（登録商標）制御のようなライブラリや構成要素が外部から供給されるとき、又は、時間、予算又は従来規格との関係がコード変更を妨げるときに、アプリケーション構成は変更を妨げ得る。
【００２１】
ＧＵＩの構成要素は、そのグラフィック更新を描画できる透明レイヤードウィンドウ１４０を与えられることができる。そのレイヤードウィンドウは、完全な透明に構成されたグラフィカルレイヤーを用いることができる。潜在的に、揺れた画面更新、急な画面更新、又は遅延した画面更新がユーザーに見えないようにするためである。画面更新が完了し、ＵＩの状態が更新されたときには、透明なレイヤーが完全に不透明なレイヤーに変化されることができる。レイヤードウィンドウ１４０は、単一の動作でユーザーに見えるようにされ、更新がほぼ瞬時になされる。
【００２２】
非表示画面描画バッファ１３０及びレイヤードウィンドウ１４０のうちのいずれか一方、又はこれらの組み合わせが、アプリケーションソフトウェア１１０と連携するＧＵＩの二重バッファを提供し得る。一旦、更新が完了すると、二重バッファマネージャーによって格納された画像ビット、又は描画バッファ１３０に関連する画像ビットが、レイヤードウィンドウ１４０に押し出され得る。透明な表示が完全に不透明な表示にされることができ、様々なＵＩ更新が単一の操作としてユーザーに対して一斉に可視化されることができる。
【００２３】
ユーザーインターフェースに関する情報処理が、二重バッファリングのために共に集められ得る一組のＵＩ更新を制御することに用いられ得る。与えられた情報処理内の一組みのＵＩ更新は、一般的に、アプリケーションを最初に開くこと、ネットワークを介してファイルをロードすること、アプリケーション内でＵＩ表示を変更すること、又は他のそのような操作などの遅延を招来し得る特定のユーザー行為に関連付けられる。情報処理がなされている間、ユーザーインターフェース描画は、要求された行為が完了するまで二重バッファされる。
【００２４】
もし、延長された情報処理時間又は不明な情報処理時間が生じた場合には、スプラッシュ画面１６０がユーザーに対して現れる。ＧＵＩは、非表示画面描画バッファ１３０又はレイヤードウィンドウ１４０のような二重バッファリング機構に対して更新していても良いので、ユーザーは、スプラッシュ画像１６０の表示がないのと同じように画面更新無しの状態で待たされ得る。スプラッシュ画像１６０は、スプラッシュ画像処理１５０によって支援され得る。スプラッシュ画像処理１５０は、アプリケーションソフトウェア１１０の一部である。スプラッシュ画像処理１５０は、情報処理されたユーザー行為に関するアプリケーションソフトウェア１１０の構成要素とは別の独立した処理、独立した工程、又は独立した他の並列化された機構として実行され得る。スプラッシュ画面１６０に関する処理をスプラッシュ画像処理１５０に対して割り当てることにより、たとえ情報処理された動作が実行中であり潜在的に遅延していたとしても、スプラッシュ画面１６０を更新し、応答型及び対話型の形式において扱うことができるようになる。
【００２５】
スプラッシュ画面１６０は、スプラッシュ画像処理１５０によって支援されて、１つ又は２以上の進捗表示器をユーザーに与える。進捗表示器は、実行中の動作についての情報、及び関連遅延がおおよそどの程度となるかについての情報をユーザーに与えることができる。進捗表示器の例としては、実行中の動作についての進捗を百分率で示す進捗バー１７０がある。
【００２６】
スプラッシュ画面１６０は、スプラッシュ画像処理１５０によって支援されて、取り消しＵＩをユーザーに提供することができる。例えば、取り消しボタン１８０は、スプラッシュ画面１６０上に配置され得る。そのような取消機構は、情報処理された動作を中断させる安全な方法をユーザーに提供することができる。例えば、ユーザーが、要求された動作が完了するまで待つことを望んでいない場合に取消機構が用いられ得る。同様に、ユーザーが、情報処理の開始動作にエラーが生じたと考えた場合に取消機構が用いられ得る。このような状況下において、取り消しＵＩは、スプラッシュ画面１６０上に提供され、ユーザーによって操作されることができる。
【００２７】
図２には、本願明細書に開示された実施例についての追加的な詳細が示されている。当該実施例は、本願明細書に開示された一実施例の形態によるスプラッシュ画像表示を提供する間におけるグラフィカルユーザーインターフェースを二重バッファするものである。特に、図２は、グラフィカルユーザーインターフェース描画を改善するためのルーチン２００を示すフロー図である。
【００２８】
本願明細書に記述された論理的な動作は、（１）コンピュータシステム上で動作している一連のコンピュータ実装動作又は一連のプログラムモジュールとして、及び／又は（２）相互接続された装置論理回路又はコンピューティングシステム内の回路モジュールとして理解されるべきである。当該実装は、処理性能及びコンピュータシステムについての他の要求に応答して選択される。したがって、本願明細書に記述された論理的な動作は、状態動作、構造デバイス、実行又はモジュールとして様々に表される。これらの動作、構造デバイス、実行及びモジュールは、ソフトウェア内に実装され、ファームウェア内に実装され、特定用途のデジタル論理内に実装され、及びそれらの組み合わせによって実装され得る。また、本願の図面及び明細書の記載により示された動作よりも多くの動作又はより少ない動作が実行され得る。これらの動作は、順次に、並列に、又は本願明細書に記載された順とは異なる順に実行され得る。
【００２９】
ルーチン２００は、動作２１０において開始される。動作２１０においては、ユーザーによって要求された行為が検知されることができる。判断動作２２０は、要求された動作を情報処理することを決定し得る。一般に、ある行為が情報処理され、その行為は、延長された遅延又は不明確な遅延を招来し得る。例えば、アプリケーションの起動について情報処理される。具体的には、アプリケーションの起動中に文書が開かれているときである。ファイルをロードする行為又はネットワークを介してリソースにアクセスする行為が、アプリケーション表示の変更を含む行為と同様に、情報処理され得る行為の追加的な例として挙げられる。非常に早く完了する行為の場合には、必ずしも情報処理される必要がないが、そのような行為は、深刻な影響なしで情報処理され得る。
【００３０】
動作２２０が、ある行為が情報処理されるべきでないと判断した場合には、ルーチン２００は、動作２３０に移行する。動作２３０においては、情報処理された二重バッファＧＵＩを用いることなく、要求された動作が実行される。一方、動作２２０が、ある行為が情報処理されるべきであると判断した場合には、ルーチン２００は、並行する２つの動作に移行する。これらの２つの動作は、情報処理された二重バッファされたＧＵＩを用いて要求された動作を実行するためのルーチン３００、及びスプラッシュ画面処理を立ち上げるルーチン４００として表わされる。ルーチン３００及びルーチン４００に関する追加的な詳細は、図３及び図４を参照して以下に述べられる。
【００３１】
ルーチン３００は、スプラッシュ画面１６０に関連する例えば進捗バー１７０のような更新状態表示器のためにルーチン４００に進捗信号を供給することができる。また、ルーチン３００は、要求された行為に関する情報処理の完了の通知のために完了信号をルーチン４００に進捗信号を供給することができる。ルーチン２００は、ルーチン３００から戻ってきた後、又はルーチン２００によって選択された経路上の動作２３０の後に終了することができる。
【００３２】
図３には、本願明細書に開示された実施例についての追加的な詳細が示されている。当該実施例は、本願明細書に開示された一実施例の形態によるスプラッシュ画像表示を提供する間におけるグラフィカルユーザーインターフェースを二重バッファするものである。特に、図３は、グラフィカルユーザーインターフェース描画を実行する間における情報処理された二重バッファリングのための工程３００を示すフロー図である。
【００３３】
ルーチン３００は、動作３１０において開始される。動作３１０においては、情報処理が開始される。ユーザーインターフェースに関する情報処理は、二重バッファリングにおいて共に集められ得る一組みのＵＩ更新を制御するために用いられ得る。情報処理の開始は、二重バッファされる一組みのＵＩ更新の開始を示す。
【００３４】
動作３１５においては、描画バッファ１３０が提供されることができる。通常、描画バッファ１３０は、ＵＩ更新された画面を可視化せずに描くための非表示画面バッファとして提供される。描画バッファ１３０は、二重バッファマネージャー１２０によって提供され得る。動作３２０においては、透明レイヤーウィンドウ１４０が提供され得る。透明レイヤーウィンドウ１４０もまた、二重バッファマネージャー１２０によって提供され得る。透明レイヤーウィンドウ１４０は、ユーザーに見えないように描かれることができるという点で、非表示画面描画バッファ１３０に似ている。しかしながら、透明レイヤーウィンドウ１４０は、その透明表示領域内に実際に存在し得る。透明レイヤーウィンドウ１４０は、不可視にするために完全に透明にされている。
【００３５】
動作３２２においては、ウィンドウは、要求された行為に関連するものとして特定され得る。様々なウィンドウが、要求された行為の実行中にアプリケーションソフトウェア１１０によって使用されるＧＵＩの構成要素に対応し得る。これらのＧＵＩ構成要素ウィンドウは、ＧＵＩを構成する、制御、メニュー、表示、ツールバー又はその他のウィンドウを含み得る。
【００３６】
動作３２５においては、要求された動作が実行されている間に、描画バッファ１３０への着色が支援されることができる。特に、動作３２２において特定されるウィンドウによる着色のために、描画バッファ１３０を用いることができる。二重バッファされた情報処理が実行されている間、実行中の動作（例えば、アプリケーションの立ち上げ、表示の変更、ファイルへのアクセス、ネットワークリソースへのアクセスなど）に関連するＵＩ更新は、描画バッファ１３０に非表示画面として着色されることができ、ＵＩ更新はユーザーには見えない。複数のＵＩ構成要素すなわちウィンドウは、共通の描画バッファ１３０によって二重バッファされることができる。
【００３７】
動作３３０においては、透明レイヤーウィンドウ１４０への着色が適切に支援されることができる。非表示画面描画バッファ１３０への更新を描画するためにＵＩコードを変更することができないときに、透明レイヤーウィンドウ１４０への二重バッファＵＩ更新が適している。アクティブＸ（登録商標）制御のようにライブラリ又は構成要素が外部から供給されたとき、又はコード変更を妨げる時間、予算又は従来規格との関係があるときに、アプリケーション構成要素すなわち動作３２２において特定されたウィンドウが変更を妨げ得る。非表示画面描画バッファ１３０を用いる代わりに、ＵＩは、完全に透明に構成された透明ウィンドウレイヤー１４０への更新を行うことができる。
【００３８】
動作３３５においては、進捗情報がスプラッシュ画面処理４００に供給されることができる。そのような進捗情報は、スプラッシュ画面１６０上に進捗バー１７０のような進捗表示器の表示を支援することができる。これらの状態表示器は、情報処理の実行中に、情報処理の状況に関する情報をユーザーに提供することができる。
【００３９】
動作３４０においては、要求された行為の完了が検知されることができる。例えば、ファイルが開かれている場合には、ファイルを開く動作の完了が検知されることができる。そのような検知は、部分的に、自動的に終了しつつある情報処理を支援することができる。動作３４５においては、ユーザーインターフェースの状態が静止状態であることが検知されることができる。ＵＩ更新が完了したことを検知することは、情報処理された行為の完了をアプリケーション１１０内でＵＩ状態更新に結びつけることを支援することができる。情報処理の自動的な終了は、文書を描画する処理、ボタンを利用可能とする処理、ボタンを利用不可能とする処理などの様々な必要な再描画処理の完了を判断することによって、部分的に、支援されることができる。
【００４０】
動作３５０においては、情報処理の完了がスプラッシュ画面処理４００に通知されることができる。スプラッシュ画面処理４００に対して情報処理が完了し現在終了しつつあることを通知することにより、スプラッシュ画面処理４００の自動的な完了を支援することができ、且つスプラッシュ画面１６０の表示を停止することができる。
【００４１】
動作３５５においては、情報処理の間に描画バッファについてなされた更新内容が、コンピュータ画面１９０に供給されることができる。これは、二重バッファリングマネージャー１２０によって支援されることができる。透明ウィンドウレイヤー１４０が用いられる場合には、描画バッファ１３０のビットの供給は、描画バッファ１３０から透明レイヤードウィンドウ１４０への更新を描くことを含むことができる。
【００４２】
動作３６０においては、透明レイヤードウィンドウ１４０は、完全に不透明な状態に移行されることができる。換言すれば、レイヤードウィンドウの透明さをなくすることができる。この単一の操作において、情報処理に関連して収集されたＵＩの更新により、更新をユーザーに対してほぼ瞬時に見せることができる。したがって、より円滑で混乱の少ないユーザーインターフェースの提供が支援され得る。ルーチン３００は、動作３６０の後にルーチン２００に戻ることができる。
【００４３】
図４には、本願明細書に開示された実施例についての追加的な詳細が示されている。当該実施例は、本願明細書に開示された一実施例の形態によるスプラッシュ画像表示を提供する間におけるグラフィカルユーザーインターフェースを二重バッファするものである。特に、図４は、グラフィカルユーザーインターフェースにおけるスプラッシュ画面を支援するための工程４００を示すフロー図である。
【００４４】
ルーチン４００は、動作４１０において開始される。動作４１０においては、スプラッシュ画面処理１５０が例示されることができる。動作４２０においては、スプラッシュ画面処理１５０が、情報処理されたユーザー行為が進行している間に、スプラッシュ画面１６０の表示を支援することができる。スプラッシュ画面処理１５０は、アプリケーションソフトウェア１１０の一部となり得るが、独立した処理、独立した工程、又は独立した他の並列化された機構において、情報処理されたユーザー行為に関連するアプリケーションソフトウェア１１０のモジュールから実行され得る。スプラッシュ画面１６０に関する動作をスプラッシュ画面処理１５０に対してこのように割り当てることにより、たとえ情報処理された動作が実行中であり、潜在的な遅延が生じていたとしても、スプラッシュ画面１６０を更新し、即応性のある形式及び対話型の形式において扱うことができる。
【００４５】
動作４３０においては、スプラッシュ画面１６０は、スプラッシュ画面処理１５０によって支援されて、１つ又は２以上の進捗表示器をユーザーに提供できる。進捗表示器は、実行中の動作及びこれに関連する遅延がおおよそどの程度であるかについての情報をユーザーに提供することができる。進捗表示器の一例として、実行中の動作に関する進捗の百分率を示し得る進捗バー１７０が挙げられる。
【００４６】
動作４４０においては、スプラッシュ画面１６０は、スプラッシュ画面処理１５０によって支援されて、取り消しＵＩをユーザーに提供できる。例えば、取り消しボタン１８０が、スプラッシュ画面１６０上に設けられている。このような取り消し機構は、情報処理された動作を中断する安全な方法をユーザーに提供する。例えば、ユーザーが、要求された動作が完了するまで待つことを望んでいないときに取り消し機構が用いられる。同様に、ユーザーが、情報処理の開始動作にエラーが発生したと考えた場合に取り消し機構が用いられる。このような状況下において、取り消しＵＩは、スプラッシュ画面１６０上に設けられており、ユーザーによって操作されることができる。取り消しＵＩについてのユーザー操作は、動作４５０によって検知されることができる。検知された場合には、動作４６０において、取り消しがアプリケーションに通知されることができる。ユーザーによる取り消し要求がアプリケーションに通知されることにより、要求された動作をアプリケーションが円滑に終わらせることを支援できる。動作４６０の後、スプラッシュ画面処理１５０が終了することができ、スプラッシュ画面１６０の表示を終えることができる。
【００４７】
一方、取り消しの要求がなされない場合、動作４７０は、ルーチン３００からの完了信号を受信できる。ルーチン３００によって支援されて情報処理された動作が完了した場合には、ルーチン４００は、図３に図示されている動作３５０に関して既に述べたように通知されることができる。動作４７０におけるこの通知の検出によって、スプラッシュ画面処理１５０を終了すること、及びこれに関連してスプラッシュ画面１６０を閉じることを支援できる。
【００４８】
一方、動作４７０において完了信号が検知されない場合には、動作４８０は、図３に図示されている動作３３５に関して既に述べたようにルーチン３００から進捗信号を受信することができる。動作４９０においては、動作４８０においてルーチン４００に通知された進捗情報は、動作４３０において提供されたスプラッシュ画面１６０上の進捗表示器を更新するために用いられる。動作４９０の後、ルーチン４００は、動作４５０に戻ることができ、情報処理が取り消されるか完了するまで上記の処理を継続することができる。
【００４９】
図５には、スプラッシュ画面表示が提供されている間にグラフィカルユーザーインターフェースを二重バッファリングするための本願明細書に開示されたソフトウェア構成要素を実行できる例示的なコンピュータ構成５が示されている。図５に示されるコンピュータ構成は、従来のデスクトップ、ラップトップ、又はサーバーコンピュータを例示したものであり、本願明細書に開示されたソフトウェア構成要素のいずれかの形態を実行することに用いられ得る。しかしながら、開示されたソフトウェア構成要素は、モバイル装置、テレビ、セットトップボックス、キオスク、乗り物の情報システム、モバイル電話、備え付けのシステムなどのその他の典型的なコンピューティング環境において実行されることができる。
【００５０】
図５に図示されたコンピュータ構成は、中央処理ユニット１０（ＣＰＵ）と、ランダムアクセスメモリ１４（ＲＡＭ）及びリードオンリーメモリ１６（ＲＯＭ）を含むシステムメモリ１３と、システムメモリ１３をＣＰＵ１０に連結することができるシステムバス１１とを含むことができる。コンピュータ５内の要素間における情報の伝達を助ける基本ルーチンを含む基本入出力システムが、例えば開始処理の間、ＲＯＭ１６に格納されることができる。コンピュータ５は、アプリケーションソフトウェア１１０に関連する例えばオペレーティングシステム１８、ソフトウェア、データ、及び様々なプログラムモジュールを格納するための大容量記憶装置１５を更に含むことができる。アプリケーションソフトウェア１１０は、本願明細書に記載されたソフトウェア構成要素を実行することができる。
【００５１】
大容量記憶装置１５は、バス１１に接続された大容量記憶装置制御部（図示せず）を介してＣＰＵ１０に接続されることができる。大容量記憶装置１５及びこれに関連するコンピュータ読み出し可能な媒体は、コンピュータ５のために不揮発性の記憶装置を提供することができる。本願明細書に含まれるコンピュータ読み出し可能な媒体の記載は、ハードディスク又はＣＤ−ＲＯＭドライブのような大容量記憶装置を示しているが、当業者であれば、コンピュータ読み出し可能な媒体をコンピュータ５によってアクセスされることができる何らかの利用可能なコンピュータ記憶媒体とすることができることを理解できる。
【００５２】
例示であり、限定ではないが、コンピュータ読み出し可能な媒体は、例えばコンピュータ読み出し可能な命令、データ構造、プログラムモジュール又はその他のデータのような情報の格納のための何らかの方法又は技術において実装された揮発性及び不揮発性の媒体や消去可能な及び消去不可能な媒体を含み得る。例えば、コンピュータ読み出し可能な媒体は、限定ではないが、ＲＡＭ、ＲＯＭ、ＥＰＲＯＭ，ＥＥＰＲＯＭ，フラッシュメモリ又はその他の個体メモリ技術、ＣＤ−ＲＯＭ、デジタルヴァーサタイルディスク（ＤＶＤ）、ＨＤ−ＤＶＤ、ＢＬＵ−ＲＡＹ又はその他の光記憶媒体、磁気カセット、磁気テープ、磁気ディスク記憶媒体又はその他の時期記憶装置、又は所望の情報を格納するために用いられることができ且つコンピュータ５によってアクセスされることができる何らかの他の記憶媒体を含むことができる。
【００５３】
様々な実施例によれば、コンピュータ５は、ネットワーク１７のようなネットワークを介してコンピュータを遠隔操作するための論理的な接続を用いるネットワーク環境において動作し得る。コンピュータ５は、バス１１に接続されたネットワークインターフェースユニット１９を介してネットワーク１７に接続され得る。ネットワークインターフェースユニット１９は、他の種類のネットワークに接続し、コンピュータシステムを遠隔操作するために用いられ得る。コンピュータ５は、キーボード、マウス、又は電気ペン型入力機器（図示せず）を含む他のいくつかの装置からの入力を受信して実行するための入出力制御部１２を含み得る。同様に、入出力制御部１２は、コンピュータ画面１９０、プリンタ、又は他の種類の出力装置（図示せず）に出力を供給し得る。コンピュータ画面１９０は、グラフィックスアダプタ又はグラフィックスプロセシングユニットによってバス１１に択一的に接続され得る。
【００５４】
上記に簡潔に述べたように、いくつかのプログラムモジュール及びデータファイルは、コンピュータ５の大容量記憶装置１５及びＲＡＭ１４に格納され得る。プログラムモジュール及びデータファイルは、ネットワークに接続されたデスクトップ、ラップトップ、サーバーコンピュータ、又は他のコンピューティング環境の動作を制御するための適切なオペレーティングシステム１８を含む。大容量記憶装置１５、ＲＯＭ１６及びＲＡＭ１４は、１つ又は２つ以上のプログラムモジュールを格納し得る。特に、大容量記憶装置１５、ＲＯＭ１６及びＲＡＭ１４は、ＣＰＵ１０による実行のためのアプリケーションソフトウェア１１０を格納し得る。アプリケーションソフトウェア１１０は、図１−４に関連して詳細に説明された工程を実装するためにソフトウェア構成要素を含むことができる。大容量記憶装置１５、ＲＯＭ１６及びＲＡＭ１４は、他の種類のプログラムモジュールを格納することができる。
【００５５】
上述の通り、スプラッシュ画面表示を供給している間におけるグラフィカルユーザーインターフェースの情報処理された二重バッファリングのための技術が本願明細書に開示されている。本願明細書に記載されている構成は、コンピュータの構造的構成、方法論的な動作、コンピュータ読み出し可能な媒体に特有の用語で記述されているが、添付された特許請求の範囲の記載にされた発明は、本願明細書に開示されている特定の構成、動作又は媒体には必ずしも限定されない。むしろ、特定の構成、動作又は媒体は、特許請求の範囲の記載にされた発明を実装する実施形態として開示されている。
【００５６】
上記に記載されている構成は、図示によってのみ提供され、制限として解釈されるべきではない。図示され記述された例示の実施例及び応用例に従った構成ではなく、本願発明の趣旨及び範囲から逸脱しない限りにおいて、様々な変形及び変更が、本願明細書に記載されている構成についてなされ得る。本願発明は、後述の特許請求の範囲に記載されている。
【図１】
0005384626.tif 000002
【図２】
0005384626.tif 000003
【図３】
0005384626.tif 000004
【図４】
0005384626.tif 000005
【図５】
0005384626.tif 000006