(57)【特許請求の範囲】
【請求項１】
第１のウィンドウに描画する第１の描画データを入力するために用いられる入力手段の種類に基づいて、前記第１のウィンドウに描画される第１の描画データの属性を判断する判断手段と、
前記第１のウィンドウの下位レイヤに表示される第２のウィンドウに描画される第２の描画データの属性と前記第１の描画データの属性が異なる場合には前記第１のウィンドウと前記第２のウィンドウとが重複する領域である重複領域において前記第２の描画データを前記第１のウィンドウに透過して表示させ、前記第１の描画データの属性と前記第２の描画データの属性が同じである場合には前記重複領域において前記第２の描画データが表示されないようにし、又は、前記第１の描画データの属性と前記第２の描画データの属性が異なる場合よりも前記第１のウィンドウに透過されにくくして前記第２の描画データを表示させる表示制御手段とを有することを特徴とする表示制御装置。
【請求項２】
前記判断手段は、前記入力手段の種類が文字入力を行う入力デバイスである場合は前記第１の描画データの属性を文字データと判断し、前記入力手段の種類が文字入力を行う入力デバイス以外の入力デバイスである場合は前記第１の描画データの属性を図形データと判断することを特徴とする請求項１に記載の表示制御装置。
【請求項３】
判断手段が、第１のウィンドウに描画する第１の描画データを入力するために用いられる入力手段の種類に基づいて、第１のウィンドウに描画される第１の描画データの属性を判断する判断ステップと、
表示制御手段が、前記第１のウィンドウの下位レイヤに表示される第２のウィンドウに描画される第２の描画データの属性と前記第１の描画データの属性が異なる場合には前記第１のウィンドウと前記第２のウィンドウとが重複する領域である重複領域において前記第２の描画データを前記第１のウィンドウに透過して表示させ、前記第１の描画データの属性と前記第２の描画データの属性が同じである場合には前記重複領域において前記第２の描画データが表示されないようにし、又は、前記第１の描画データの属性と前記第２の描画データの属性が異なる場合よりも前記第１のウィンドウに透過されにくくして前記第２の描画データを表示させる表示制御ステップとを有することを特徴とする表示制御方法。
【請求項４】
コンピュータに、
第１のウィンドウに描画する第１の描画データを入力するために用いられる入力手段の種類に基づいて、第１のウィンドウに描画される第１の描画データの属性を判断する判断手順と、
前記第１のウィンドウの下位レイヤに表示される第２のウィンドウに描画される第２の描画データの属性が異なる場合には前記第１のウィンドウと前記第２のウィンドウとが重複する領域である重複領域において前記第２の描画データを前記第１のウィンドウに透過して表示させ、前記第１の描画データの属性と前記第２の描画データの属性が同じである場合には前記重複領域において前記第２の描画データが表示されないようにし、又は、前記第１の描画データの属性と前記第２の描画データの属性が異なる場合よりも前記第１のウィンドウに透過されにくくして前記第２の描画データを表示させる表示制御手順を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のウィンドウを重ねて表示させる表示制御装置、表示制御方法、及び、プログラムに関する。
【背景技術】
【０００２】
従来、パーソナルコンピュータ、デジタル家電、モバイル機器等の表示画面上に、複数の異なるアプリケーションがそれぞれ独立にウィンドウを描画するシステムが一般的に用いられている。近年では、グラフィックス描画性能の向上により、ウィンドウが下レイヤのウィンドウに描画される描画データを透過するシステムも用いられている。このようなシステムにおいては、複数のウィンドウが重複した場合に、下レイヤのウィンドウの描画データが上レイヤのウィンドウに透過して表示される。
【０００３】
下レイヤのウィンドウの描画データが上レイヤのウィンドウに透過するシステムとして、複数のウィンドウの重複部分の描画データの種類に基づいて透過度を調整する技術が公開されている（例えば、特許文献１）。またウィンドウが重複する領域で、下レイヤのウィンドウに表示される内容を上レイヤのウィンドウの表示よりも薄く表示する技術も公開されている（例えば、特許文献２）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１０−１７７４６６
【特許文献２】特開平０８−１２３６５２
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、ウィンドウ同士が重複する領域においては、独立に描画された複数の描画データが重なって表示されるため、ウィンドウの表示位置の関係、および描画された描画データの組み合わせによって視認性が低下する場合がある。図２に、半透明ウィンドウの重畳例を示す。図２（ａ）の表示では、表示領域の一部で文字同士が重なり合い、メインで作業を行っている上レイヤのウィンドウ、およびその下に重なる下レイヤのウィンドウの両方で表示内容が視認しづらい領域が存在する。同様に図２（ｂ）の表示では、上レイヤのウィンドウでＣＡＤや地図で用いるような微細なグラフィックスを編集する場合に、類似のグラフィックスデータが下レイヤのウィンドウに表示されると、パターンの混在による錯視により視認性が低下する恐れがある。
【課題を解決するための手段】
【０００６】
上述の課題を解決するために本発明は、第１のウィンドウに描画する第１の描画データを入力するために用いられる入力手段の種類に基づいて前記第１のウィンドウに描画される第１の描画データの属性を判断する判断手段と、前記第１のウィンドウの下位レイヤに表示される第２のウィンドウに描画される第２の描画データの属性と前記第１の描画データの属性が異なる場合には前記第１のウィンドウと前記第２のウィンドウとが重複する領域である重複領域において前記第２の描画データを前記第１のウィンドウに透過して表示させ、前記第１の描画データの属性と前記第２の描画データの属性が同じである場合には前記重複領域において前記第２の描画データが表示されないようにし、又は、前記第２の描画データと前記第１の描画データの属性が異なる場合よりも前記第１のウィンドウに透過されにくくして前記第２の描画データを表示させる表示制御手段とを有することを特徴とする。
【発明の効果】
【０００７】
本発明によれば、下レイヤのウィンドウの描画データが上レイヤのウィンドウに透過表示されることによる視認性の低下を改善し、視認性を向上させることができる。
【図面の簡単な説明】
【０００８】
【図１】本発明にかかる表示制御装置の構成例を示す図。
【図２】重複領域における描画データの重なりについて説明するための図。
【図３】制御部１０３の動作を説明するためのフローチャート。
【図４】管理部１０２の動作を説明するためのフローチャート。
【図５】グローバル座標系におけるウィンドウの表示例を示す図。
【図６】ウィンドウ管理テーブル及びローカルウィンドウ管理テーブルを示す図。
【図７】ウィンドウ制御情報及び重複領域情報を示す図。
【図８】描画部の動作を説明するためのフローチャート。
【発明を実施するための形態】
【０００９】
以下、図面を参照して本発明の実施の形態を説明する。
【００１０】
＜実施例１＞
本実施例にかかる表示制御装置を実現するための構成を図１に示す。図１に示した各構成要素は、物理的に独立なハードウェアとして構成してもよいし、同等の機能を有するソフトウェアの１つ以上のインスタンスとして構成してもよい。
【００１１】
入力制御部１０１は、不図示の入力装置から入力された描画データを後述の制御部１０３に出力する。ここで、描画データとは表示装置の表示画面に表示されたウィンドウ内に描画される文字や図形、ビットマップデータ等のことをいう。描画データにはその描画データが文字であるか、図形であるか、ビットマップデータであるか、あるいはその他であるか等の属性を示す情報が付加される。
【００１２】
また、入力制御部１０１はデバイス識別信号を取得して制御部１０３に出力する。ここでデバイス識別信号とは、ユーザが使用しているデバイスを示す信号である。例えば、ユーザが入力装置としてキーボードを使用しているときは、入力制御部１０１はユーザが文字入力デバイスを用いていることを示すデバイス識別信号を制御部１０３に出力する。キーボードは表示画面上にキーが表示されるソフトキーボードであってもよい。また、ユーザがマウス、タッチパネルやタブレット等を使用している場合には、入力制御部１０１はユーザがポインティングデバイスを用いていることを示すデバイス識別信号を制御部１０３に出力する。このようにして入力制御部１０１は、ウィンドウに描画する描画データを入力するために用いられる入力手段の種類を識別する。
【００１３】
管理部１０２は、表示装置の表示画面に表示されるウィンドウの位置とサイズ、複数のウィンドウが重複する重複領域の位置とサイズ、重複領域の数、ウィンドウの上下関係を表すＺレベル、及び、ウィンドウの透過度を後述の制御部１０３から取得して管理する。これらの情報の管理については図５および図６を用いて詳細を後述する。
【００１４】
描画部１０４及び描画部１０５（以下、これらの描画部を総称して「描画部」という。）は、それぞれウィンドウ内に表示される文字や図形などの描画データを生成する。描画部１０４及び描画部１０５は、並列に動作する描画モジュールとして構成する方法のほかに、ソフトウェア的に複数のアプリケーションを１つの描画モジュールやプロセッサの上にインスタンスし、シーケンシャルに描画を行う方法をとってもよい。また、描画モジュールの数はアプリケーションの性質やウィンドウ数に応じて、任意の数としてよい。描画部によって描画された複数のウィンドウの描画データは、合成部１０６に入力される。
【００１５】
合成部１０６は、描画部が描画した複数のウィンドウを合成する。合成部１０６によるウィンドウの合成結果は、表示制御部１０７に入力される。表示制御部１０７は、合成部１０６が合成した複数のウィンドウを表示装置に表示させる。
【００１６】
制御部１０３は、入力制御部１０１から受信したデバイス識別信号、および入力データを用いて管理部１０２、描画部１０４、描画部１０５、合成部１０６の制御を行う。制御部１０３が行う制御については、詳細を後述する。
【００１７】
次に、管理部１０２が管理する情報について図５および図６を用いて説明する。本実施例では、管理部１０２は表示画面におけるウィンドウの位置やサイズをグローバル座標系を用いて管理する。また、管理部１０２は各ウィンドウ領域内における重複領域の位置やサイズをローカル座標系を用いて管理する。
【００１８】
グローバル座標系におけるウィンドウの表示例を図５に示す。本実施例では、ウィンドウ５０１およびウィンドウ５０２が不透明、ウィンドウ５０３が半透明であるものとする。本実施例では、背景にもっとも近いレイヤに描画されるウィンドウのＺレベルを０と定義する。図５の表示例では、Ｚレベル０のレイヤとしてウィンドウ５０２、Ｚレベル１のレイヤとしてウィンドウ５０１、Ｚレベル２のレイヤとしてウィンドウ５０３が描画されている。
【００１９】
管理部１０２が、図５を用いて説明した各ウィンドウの情報管理に用いるウィンドウ管理テーブルを図６（ａ）に示す。ウィンドウ管理テーブルは、各ウィンドウについて、ウィンドウの識別に用いられるＩＤ６０８、Ｚレベル６０１、グローバル座標系におけるウィンドウの座標６０２、サイズ６０３、透過度６０４の情報を持つ。ウィンドウの透過度は、そのウィンドウの下レイヤのウィンドウに表示される描画データが、そのウィンドウに透過する度合いを示す。本実施例では、不透過の場合を透過度０、半透明の場合を透過度０．５として表す。また、ウィンドウ管理テーブルは、あるウィンドウ内の領域であって、そのウィンドウの上レイヤに別のウィンドウが重複している領域である重複領域について、重複領域の座標６０５、サイズ６０６、上に重なるウィンドウの透過度である重複透過度６０９、重複領域数６０７の情報を持つ。
【００２０】
例えば、図６（ａ）に示したウィンドウ管理テーブルにおいて、ウィンドウ５０１はＩＤが２０のエントリとして表現される。本実施例においては、ウィンドウの左上の頂点の座標をウィンドウ座標として用いる。ウィンドウ５０１のウィンドウ座標は、（１，１）となる。また、ウィンドウサイズは（６，３）である。これは、グローバル座標において、ウィンドウ５０２の横幅が６目盛分であり、縦幅が３目盛分であることを表している。以下、ウィンドウのサイズについて同様に表記する。また、ウィンドウ５０１は上述の通り不透明であるため、ウィンドウ透過度は０である。また、ウィンドウ５０１は、半透明のウィンドウ５０３が上に重なるため、重複領域数は１である。ウィンドウ５０１と、ウィンドウ５０３の重複領域５０４は、グローバル座標系において（４，２）と表される。また、重複領域サイズは（３，２）と表される。また、ウィンドウ５０１の上レイヤに重複しているウィンドウ５０３の透過度が０．５であることから、重複透過度は０．５と表される。
【００２１】
ウィンドウ５０２は、ウィンドウ管理テーブルにおいて、ＩＤが３０のエントリとして表現される。ウィンドウ５０２についてもウィンドウ５０１と同様にして各情報がウィンドウ管理テーブルに保持される。
【００２２】
ウィンドウ５０３は、ウィンドウ管理テーブルにおいて、ＩＤが１０のエントリとして表現される。ウィンドウ５０３は半透明であり、ウィンドウ透過度は０．５である。ウィンドウ５０３は、最上位のウィンドウであり、上に重なる他のウィンドウがないため、ウィンドウ重複領域数は０である。
【００２３】
次に、管理部１０２が各ウィンドウ領域内における重複領域の位置等を管理するために用いるローカルウィンドウ管理テーブルを図６（ｂ）に示す。ローカルウィンドウ管理テーブルは、ＩＤ６０８、重複透過度６０９、ローカル重複領域座標７０３、ローカル重複領域サイズ７０４、重複領域数６０７についての情報を持つ。
【００２４】
重複領域サイズ６０６、重複領域数６０７、重複透過度６０９、ＩＤ６０８については図６（ａ）のウィンドウ位置テーブルに記録される情報と同じ情報であるため同一の符号を付し説明を省略する。
【００２５】
ローカル重複領域座標７０３は重複領域の位置を、ウィンドウごとのローカル座標系によって表現するものである。本実施例では、各ウィンドウのウィンドウ座標６０２がローカル座標の原点（０，０）であるとする。
【００２６】
例えば本実施例において、ＩＤ２０で表されるウィンドウ５０１のローカル座標系の原点はグローバル座標系における（１，１）である。また、ウィンドウ５０１上にウィンドウが重複している重複領域の座標はグローバル座標系における（４，２）である。そして、ウィンドウ５０１のローカル重複領域座標は、ローカル座標系では（４−１，２−１）＝（３，１）として表される。
【００２７】
また、ＩＤ３０で表されるウィンドウ５０２のローカル座標系の原点はグローバル座標系における（２，３）である。また、ウィンドウ５０２上にウィンドウが重畳している重複領域の座標もグローバル座標系における（２，３）である。そして、ウィンドウ５０２のローカル重複領域座標はローカル座標系では（２−２、３−３）＝（０，０）として表される。
【００２８】
ローカル座標の原点の位置はウィンドウ座標６０２に限られない。ローカル座標の原点を任意に設定し、ウィンドウ管理テーブルにおいて各ウィンドウのエントリにローカル座標系の原点情報を持たせることとしてもよい。この場合、グローバル座標系における重複領域の座標値と原点情報とを用いてローカル座標系における重複領域の位置を導出することができる。以上のようにして、管理部１０２はウィンドウや重複領域についての上述の情報の管理を行う。以上のようにして管理部１０２は、ウィンドウの位置とサイズ、ウィンドウの重複領域の位置とサイズ、重複領域の数、ウィンドウの上下関係、及び、ウィンドウの透過度の管理を行う。
【００２９】
次に、制御部１０３が行う描画指示制御の内容について説明する。制御部１０３は、入力制御部１０１から入力されたデータから、ウィンドウ位置の変更及びウィンドウのサイズ変更に関する情報を抽出し、管理部１０２にウィンドウ制御情報として通知する。ウィンドウ制御情報を受信した管理部１０２は、当該ウィンドウ制御情報に基づいて図６に示したウィンドウ管理テーブル及びローカルウィンドウ管理テーブルを更新する。ウィンドウ制御情報について図７（ａ）を用いて説明する。
【００３０】
ウィンドウ制御情報は、ＩＤ６０８、Ｚ制御フラグ９０１、変更後ウィンドウ座標９０２、変更後ウィンドウサイズ９０３、変更後ウィンドウ透過度９０４についての情報を持つ。Ｚ制御フラグ９０１は、ウィンドウの表示位置を最前面に変更させるために用いる。Ｚ制御フラグが１である場合に、ウィンドウを最前面に表示させる。制御部１０３は、変更先のウィンドウ座標として変更後ウィンドウ座標９０２を通知する。また、制御部１０３は、変更後のウィンドウサイズとして変更後ウィンドウサイズ９０３を通知する。さらに、制御部１０３は、変更後のウィンドウ透過度として変更後ウィンドウ透過度９０４を通知する。
【００３１】
また制御部１０３は、入力制御部１０１から描画データを取得すると、取得した描画データの描画を行う描画部を決定して決定した描画部に描画指示を行う。制御部１０３は、ウィンドウの位置、サイズ、透過度等の変更に伴ってウィンドウの描画を指示する。描画指示の際に、制御部１０３は重複領域情報を描画部に通知する。重複領域情報の例を図７（ｂ）に示す。制御部１０３は、重複領域情報として重複透過度８０１、重複領域座標８０２、重複領域サイズ８０３、重複領域数８０４、および入力デバイス種別８０５を通知する。制御部１０３は、図６（ｂ）のローカルウィンドウ管理テーブルから描画データの描画を行うウィンドウについての重複領域数６０７、ローカル重複領域座標７０３、重複領域サイズ６０６、重複透過度７０２を読み出して図７（ｂ）の重複領域情報の通知を行う。また、制御部１０３は、入力制御部１０１から受信したデバイス識別信号に基づき、ウィンドウ重複領域情報内の入力デバイス種別８０５に文字入力機器を示す“Ｃｈａｒ”、もしくはポインティングデバイスを示す“Ｐｏｎｔ”の文字列を重複領域情報に付加する。
【００３２】
また制御部１０３は、描画データを描画部に入力する。また制御部１０３は、描画部から描画が完了したことを示す通知を受信すると、合成部１０６に対してウィンドウの合成指示を行う。
【００３３】
次に、本実施例における制御部１０３の動作を図３のフローチャートを用いて説明する。プロセッサ及びメモリを用いて制御部１０３の機能を実現する形態では、図３の処理フローは、図３に示される手順をこのプロセッサに実行させるためのプログラムを示す。このプロセッサは、コンピュータであり、メモリから読み出したプログラムを実行する。メモリは、このプロセッサが読み出すことができるようにこのプログラムを記録した記録媒体である。
【００３４】
まず制御部１０３は、画面更新の開始タイミングを待つ（Ｓ３０１）。画面更新のタイミングとして例えば、図示しないアプリケーションプログラムからの画面更新指示の受信や、入力制御部１０１からのウィンドウ操作指示の受信等がある。画面の更新を行う場合（Ｓ３０１でｙｅｓの場合）、制御部１０３は更新するウィンドウについて、図６（ｂ）に示した管理部１０２のローカルウィンドウ管理テーブルに記憶された情報を取得する（Ｓ３０２）。
【００３５】
そして制御部１０３は、表示位置又はサイズの変更が指示されたウィンドウの描画を行う描画部を決定する（Ｓ３０３）。描画部の決定には任意の方法を用いることができる。描画部の決定方法については、発明の本質ではないので説明を省略する。
【００３６】
続いて、制御部１０３は描画部を決定したウィンドウの領域内に半透明ウィンドウとの重複領域があるか判定する（Ｓ３０４）。判定は、取得したステップＳ３０２で取得した図６（ｂ）の重複領域数６０７と重複透過度６０９に基づいて行う。制御部１０３は、重複領域数６０７が０より大きく、かつ、重複透過度６０９が０より大きいウィンドウは半透明ウィンドウとの重複領域があると判定する。半透明ウィンドウとの重複領域がない場合（Ｓ３０４でｎｏの場合）には、後述するステップＳ３０６に進む。
【００３７】
半透明ウィンドウとの重複領域があると判定された場合（Ｓ３０４でｙｅｓの場合）、制御部１０３は、ステップＳ３０３において決定した描画部に対し、図７（ｂ）に示した重複領域情報を通知する（Ｓ３０５）。
【００３８】
次に制御部１０３は、ステップＳ３０３において決定した描画部に対してウィンドウの描画開始の指示を行う。そして制御部１０３は、表示位置又はサイズの変更が指示された全てのウィンドウについて描画開始処理が行われたか判断する（Ｓ３１１）。まだ描画開始処理が行われていないウィンドウがある場合（Ｓ３１１でｎｏの場合）は、ステップＳ３０３からステップＳ３１１までの処理を繰り返す。
【００３９】
全てのウィンドウについて描画が開始された場合（Ｓ３１１でｙｅｓの場合）、制御部１０３は、描画開始の指示により起動されたすべての描画部がウィンドウの描画を完了したか判断する（Ｓ３０７）。ウィンドウの描画完了は、後述する描画部からの描画完了割り込みによって検出する。
【００４０】
次に制御部１０３は、合成部１０６に合成パラメータを指定して合成開始を指示し、描画された複数のウィンドウを合成する（Ｓ３０８）。以上で１フレームの描画処理を完了する。
【００４１】
制御部１０３は、入力制御部１０１から入力されたデータにウィンドウの位置の変更、およびサイズ変更の要求を含むものがあるか否かを判断する（Ｓ３０９）。ウィンドウの位置の変更、およびサイズ変更の要求がない場合は、ステップ３０１に戻り次の画面更新を待つ。制御部１０３は、ウィンドウの位置の変更、又は、サイズ変更の要求がある場合には、管理部１０２に対して、図７（ａ）に示したウィンドウ制御情報を出力する（Ｓ３１０）。
【００４２】
次に、管理部１０２の動作について図４のフローチャートを用いて説明する。プロセッサ及びメモリを用いて管理部１０２の機能を実現する形態では、図４の処理フローは、図４に示される手順をこのプロセッサに実行させるためのプログラムを示す。このプロセッサは、コンピュータであり、メモリから読み出したプログラムを実行する。メモリは、このプロセッサが読み出すことができるようにこのプログラムを記録した記録媒体である。
【００４３】
まず管理部１０２は、制御部１０３からウィンドウの位置変更、又は、サイズ変更等に関する指示があるか否かを判断する（Ｓ４０１）。本実施例では、制御部１０３から図７（ａ）のウィンドウ制御情報を受信した場合に、ウィンドウの位置変更又はサイズ変更等があったと判断する。
【００４４】
ウィンドウの位置変更、又は、サイズ変更等の指示がある場合（Ｓ４０１でｙｅｓの場合）、管理部１０２は、ウィンドウの位置又はサイズ等を更新する（Ｓ４０２）。更新する内容はウィンドウの位置やサイズに限られない。例えば、管理部１０２は、ウィンドウの重複順序の変更がＺ制御フラグ９０１によって指示された場合は、図６（ａ）に示したウィンドウ管理テーブルのＺレベルを更新し、ウィンドウの上下関係を変更する。ウィンドウの透過度が変更された場合は、ウィンドウ透過度６０４の値を更新する。
【００４５】
続いて管理部１０２は、ステップＳ４０３からステップＳ４１０において、図６（ａ）に示したウィンドウ管理テーブルのうち、重複領域座標６０５、重複領域サイズ６０６、重複領域座標６０５、及び、重複領域数６０７の更新を行う。
【００４６】
管理部１０２は、Ｚレベル６０１が０のウィンドウをカレントとして指定する。（Ｓ４０３）。そして管理部１０２は、カレントに指定したウィンドウ（以下、「カレントウィンドウ」という。）より大きいＺレベルを有するウィンドウが存在するか否かを判断する（Ｓ４０４）。
【００４７】
カレントウィンドウより大きいＺレベルを有するウィンドウが存在する場合（Ｓ４０４でｎｏの場合）、管理部１０２はカレントウィンドウとの重複領域が存在するか判断するための比較ウィンドウを設定する。ステップＳ４０５では、管理部１０２はカレントウィンドウよりも１レイヤ上にあるウィンドウを比較ウィンドウとして設定する。例えば、カレントウィンドウのＺレベルが０の場合、比較ウィンドウとしてまずＺレベル１のウィンドウが比較ウィンドウとして設定される。
【００４８】
管理部１０２は、カレントウィンドウと比較ウィンドウに重複領域があるかどうかを判断する（Ｓ４０６）。重複領域があるかどうかの判断は、例えば、図６（ａ）のウィンドウ管理テーブルのウィンドウ座標６０２及びウィンドウサイズ６０３により特定されるカレントウィンドウの領域内に、比較ウィンドウの一部又は全部が含まれるか判断することにより行うことができる。
【００４９】
ウィンドウの重複領域が存在する場合（Ｓ４０６でｙｅｓの場合）は、管理部１０２は、カレントのウィンドウの重複領域数６０７をインクリメントし、さらに、重複領域座標６０５、重複領域サイズ６０６を更新する（Ｓ４０７）。そして管理部１０２は、現在の比較ウィンドウよりもＺレベルがひとつ大きいウィンドウを新たな比較ウィンドウとして設定する（Ｓ４０８）。重複領域がない場合は（Ｓ４０６でｎｏの場合）、管理部１０２はステップＳ４０７の処理を実行しないでステップＳ４０８の処理を行う。
【００５０】
次に管理部１０２は、ステップＳ４０８において新たに設定した比較ウィンドウが実際に存在するか否かを判断する（Ｓ４０９）。新たに設定したＺレベルの比較ウィンドウが存在する場合（Ｓ４０９でｙｅｓの場合）、管理部１０２はステップＳ４０６からステップＳ４０８を繰り返す。新たに設定したＺレベルに対応するウィンドウが存在しない場合（Ｓ４０９でｎｏの場合）、管理部１０２はカレントウィンドウをＺレベルが１つ大きいウィンドウに変更し、ステップＳ４０４からステップＳ４０９を繰り返す（Ｓ４１０）。
【００５１】
カレントウィンドウが最上位のウィンドウになると（Ｓ４０４でｙｅｓの場合）、管理部１０２は、制御部１０３からのウィンドウ制御情報のリクエストを判断する（Ｓ４１１）。制御部１０３からウィンドウ制御情報をリクエストされた場合、管理部１０２は、図６（ａ）のウィンドウ管理テーブルの重複領域座標６０５から、ウィンドウ制御情報のローカル重複領域座標７０３を計算し、図７（ｂ）の重複領域情報を生成して制御部１０３に送信する（Ｓ４１２）。
【００５２】
次に、描画部の動作を図８のフローチャートを用いて説明する。プロセッサ及びメモリを用いて制御部１０３の機能を実現する形態では、図８の処理フローは、図８に示される手順をこのプロセッサに実行させるためのプログラムを示す。このプロセッサは、コンピュータであり、メモリから読み出したプログラムを実行する。メモリは、このプロセッサが読み出すことができるようにこのプログラムを記録した記録媒体である。
【００５３】
まず描画部は、制御部１０３から描画データの入力を受け付ける（Ｓ１００１）。次に描画部は、制御部１０３から描画データの描画を指示されたウィンドウについて、図７（ｂ）に示した重複領域情報を制御部１０３から受信しているか判断する（Ｓ１００２）。描画を指示されたウィンドウのＩＤに対応する重複領域情報を受信していない場合（Ｓ１００２でｎｏの場合）、描画部は描画データの描画指示に従って描画処理を行う（Ｓ１００７）。描画を指示されたウィンドウのＩＤに対応する重複領域情報を受信している場合（１００２でｙｅｓの場合）、描画部は描画データが重複領域に含まれるか否かを判断する（Ｓ１００３）。本実施例では、ステップＳ１００３の判断は、図７（ｂ）の重複領域情報に含まれる重複領域座標８０２、及び重複領域サイズ８０３の情報に基づいて行う。これらの情報と、ウィンドウにおける描画データのローカル座標とを比較することにより、ステップＳ１００３の判断を行うことができる。描画データが重複領域に含まれない場合（Ｓ１００３でｎｏの場合）、描画部はステップＳ１００７へ進み描画データの描画を行う。
【００５４】
描画データが重複領域に含まれる場合（Ｓ１００３でｙｅｓの場合）、描画部は図７（ｂ）の重複領域情報に含まれる入力デバイス種別８０５を参照し、入力デバイスの種別を判別する（Ｓ１００４）。本実施例において描画部は、入力デバイスがキーボードやソフトキーボード等の文字入力に用いられるデバイスであるか、マウス等の主に図形入力に用いられるデバイスであるか判別する。本実施例では描画部は、入力デバイスを判別することにより、上レイヤのウィンドウに入力される描画データが文字であるか、図形であるか判断する。このようにして描画部は、入力制御部１０１が識別した入力デバイスの種類に基づいて、カレントウィンドウの上位レイヤに表示されるウィンドウに描画される描画データの属性を、判断する。
【００５５】
入力デバイスの種類が文字用である場合（Ｓ１００４でｙｅｓの場合）は、上レイヤのウィンドウに入力中の描画データの種別が文字である可能性が高いため、見やすさを優先して、当該下レイヤのウィンドウには文字描画データの描画処理（Ｓ１００７）を行わないようにする。入力デバイスの種類が文字用である場合（Ｓ１００４でｙｅｓの場合）、描画部は描画データの属性に基づいて下レイヤに描画する描画データが文字であるか否かを判断する（Ｓ１００５）。下レイヤに描画する描画データが文字である場合（Ｓ１００５でｙｅｓの場合）、描画部は当該文字描画データの描画（Ｓ１００７）を行わず、後述のステップＳ１００８の処理を行う。一方、下レイヤに描画する描画データが文字でない場合（Ｓ１００５でｎｏの場合）、描画部は当該描画データの描画を行う（Ｓ１００７）。
【００５６】
入力デバイスの種類が文字デバイスでない場合（Ｓ１００４でｎｏの場合）は、上レイヤのウィンドウに入力中の描画データの種別が図形である可能性が高いため、見やすさを優先して、当該下レイヤのウィンドウには図形描画データの描画処理（Ｓ１００７）を行わないようにする。入力デバイスの種類が文字デバイスでない場合（Ｓ１００６でｙｅｓの場合）、描画部は描画データの属性に基づいて下レイヤに描画する描画データが図形であるか否かを判断する（Ｓ１００６）。この場合、描画部は後述のステップＳ１００８の処理を行う。一方、下レイヤに描画する描画データが図形でない場合（Ｓ１００６でｎｏの場合）、描画部は当該描画データの描画を行う（Ｓ１００７）。ステップＳ１００５、ステップＳ１００６について説明したようにして、描画部はカレントウィンドウに描画される描画データの属性を判断する。
【００５７】
ステップＳ１００８では、描画部は入力された描画データが１フレーム分すべて終了したか否かを判断し、終了していない場合は、ステップＳ１００１へ戻り、次の描画データの処理を行う。１フレームの描画完了が検出されると、ステップ１００９において制御部１０３に対し、フレーム終了を通知する。
【００５８】
制御部１０３は、上述した様に、すべての描画部の終了を待ち、描画データを合成し画面へ表示する指示を合成部１０６に対して出力する。
【００５９】
合成部１０６は、上述のようにして描画部が描画したカレントウィンドウと上レイヤのウィンドウとを合成する。合成部１０６によるウィンドウの合成結果は、表示制御部１０７に入力される。
【００６０】
表示制御部１０７は、合成部１０６が合成した複数のウィンドウを表示装置に表示させる。このようにして、表示制御部１０７は、カレントウィンドウに描画される描画データの属性と上レイヤに表示されるウィンドウの描画データの属性とが異なる場合には重複領域においてカレントウィンドウの描画データを上レイヤのウィンドウに透過して表示させる。また表示制御部１０７は、カレントウィンドウに描画される描画データの属性と上レイヤのウィンドウに描画される描画データの属性が同じである場合には、重複領域においてカレントウィンドウに描画される描画データが表示されないようにする。
【００６１】
本実施例に係る発明は、下レイヤのウィンドウの描画データの属性と上レイヤのウィンドウの描画データの属性が同じ場合には、両ウィンドウの重複領域において、上レイヤのウィンドウに下レイヤのウィンドウの描画データを透過させる。従って、不透過ウィンドウの表示のみのシステムと比較して画面に表示すべき情報量が増加し作業効率を向上させることができる。一方、両ウィンドウの描画データの属性が異なる場合には、重複領域において、下レイヤのウィンドウの描画データを描画しない。従って、重複領域における文字やパターンの混在による錯視による視認性の低下を改善し、視認性を向上させることができる。さらに、本実施例では、両ウィンドウの描画データの属性が異なる場合には、重複領域において、下レイヤのウィンドウの描画データを描画しないので、描画データを構成するために必要な画像処理や描画処理の負荷を低減させることができる。描画処理の付加低減により、画面の描画速度の向上が期待できる。
【００６２】
本実施例では、上レイヤのウィンドウに描画される描画データの属性を入力装置の種別によって判断する。従って、現在の描画データの入力状況に応じて、重複領域において、下レイヤのウィンドウの描画データを上レイヤに透過させるか否か適宜切り換えることができる。このようにして、文字入力時には文字の、図形入力時には図形の視認性が向上する。同時に、文字入力時には下レイヤウィンドウの図形を、図形入力時には下レイヤウィンドウの文字を参照することができ作業効率が向上する。
【００６３】
＜その他の実施例＞
実施例１では、描画部はカレントウィンドウに描画される描画データの属性と上レイヤのウィンドウに描画される描画データの属性が同じである場合（Ｓ１００５でｙｅｓの場合、又は、Ｓ１００６でｙｅｓの場合）に、重複領域にカレントウィンドウの描画データが表示されないようにした。しかし、重複領域における描画データの属性が同じである場合の表示制御方法はこれに限られない。例えば、この場合に描画部は、カレントウィンドウの描画データと上レイヤのウィンドウの描画データの属性が異なる場合よりも、カレントウィンドウの描画データが上レイヤのウィンドウに透過されにくくして描画を行ってもよい。描画部の描画結果を受けて表示制御部１０７は、カレントウィンドウの描画データの属性と上レイヤのウィンドウの描画データの属性が異なる場合よりも上レイヤのウィンドウに透過されにくくしてカレントウィンドウの描画データを表示させる。このような構成によっても、実施例１と同様に、両ウィンドウの描画データの属性が異なる場合には、重複領域における文字やパターンの混在による錯視による視認性の低下を改善し、視認性を向上させることができる。また、上レイヤのウィンドウに描画される描画データの属性を入力装置の種別によって判断するため、現在の描画データの入力状況に応じて、重複領域において、下レイヤのウィンドウの描画データを上レイヤに透過させるか否か適宜切り換えることができる。
【００６４】
また、描画データの属性の判断はウィンドウ単位に行ってもよい。あるいはウィンドウを複数の領域に区分し、区分した領域ごとに描画データの属性の判断を行ってもよい。区分した領域ごとに属性の判断を行うことにより、ウィンドウ全体を単位として属性の判断を行う場合と比較して、より正確に重複領域における描画データの属性の判断を行うことができる。一方、ウィンドウ全体を単位として描画データの属性の判断を行うことにより、判断のための処理負荷を軽減し、描画速度を向上させることができる。
【００６５】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【符号の説明】
【００６６】
１０１  入力制御部
１０３  制御部
１０４  描画部
１０５  描画部
１０７  表示制御部
【図１】
0005591092.tif 000002
【図２】
0005591092.tif 000003
【図３】
0005591092.tif 000004
【図４】
0005591092.tif 000005
【図５】
0005591092.tif 000006
【図６】
0005591092.tif 000007
【図７】
0005591092.tif 000008
【図８】
0005591092.tif 000009