(57)【要約】【課題】実行速度が遅くメモリ容量も少なく自由領域型を使用できないデバイス上において、透過領域の描画をサポートしたマルチウィンドウＧＵＩを高速かつ効率的に描画する。【解決手段】ウィジェット毎に再描画領域を四角形型のみでスケジューリングし、描画処理を一つのタイミングにまとめ、効率的に描画関数を呼び出せるように可視領域と再描画領域を整理した後、各ウィジェットの描画関数を多くとも一度だけ呼び出すようにすることで透過領域を持つような複雑なマルチウィンドウＧＵＩを効率的に描画する。【選択図】  図１
2005100308.tif 000002
【特許請求の範囲】
【請求項１】
再描画領域を四角形型のみで管理し、それらをスケジューリングし、２つの四角形領域がスケジューリングされたときは２つの四角形領域を含む一つの最小の四角形領域として管理し、また複数の四角形領域がスケジューリングされたときはそれらすべての四角形領域を含む一つの最小の四角形領域として管理する描画方式。
【請求項２】
ウィジェット毎に再描画領域をスケジューリングし、描画処理を一つのタイミングにまとめ、効率的に描画関数を呼び出せるように請求項３のアルゴリズムを使用し可視領域と再描画領域を整理した後、各ウィジェットの描画関数を多くとも一度だけ呼び出すことにより、透過領域を持つような複雑なマルチウィンドウＧＵＩを効率的に描画する方式。
【請求項３】
段階１として、見えないウィジェットを処理対象外として除外し、段階２として、完全に見えない再描画領域を処理対象外として除外し、段階３として、透過領域を持ったウィジェットの再描画領域を真下に位置するウィジェットの再描画領域に追加し、段階４として、真上に位置するウィジェットに再描画領域を追加し、段階５として、段階３と段階４で新たな再描画領域が発生しなくなるまで段階３と段階４を繰り返し、段階６として、実際に再描画領域を描画する方式、または、段階１から段階６のうち一部を省略した描画方式、またはそれらの順序を入れ替えた描画方式。
【発明の詳細な説明】
【発明の詳細な説明】
【技術分野】
【０００１】本発明は、携帯電話端末やＰＤＡなどの少資源ハードウェア環境において、マルチウィンドウＧＵＩ、特に透過領域を含んだマルチウィンドウＧＵＩを効率的に描画する方式に関するものである。
【背景技術】
【０００２】従来よりマルチウィンドウＧＵＩを描画する方法として以下のものが存在する。
１．再描画領域を自由領域型としてスケジューリングし、自由領域型でクリッピングして描画することで、複雑なウィジェットの重なりや透過領域を処理する方式。
２．１の応用型で、ウィジェット毎にオフスクリーンを持ちなるべく描画回数を減らす方式。
３．再描画の必要が発生した時点で影響するすべてのウィジェットを再描画する方式。
４．３の応用型で、ウィジェット毎にオフスクリーンを持ち、なるべく描画回数を減らす方式。【０００３】
【特許文献１】特開平９−２４４８６４号公報
【発明が解決しようとする課題】
【０００４】従来方法では、
【０００２】で述べた１や２のような自由領域型を使用した再描画領域の管理は、自由領域型を使用できない環境下では使用できない。また
【０００２】で述べた３や４のような頻繁に再描画処理の発生する構造はデバイスの処理速度の面から実用的ではない。更に、
【０００２】で述べた２や４の方法では描画回数をなるべく減らすという効果はあるものの、メモリを多く使用するため、メモリが少ないデバイス上では実用的ではない。
【課題を解決するための手段】
【０００５】上述した課題を解決するため、本発明は、ウィジェット毎に再描画領域を四角形型のみで管理し、それらをスケジューリングし、ウィジェットはオフスクリーンを保持せず、描画処理を一つのタイミングにまとめ、効率的に描画関数を呼び出せるように可視領域と再描画領域を整理した後、各ウィジェットの描画関数を多くとも一度だけ呼び出すようにする。
【発明を実施するための最良の形態】
【０００６】以下に本発明の一つの実施形態について説明するが、本発明の権利範囲はここで示される実施形態に限定されるものではない。（図４）は本発明を使用したソフトウェアのイベント処理の流れを示したものである。ユーザー操作やその他の処理によって発生したイベントは、ウィジェット１とウィジェット２で処理されるものとする。【０００７】ウィジェット１では関数１と関数２がイベントを処理し、その結果として再描画を必要とするものとする。またウィジェット２では関数１がイベントを処理し再描画を必要とするものとする。【０００８】本発明では再描画が必要になった時点で再描画要求領域をスケジューリングするため、ウィジェット１の関数１とウィジェット１の関数２ではウィジェット１の再描画領域に対してスケジューリングを行う（図２・図３）こととなる。またウィジェット２の関数１では、ウィジェット２の再描画領域に対してスケジューリングを行うこととなる。各ウィジェットの再描画領域は一つの四角形として管理されることとなる。【０００９】（図１）は本発明の具体的な処理の流れを示した図である。段階１では、処理の前段階として、他のウィジェットに隠れていて見えないウィジェットや親のウィジェットの可視領域の外側にあるウィジェットを処理の対象から除外する（図５・図６）。すべてのウィジェットに対して処理を行った後、段階１は終了となる。【００１０】次に、段階２では、他のウィジェットに隠れていて見えない再描画領域や親のウィジェットの可視領域の外側にある再描画領域など、隠れていて見えない再描画領域を処理の対象から除外する（図７・図８）。すべての処理対象のウィジェットに対して処理を行った後、段階２は終了となる。【００１１】段階３では、透過領域を持ったウィジェットが再描画される場合、対象のウィジェットより下にあるウィジェットの再描画も必要になる（図９・図１０）ため、対象の再描画領域を、真下に位置するウィジェットの再描画領域に追加する。一つ真下に位置するウィジェットが不透明かつウィジェットの領域が対象の再描画領域を完全に包含する場合、再描画領域の伝達処理はここで終了することとなる（図１１）。もし、真下に位置するウィジェットが透明である場合や、再描画領域を完全に包含しない場合、更に下に位置するウィジェットにも伝達処理は行われることとなる（図１２）。すべての処理対象のウィジェットに対して、下から初めて上まで処理を行った後、段階３は終了となる。【００１２】次に、段階４では、あるウィジェットの真下のウィジェットで再描画が発生したとき、真上に位置するウィジェットも再描画が必要になる（図１３・図１４）ため、対象の再描画領域を、真上に位置するすべてのウィジェットの再描画領域にも追加する。このことは特に、透過領域を持ったウィジェットの場合顕著であるが、不透明なウィジェットの場合は真下のウィジェットで再描画が発生した場合、自分自身の見た目をコピーして退避させておくなどの手段で描画処理を最適化することも可能である。すべての処理対象のウィジェットに対して、上から初めて下まで処理を行った後、段階４は終了となる。【００１３】段階５では、段階３と段階４を行うことによって新たな再描画領域が発生する（図１５−図１８）可能性があるため、新たな再描画領域が発生しなくなるまで段階３と段階４を繰り返す処理を行う。【００１４】段階６では、段階１から段階５ですでに再描画領域の整理が完了しているため、必要に応じて各ウィジェットの描画関数を多くとも一度だけ呼び出して、実際の描画処理を行う。すべての処理対象のウィジェットの再描画領域に対して、下から初めて上まで処理を行った後、段階６は終了となる。【００１５】以上が本発明の具体的な処理の流れである。
【発明の効果】
【００１６】本発明によって、自由領域型を使用できない環境下や実行速度が遅くメモリ容量も少ない環境化においても、複雑なマルチウィンドウＧＵＩの描画を効率的に行うことが可能になる。
【図面の簡単な説明】
【図１】本発明のアルゴリズム
2005100308.tif 000003
【図４】本発明を使用したソフトウェアのイベント処理の流れ
2005100308.tif 000004
【図１１】段階３の処理を打ち切れる場合
【図１２】段階３の処理を打ち切れない場合
2005100308.tif 000005
【図１】
2005100308.tif 000006
【図２】
2005100308.tif 000007
【図３】
2005100308.tif 000008
【図４】
2005100308.tif 000009
【図５】
2005100308.tif 000010
【図６】
2005100308.tif 000011
【図７】
2005100308.tif 000012
【図８】
2005100308.tif 000013
【図９】
2005100308.tif 000014
【図１０】
2005100308.tif 000015
【図１１】
2005100308.tif 000016
【図１２】
2005100308.tif 000017
【図１３】
2005100308.tif 000018
【図１４】
2005100308.tif 000019
【図１５】
2005100308.tif 000020
【図１６】
2005100308.tif 000021
【図１７】
2005100308.tif 000022
【図１８】
2005100308.tif 000023
【手続補正書】
【提出日】平成15年12月22日(2003.12.22)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】本発明は、携帯電話端末やＰＤＡなどの少資源ハードウェア環境において、マルチウィンドウＧＵＩ、特に透過領域を含んだマルチウィンドウＧＵＩを効率的に描画する方式に関するものである。
【背景技術】
【０００２】従来よりマルチウィンドウＧＵＩを描画する方法として以下のものが存在する。
１．再描画領域を自由領域型としてスケジューリングし、自由領域型でクリッピングして描画することで、複雑なウィジェットの重なりや透過領域を処理する方式。
２．１の応用型で、ウィジェット毎にオフスクリーンを持ちなるべく描画回数を減らす方式。
３．再描画の必要が発生した時点で影響するすべてのウィジェットを再描画する方式。
４．３の応用型で、ウィジェット毎にオフスクリーンを持ち、なるべく描画回数を減らす方式。【０００３】
【特許文献１】特開平９−２４４８６４号公報
【発明が解決しようとする課題】
【０００４】従来方法では、
【０００２】で述べた１や２のような自由領域型を使用した再描画領域の管理は、自由領域型を使用できない環境下では使用できない。また
【０００２】で述べた３や４のような頻繁に再描画処理の発生する構造はデバイスの処理速度の面から実用的ではない。更に、
【０００２】で述べた２や４の方法では描画回数をなるべく減らすという効果はあるものの、メモリを多く使用するため、メモリが少ないデバイス上では実用的ではない。
【課題を解決するための手段】
【０００５】上述した課題を解決するため、本発明は、ウィジェット毎に再描画領域を四角形型のみで管理し、それらをスケジューリングし、ウィジェットはオフスクリーンを保持せず、描画処理を一つのタイミングにまとめ、効率的に描画関数を呼び出せるように可視領域と再描画領域を整理した後、各ウィジェットの描画関数を多くとも一度だけ呼び出すようにする。
【発明を実施するための最良の形態】
【０００６】（図４）は本発明を使用したソフトウェアのイベント処理の流れを示したものである。ユーザー操作やその他の処理によって発生したイベントは、ウィジェット１とウィジェット２で処理されるものとする。【０００７】ウィジェット１では関数１と関数２がイベントを処理し、その結果として再描画を必要とするものとする。またウィジェット２では関数１がイベントを処理し再描画を必要とするものとする。【０００８】本発明では再描画が必要になった時点で再描画要求領域をスケジューリングするため、ウィジェット１の関数１とウィジェット１の関数２ではウィジェット１の再描画領域に対してスケジューリングを行う（図２・図３）こととなる。またウィジェット２の関数１では、ウィジェット２の再描画領域に対してスケジューリングを行うこととなる。各ウィジェットの再描画領域は一つの四角形として管理されることとなる。【０００９】（図１）は本発明の具体的な処理の流れを示した図である。段階１では、処理の前段階として、他のウィジェットに隠れていて見えないウィジェットや親のウィジェットの可視領域の外側にあるウィジェットを処理の対象から除外する（図５・図６）。すべてのウィジェットに対して処理を行った後、段階１は終了となる。【００１０】次に、段階２では、他のウィジェットに隠れていて見えない再描画領域や親のウィジェットの可視領域の外側にある再描画領域など、隠れていて見えない再描画領域を処理の対象から除外する（図７・図８）。すべての処理対象のウィジェットに対して処理を行った後、段階２は終了となる。【００１１】段階３では、透過領域を持ったウィジェットが再描画される場合、対象のウィジェットより下にあるウィジェットの再描画も必要になる（図９・図１０）ため、対象の再描画領域を、真下に位置するウィジェットの再描画領域に追加する。一つ真下に位置するウィジェットが不透明かつウィジェットの領域が対象の再描画領域を完全に包含する場合、再描画領域の伝達処理はここで終了することとなる（図１１）。もし、真下に位置するウィジェットが透明である場合や、再描画領域を完全に包含しない場合、更に下に位置するウィジェットにも伝達処理は行われることとなる（図１２）。すべての処理対象のウィジェットに対して、下から初めて上まで処理を行った後、段階３は終了となる。【００１２】次に、段階４では、あるウィジェットの真下のウィジェットで再描画が発生したとき、真上に位置するウィジェットも再描画が必要になる（図１３・図１４）ため、対象の再描画領域を、真上に位置するすべてのウィジェットの再描画領域にも追加する。このことは特に、透過領域を持ったウィジェットの場合顕著であるが、不透明なウィジェットの場合は真下のウィジェットで再描画が発生した場合、自分自身の見た目をコピーして退避させておくなどの手段で描画処理を最適化することも可能である。すべての処理対象のウィジェットに対して、上から初めて下まで処理を行った後、段階４は終了となる。【００１３】段階５では、段階３と段階４を行うことによって新たな再描画領域が発生する（図１５−図１８）可能性があるため、新たな再描画領域が発生しなくなるまで段階３と段階４を繰り返す処理を行う。【００１４】段階６では、段階１から段階５ですでに再描画領域の整理が完了しているため、必要に応じて各ウィジェットの描画関数を多くとも一度だけ呼び出して、実際の描画処理を行う。すべての処理対象のウィジェットの再描画領域に対して、下から初めて上まで処理を行った後、段階６は終了となる。【００１５】以上が本発明の具体的な処理の流れである。
【発明の効果】
【００１６】本発明によって、自由領域型を使用できない環境下や実行速度が遅くメモリ容量も少ない環境化においても、複雑なマルチウィンドウＧＵＩの描画を効率的に行うことが可能になる。
【図面の簡単な説明】
【図１】本発明のアルゴリズム
【図２】四角形型のみで再描画領域をスケジューリングして管理する方法（処理前）
【図３】四角形型のみで再描画領域をスケジューリングして管理する方法（処理後）
【図４】本発明を使用したソフトウェアのイベント処理の流れ
【図５】段階１の処理の効果（処理前）
【図６】段階１の処理の効果（処理後）
【図７】段階２の処理の効果（処理前）
【図８】段階２の処理の効果（処理後）
【図９】段階３の処理の必要性（仮定図）
【図１０】段階３の処理の必要性（予測図）
【図１１】段階３の処理を打ち切れる場合
【図１２】段階３の処理を打ち切れない場合
【図１３】段階４の処理の必要性（仮定図）
【図１４】段階４の処理の必要性（予測図）
【図１５】段階３の処理での再描画領域の変遷（処理前）
【図１６】段階３の処理での再描画領域の変遷（処理後）
【図１７】段階４の処理での再描画領域の変遷（処理後）
【図１８】段階５の処理が必要な状況
【符号の説明】
１    ウィジェット１の再描画領域
２    関数１の再描画要求領域
３    ウィジェット１の領域
４    関数２の再描画要求領域
５    親ウィジェットの可視領域の外にあるウィジェット
６    親ウィジェット
７    他のウィジェットの下に完全に隠れているウィジェット
８    ウィジェット１
９    ウィジェット３
１０    ウィジェット２上の再描画領域
１１    ウィジェット１上の再描画領域
１２    ウィジェット２
１３    ウィジェット１上の画像
１４    ウィジェット２上の画像
１５    ウィジェット２
１６    ウィジェット１
１７    ウィジェット１の再描画領域
１８    ウィジェット１上の新しい画像
１９    ウィジェット１上の画像
２０    ウィジェット３
２１    ウィジェット２
２２    ウィジェット１
２３    ウィジェット１上の再描画領域
２４    ウィジェット２上の画像
２５    ウィジェット４
２６    ウィジェット４上の画像
２７    ウィジェット１上の画像
２８    ウィジェット２上の画像
２９    ウィジェット２
３０    ウィジェット１
３１    ウィジェット２上の再描画領域
３２    ウィジェット３
３３    ウィジェット４
３４    ウィジェット２
３５    ウィジェット２上の再描画領域
３６    ウィジェット３上の再描画領域
３７    ウィジェット１
３８    ウィジェット１上の再描画領域
３９    ウィジェット１上に新しく発生した再描画領域
【手続補正２】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正の内容】
【図１】
2005100308.tif 000024
【図２】
2005100308.tif 000025
【図３】
2005100308.tif 000026
【図４】
2005100308.tif 000027
【図５】
2005100308.tif 000028
【図６】
2005100308.tif 000029
【図７】
2005100308.tif 000030
【図８】
2005100308.tif 000031
【図９】
2005100308.tif 000032
【図１０】
2005100308.tif 000033
【図１１】
2005100308.tif 000034
【図１２】
2005100308.tif 000035
【図１３】
2005100308.tif 000036
【図１４】
2005100308.tif 000037
【図１５】
2005100308.tif 000038
【図１６】
2005100308.tif 000039
【図１７】
2005100308.tif 000040
【図１８】
2005100308.tif 000041