(57)【要約】【課題】レイヤに描かれた図形を他のレイヤに部分ビットマップコピーする際に、図形同士の重複チェック回数を低減し部分ビットマップコピー処理を高速化する。【解決手段】アプリケーションが描画した図形を記憶する複数のレイヤと、レイヤに記憶された描画内容を重ね合わせて表示する表示手段と、複数のレイヤ間で描画内容を転送する描画内容転送手段とを有し、描画内容を転送する際に、レイヤへの描画内容によりレイヤを複数の表示領域に分割し、各表示領域毎に図形をグルーピングすることで、重複領域のチェック回数を減らす。【選択図】  図２
2012177958.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションが描画した図形を記憶する複数のメモリ領域と、メモリ領域に記憶された描画内容を重ね合わせて表示する表示手段と、複数のメモリ領域間で描画内容を転送する描画内容転送手段とを有するグラフィックシステムにおいて、
前記描画内容転送手段は、描画内容を転送する際に、前記メモリ領域へ描画した図形の内容により当該メモリ領域を複数の表示領域に分割し、各表示領域毎に描画された図形をグルーピングし、メモリ領域に描画された図形を他のメモリ領域の描画内容と重ね合わせる際に、前記グルーピングされた図形同士で重複領域のチェックを行い、前記グルーピングされた図形の領域を部分ビットマップコピーするレイヤ分割領域毎転送手段を有することを特徴とするグラフィックシステム。
描画内容転送手段は、レイヤの表示領域別に描画内容を転送するレイヤ分割領域毎転送手段を有することを特徴とする。
また、レイヤ分割領域毎転送手段は、図形描画手段によって描画された図形の領域を求め、図形の描画領域に従って描画レイヤ分割領域を生成するレイヤ分割領域生成手段を有することを特徴とする。
図形や文字を描画する描画手段と、該描画手段で描画した内容を記憶する複数のレイヤと、該レイヤにより記憶された描画内容を表示する表示手段と、複数のレイヤ間で描画内容を転送する描画内容転送手段とを有するグラフィックシステムにおいて、描画内容転送手段は、レイヤの表示領域別に描画内容を転送するレイヤ分割領域毎転送手段を有することを特徴とするグラフィックシステム。
【請求項２】
請求項１のグラフィックシステムにおいて、前記レイヤ分割領域毎転送手段は、前記メモリ領域へ描画した図形の内容により当該メモリ領域を複数の表示領域に分割する際、図形の描画領域に従って生成した表示領域を描画レイヤ分割領域とするレイヤ分割領域生成手段を有することを特徴とするグラフィックシステム。
【請求項３】
請求項２のグラフィックシステムにおいて、前記レイヤ分割領域生成手段は、図形の描画領域から画面Ｘ軸およびＹ軸における描画図形数が最も少ない範囲で複数の表示領域に分割することを特徴とするグラフィックシステム。
【請求項４】
請求項３のグラフィックシステムにおいて、前記レイヤ分割領域生成手段は、図形の描画領域から画面Ｘ軸およびＹ軸における描画図形数のヒストグラムを求めるＸ軸方向ヒストグラム作成手段とＹ軸方向ヒストグラム作成手段とを有することを特徴とするグラフィックシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、グラフィックシステムに関する。
【背景技術】
【０００２】
コンピュータシステム上で動作するグラフィック表示ソフトウェアにおいてはレイヤと呼ばれるメモリ上の描画領域に各描画内容を書き出し、ハードウェア処理でレイヤを合成することにより、複数プロセスによる表示画面を生成している。しかし、組込み機器においてはハードウェアで合成できるレイヤの数には限りがあるため、グラフィック表示ソフトウェアをハードウェア非依存にするために、ハードウェア処理による複数アプリからのレイヤ合成をソフトウェア処理で実現する必要がある。
【０００３】
複数のプロセスの描画内容を合成する方法として、メインメモリ上に各プロセス用仮想レイヤを設けて１ビットずつ合成するという方法がある。しかし、この方法では処理能力の低い組込み機器では演算処理のループに時間がかかる。そのため、あるプロセスの仮想レイヤの図形の領域からコピーすべき領域を求めて、他のプロセスの仮想レイヤへ部分ビットマップコピーすることにより、図形が更新される領域を減らすことで処理時間短縮を図る方法がある。
【０００４】
特許文献１は、２つの図形が重なっている場合、図形の描画領域をメモリに格納し、格納された領域の相互間で重複の有無を判定し、重複する領域部分の描画領域情報を変更して描画することにより、描画処理を行うことが不必要な領域に関して描画処理をスキップして描画処理時間を短縮する。
【０００５】
特許文献２は、２つの図形が重なっている場合、非オーバーラップ領域を検出し、複数の矩形領域に分割してコピーを行うことにより、描画処理を行うことが不必要な領域に関して描画処理をスキップして描画処理時間を短縮する。
【０００６】
特許文献３は、図形と更新領域とが重なる場合にはオブジェクトをクリップ描画し、図形を画面手前方向から順に検索して描画し更新領域リストをアップデートし、更新領域リストは更新領域の始点がＹ座標の小さい順に格納することにより、図形の重ね合わせ描画内容の部分更新においてちらつきを防ぐ。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００１−２８６８０号公報
【特許文献２】特開平７−１４０９５３号公報
【特許文献３】特開２００１−３３１３０３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
特許文献１ないし３は、部分ビットマップコピーにおいて２つの図形が重なる場合、重複領域の二重コピーを防ぐために２つの図形間で領域が重複しているかどうかをチェックしている。
【０００９】
しかし、いずれの特許文献においても重複領域を二重にコピーすることがなくなるものの、図形間での領域の重複チェックを図形数の二乗オーダー分だけ行うことになり、図形が多いと時間がかかる。
【００１０】
本発明は、重複チェック回数を低減し部分ビットマップコピー処理の高速化を行う方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
そこで、図形の領域を部分ビットマップコピーする際に重複領域のチェック回数を減らすため、レイヤへの描画処理に基づいて画面の領域を分割して図形をグルーピングすることにより、領域を跨ぐ図形の数を抑える。
【００１２】
本発明は、図形を描画する図形描画手段と、該図形描画手段で描画した内容を記憶する複数のレイヤと、描画内容記憶手段により記憶された描画内容を表示する表示手段と、複数のレイヤ間で描画内容を転送する描画内容転送手段とを有するグラフィックシステムにおいて、描画内容転送手段は、レイヤの表示領域別に描画内容を転送するレイヤ分割領域毎転送手段を有することを特徴とする。
【００１３】
また、レイヤ分割領域毎転送手段は、図形描画手段によって描画された図形の領域を求め、図形の描画領域に従って描画レイヤ分割領域を生成するレイヤ分割領域生成手段を有することを特徴とする。
【発明の効果】
【００１４】
レイヤ分割領域生成手段を用いて画面の各軸において図形数が最小の区間でレイヤを分割することにより、レイヤ分割領域をまたぐ図形数が少なくなるため、図形間の重複チェック回数が最小限ですむ。
【図面の簡単な説明】
【００１５】
【図１】本実施例におけるグラフィックシステムのハードウェア構成の一例である。
【図２】本実施例におけるグラフィックシステムのブロック構成図の一例を示したものである。
【図３】本実施例におけるＲＡＭ内のデータ構成を示した図である。
【図４】本実施例における描画レイヤから表示レイヤを合成する処理を示した図である。
【図５】本実施例にグラフィックシステム全体の処理フローである。
【図６】本実施例における描画に伴う表示処理のフローチャートである。
【図７】本実施例における描画処理のタイミングチャートである。
【図８】本実施例におけるレイヤ分割領域生成・記憶処理のフローである。
【図９】本実施例におけるレイヤ分割領域チェック処理のフローである。
【図１０】本実施例における描画領域重複チェック処理のフローである。
【図１１】本実施例におけるコピー領域情報生成処理のフローである。
【図１２】本実施例における描画領域情報のデータ構造を示した図である。
【図１３】本実施例におけるレイヤ分割領域情報のデータ構造を示した図である。
【図１４】本実施例における描画領域−レイヤ分割領域対応テーブルを示した図である。
【図１５】本実施例におけるレイヤ分割領域−仮コピー領域対応テーブルを示した図である。
【図１６】本実施例におけるレイヤ分割不可描画領域情報を示した図である。
【図１７】本実施例におけるコピー領域情報を示した図である。
【図１８】本実施例における描画レイヤと描画領域情報，レイヤ分割結果，レイヤ分割領域チェック結果，仮コピー領域作成結果の対応関係を示した図である。
【発明を実施するための形態】
【００１６】
図１は本実施例におけるグラフィックシステムのハードウェア構成の一例を示したものである。グラフィックシステムはＭＰＵ１，システムバス２，ＲＡＭ３，Ｉ／Ｏ４，ＤＵ５，ディスプレイ６から成り立っている。ＭＰＵ１は、システムバス２を介してＲＡＭ３やＩ／Ｏ４とデータ通信を行うことにより、Ｉ／Ｏ４に接続された機器からデータを読み取りＲＡＭ３へデータを一時保存しながら演算処理を行い、Ｉ／Ｏ４に接続された機器へ演算結果を返すものである。Ｉ／Ｏ４はＭＰＵ１の入出力インターフェースであり、キーボード，各種ディスクドライブなどの入出力装置とデータの送受信を行う。ＤＵ５はDisplay Unitの略であり、システムバス２を介してＲＡＭからデータを取得しディスプレイ６に表示するものである。なお、ＤＵ５がＭＰＵ１と一体化した構成となっていても良い。
【００１７】
図２は本実施例におけるグラフィックシステムの構成図を示したものである。グラフィックシステムは、描画内容記憶する複数の描画レイヤ（３４０，３４１，…），各描画レイヤへ描画を行う複数のアプリケーション１（３１１），アプリケーション２（３１２），…，描画手段２０，表示手段２１，描画内容転送手段１０から構成されている。描画手段２０は、表示手段２１によりディスプレイ６へ表示する図形や文字などを、描画データとして描画レイヤ（３４０，３４１，…）へ書き込む。これら描画レイヤ（３４０，３４１，…）は描画手段２０によって描画した内容を記憶する領域である。表示手段２１は表示レイヤ３５０に記憶された描画データを読み出して表示する。描画内容転送手段１０は、複数の描画レイヤから表示レイヤへ描画データを転送する際の処理により、描画レイヤの描画内容を合成したり透過したりする。
【００１８】
アプリケーション１（３１１）や描画手段２０，描画内容転送手段１０はＭＰＵ１で実行され、描画レイヤ１（３４０）や表示レイヤ３５０はＲＡＭ３上に設けられ、表示手段２１がＤＵ５に相当する。
【００１９】
描画内容転送手段１０は、レイヤ分割領域毎転送手段１２とデータ転送手段１１から構成されている。レイヤ分割領域毎転送手段１２は、画面上の領域別に表示手段２１で表示される図形や文字などの描画内容を転送するものである。この画面上の領域をレイヤ分割領域と呼ぶ。データ転送手段１１は、後述するコピー領域情報に従って、ある描画レイヤのデータを別の描画レイヤまたは表示レイヤ３５０へコピーする。
【００２０】
レイヤ分割領域毎転送手段１２は、描画領域収集手段１２１，レイヤ分割領域生成手段１２２，レイヤ分割領域チェック手段１２３，描画領域重複チェック手段１２４，コピー領域生成手段１２５から成り立っている。描画領域収集手段１２１は、描画手段２０によって描画された描画内容を囲む領域座標を求めて描画領域データとして記憶するものである。レイヤ分割領域生成手段１２２は、描画領域収集手段１２１によって求められた描画領域情報から、レイヤを複数の領域に分割した際にその分割境界線における描画内容の数が最小となるようレイヤ分割領域の情報を生成するものである。レイヤ分割領域チェック手段１２３は、それぞれの描画領域データが指し示す描画内容を囲む領域がどのレイヤ分割領域に含まれるかをチェックして後述する描画領域−レイヤ分割領域対応テーブル３７５に記憶する。描画領域重複チェック手段１２４は、レイヤ分割領域チェック手段１２３によって各レイヤ分割領域別に振り分けられた描画領域データについて、２つの描画領域同士の重複をチェックして、後述するレイヤ分割領域−仮コピー領域対応テーブル３８１へ記憶するものである。ここで仮コピー領域とは、レイヤ分割領域において重複した描画領域の和集合による領域を指すものである。コピー領域作成手段１２５は、描画領域重複チェック手段１２４による描画領域同士の重複チェック結果に従って、描画領域が重複した描画内容を囲むコピー領域データ、または重複していない図形を囲むコピー領域データを作成するものである。複数のレイヤ分割領域にまたがっている描画内容については、レイヤ分割領域チェック手段１２３によってその描画内容の描画領域データが後述するレイヤ分割不可描画領域データとして記憶される。コピー領域生成手段１２５は、このレイヤ分割不可描画領域データに従って、レイヤ分割領域−仮コピー領域対応テーブル内の仮コピー領域を１つにマージする。
【００２１】
レイヤ分割領域生成手段１２２は、Ｘ軸方向ヒストグラム作成手段１２２１，Ｙ軸方向ヒストグラム作成手段１２２２，領域分割手段１２２３から成り立っている。Ｘ軸方向ヒストグラム作成手段１２２１およびＹ軸方向ヒストグラム作成手段１２２２は、各レイヤについてその画面上におけるＸ軸方向もしくはＹ軸方向において図形や文字が描画されている数に関するヒストグラムを作成する。領域分割手段１２２３は、Ｘ軸方向ヒストグラム作成手段１２２１およびＹ軸方向ヒストグラム作成手段１２２２において、描画されている図形が最も少ないＸ軸座標範囲およびＹ軸座標範囲の代表点、例えば中点においてレイヤを分割し、レイヤ分割領域を作成する。
【００２２】
図３は本実施例におけるＲＡＭ３に記憶される各種データのデータ構成を示したものである。ＲＡＭ３は、プログラム格納領域３１とデータ格納領域３２から構成されている。プログラム格納領域はＭＰＵ１に読み込まれ実行されるアプリケーション１（３１１），アプリケーション２（３１２）、…の各種アプリケーションプログラムや、描画プログラム２０１が格納されている。アプリケーション１（３１１）は、各描画レイヤ（３４０，３４１，…）へ描画するよう描画プログラム２０１へ指令するプログラムである。描画プログラム２０１は、アプリケーション１（３１１），アプリケーション２（３１２）などからの指示を受け、各描画レイヤ（３４０，３４１，…）へ図形や文字などを描画するプログラムである。描画プログラム２０１がＭＰＵ１で実行されることにより、図２における描画手段２０および描画内容転送手段１０が実現され、これにはグラフィックミドルウェアなどが含まれる。
【００２３】
データ格納領域３２には、複数の描画レイヤ（３４０，３４１，…），表示レイヤ３５０の他に、描画プログラム変数領域３６が記憶されている。描画レイヤ（３４０，３４１，…）は各アプリケーションによって描画される内容を格納する領域である。表示レイヤ３５０は描画レイヤ（３４０，３４１，…）から表示用に転送されたデータを格納する領域である。描画プログラム変数領域３６は、描画プログラム２０１によって使用される変数を格納する領域である。
【００２４】
描画プログラム変数領域３６には、描画レイヤ毎のレイヤ描画情報（３８１，３８２，…）が格納されている。それぞれのレイヤ描画情報（３８１，３８２，…）は、各描画レイヤに描かれた描画内容を転送する際に参照される情報であり、描画領域データが格納された描画領域情報３７１、レイヤ分割領域データが格納されたレイヤ分割領域情報３７２、コピー領域データが格納されたコピー領域情報３７３、仮コピー領域データが格納されたレイヤ分割領域−仮コピー領域対応テーブル（３８１，３８２，…）、描画領域−レイヤ分割領域対応エレメントが格納された描画領域−レイヤ分割領域対応テーブル３７５、レイヤ分割不可描画領域データが格納されたレイヤ分割不可描画領域情報３７６が記憶されている。
【００２５】
図４は、本実施例において２つの描画レイヤに描かれた描画内容から表示レイヤに格納される描画内容を合成する動作を示したものである。本実施例ではアプリケーション１（３１１）の描画先である描画レイヤ１（３４０）の内容を上地とし、アプリケーション２（３１２）の描画先である描画レイヤ２（３４１）の内容を下地とする。アプリケーション１（３１１）とアプリケーション２（３１２）は、描画手段２０に対して図形や文字などを描画するよう要求する。描画手段２０は、アプリケーション１（３１１）が指令した描画内容を描画レイヤ１（３４０）へ、アプリケーション２（３１２）が指令した描画内容を描画レイヤ２（３４１）へ、それぞれ描画する。描画内容転送手段１０は、描画レイヤ２（３４１）のデータを、下地として表示レイヤ３５０へビットマップコピーし、描画レイヤ１（３４０）の非透過領域部分のデータを上地として表示レイヤ３５０へ部分ビットマップコピーする。この部分ビットマップコピー処理とは、図１７に示す、コピー領域情報３７３が指し示す描画レイヤの描画内容を表示レイヤ３５０へコピーする処理である。表示レイヤ３５０に描画された結果は、表示手段２１によってディスプレイ６へ出力画面として表示される。
【００２６】
図５は、本実施例におけるグラフィックシステム全体の処理フローを示したフローチャートである。図５では、図４で説明した動作を前提条件とし、アプリケーション２（３１２）が予め描画レイヤ２（３４１）に何らかの描画を完了している状態で、アプリケーション１（３１１）が描画レイヤ１（３４０）の内容を更新した際の表示処理を想定する。最初にグラフィックシステムでは描画レイヤ１（３４０）への描画処理が行われ、描画レイヤ１（３４０）に描画内容が記憶される（Ｓ１）。レイヤ１描画処理（Ｓ１）が完了すると、アプリケーション１（３１１）は、次に、描画手段２０を介して描画内容転送手段１０へＦｌｕｓｈ要求を送信する。描画内容転送手段１０は、予め描画レイヤ２（３４１）に描画された内容全てを表示レイヤ３５０へ下地画像のデータとしてコピーする（Ｓ２）。その後、描画手段２０は、アプリケーション１（３１１）からのＦｌｕｓｈ要求を受けて、描画内容転送手段１０に部分ビットマップコピー要求を送る。描画内容転送手段１０では、この部分ビットマップコピー要求を受け取ると、コピー領域情報３７３で指定された領域座標に従い、描画レイヤ１（３４０）の内容を表示レイヤ３５０へコピーする（Ｓ３）。その後、描画内容転送手段１０は、表示手段２１に対してＦｌｕｓｈ要求を送信する。表示手段２１では、表示レイヤ３５０をディスプレイ６へ出力し（Ｓ４）、処理が完了する。なお、描画レイヤ２（３４１）の内容を更新した場合は、Ｓ１における処理が描画レイヤ２（３４１）への描画処理となる。
【００２７】
図６は、本実施例のＳ１における描画レイヤ１（３４０）への描画動作に伴う表示処理のフローチャートである。他の描画レイヤへの描画動作の場合も同様である。描画の開始／終了を示す区切りは表示手段２１が表示レイヤ３５０をディスプレイ６へ出力するためにアプリケーション１（３１１）がＦｌｕｓｈ要求を発行するタイミングとする。
【００２８】
アプリケーション１（３１１）は、全ての描画内容について描画手段２０に対し描画要求を行い（Ｓ１０２）、それに対する描画手段２０からのＡｃｋ信号をそれぞれ待つ（Ｓ１０１）。描画手段２０は、アプリケーション１（３１１）からの各描画要求における図形の始点座標，幅，高さなどの描画パラメータを描画内容転送手段１０へ送信する。描画内容転送手段１０では、図１２に後述する描画領域データ３７１２１を算出して描画領域情報３７１へ記憶し（Ｓ１０４）、描画手段２０へＡｃｋ信号を返す。描画領域データ３７１２１の算出では具体的には描画する図形や文字などのＸ座標およびＹ座標についてそれぞれ最小値と最大値を描画パラメータから求め、その最小値と最大値から描画領域の始点座標および幅と高さを求める。
【００２９】
描画内容転送手段１０からＡｃｋ信号を受け取った後、描画手段２０は描画処理を実行して（Ｓ１０６）描画レイヤ１（３４０）へ描画データを書き込み、アプリケーション１（３１１）へＡｃｋ信号を送信する。
【００３０】
図７は、本実施例における描画レイヤ１（３４０）へ描画した際のフローチャートである。描画手段２０から部分ビットマップコピー要求を受信した描画内容転送手段１０では、レイヤ分割領域生成処理を行い（Ｓ３１）、生成したレイヤ分割領域毎にレイヤ分割領域データ３７２２１を生成して、対応する描画レイヤのレイヤ描画情報３６１におけるレイヤ分割領域情報３７２に記憶する。この説明の場合、描画レイヤ１のレイヤ描画情報におけるレイヤ分割領域情報に記憶することになる。以下の説明でも同様の内容となるため、対応する描画レイヤのレイヤ描画情報３６１を対象とすることは省略して説明を行う。
【００３１】
その後、レイヤ分割領域チェック処理（Ｓ３２），描画領域重複チェック処理（Ｓ３３），コピー領域情報生成処理（Ｓ３４）の各処理を行う。そして、コピー領域情報３７３に記憶されている全てのコピー領域データ３７３２１に従って部分ビットマップコピー処理を実行する（Ｓ３６）。全てのコピー領域データ３７３２１について部分ビットマップコピー処理が完了した後、描画内容転送手段１０は、描画手段２０を介してアプリケーション１（３１１）へＡｃｋ信号を送信する（Ｓ３８）ことで処理を完了する。
【００３２】
図８は、本実施例におけるレイヤ分割領域生成処理（Ｓ３１）のフローチャートである。描画内容転送手段１０において、レイヤ分割領域生成手段１２２のＸ軸方向ヒストグラム作成手段１２２１は、描画領域情報３７１の描画領域データ３７１２１から画面Ｘ軸方向のヒストグラムを生成する（Ｓ１０９１）。ヒストグラムは画面Ｘ軸方向における描画内容数のカウントでもよく、描画された図形がヒストグラムの一範囲全てを覆う場合は２カウント，図形の一部がヒストグラムの一範囲を通る場合は１カウントとしてもよい。その後、領域分割手段１２２３は、画面Ｘ軸方向において描画内容数が最小値であるＸ座標範囲の中点を分割線とする（Ｓ１０９２）。範囲は中点でなくても始点でも終点でも構わないものとする。また、複数範囲が最小値を有する場合は分割線をその分だけ増やす。一方、最小値が一定値以上の場合は分割しないことにする。
【００３３】
その後、Ｙ軸方向ヒストグラム作成手段１２２２は、同様にして描画領域情報３７１の描画領域データ３７１２１から画面Ｙ軸方向のヒストグラムを作成する（Ｓ１０９３）。そして、領域分割手段１２２３は画面Ｙ軸方向において描画内容数が最小値であるＹ座標範囲の中点を分割線とする（Ｓ１０９４）。領域分割手段１２２３は、Ｘ軸の分割線とＹ軸の分割線からレイヤ分割領域を計算して（Ｓ１０９５）それぞれのレイヤ分割領域データを生成し、これをレイヤ分割領域情報３７２に記憶して処理を完了する。
【００３４】
図１３は、本実施例におけるレイヤ分割領域情報３７２のデータ構造を示した図である。レイヤ分割領域情報３７２はレイヤ分割領域生成手段１２２におけるレイヤ分割領域生成処理（Ｓ３１）によって生成され、描画領域データを描画レイヤ上の表示領域によりグルーピングするものである。このレイヤ分割領域情報３７２は、レイヤ分割領域数３７２１およびその分のレイヤ分割領域データ３７２２１から成り立っている。各レイヤ分割領域データ３７２２１は、レイヤ分割領域ＩＤ３７２７と領域座標３７２４から成り立っている。領域座標３７２４には、レイヤ分割領域の始点Ｘ座標３７２７および始点Ｙ座標３７２８，レイヤ分割領域の幅３７２５と高さ３７２６が含まれる。
【００３５】
図９は、本実施例におけるレイヤ分割領域チェック処理（Ｓ３２）のフローチャートである。以下では、前述のように、対応する描画レイヤのレイヤ描画情報３６１を対象とすることは省略して説明を行う。レイヤ分割領域チェック手段１２３は、対応する描画レイヤのレイヤ描画情報３６１における描画領域情報３７１に記憶されている全ての描画領域データについてのループ処理を開始する（Ｓ１１０１）。
【００３６】
図１２に、本実施例における描画領域情報３７１のデータ構造を示す。描画領域情報３７１には、対応する描画レイヤに描画された図形や文字などを囲む領域座標および種類を格納した描画領域データが記憶されている。この描画領域情報３７１は、描画領域収集手段１２１の描画領域算出処理（Ｓ１０４）によって生成される。描画領域情報３７１は、描画領域数３７１１およびその分の描画領域に対応する描画領域データ３７１２１から成り立っている。各描画領域データ３７１２１は、描画領域ＩＤ３７１３，描画種類３７１４，領域座標３７１５から成り立っている。描画領域ＩＤ３７１３は、描画対象を区別するためのＩＤを示すものであり、描画された順番にＩＤが割り当てられる。描画種類３７１４は、描画要求により描画された画像，文字，矩形，多角形などの描画された対象の種類を表す情報である。領域座標３７１５は、描画内容を囲む矩形の領域を示す情報であり、その領域の始点となるＸ座標３７１６およびＹ座標３７１８，領域の幅３７１７と高さ３７１９の値が含まれる。
【００３７】
図９の説明に戻り、ここで描画領域数は、アプリケーション１（３０）がＦｌｕｓｈ要求を出してから次のＦｌｕｓｈ要求が出されるまでに描画要求（Ｓ１０２）を行った数とする。次にレイヤ分割領域チェック手段１２３は、全てのレイヤ領域についてのループ処理を開始する（Ｓ１１０２）。ここでレイヤ分割領域情報３７１に格納されているレイヤ分割領域データ３７２２１の内、レイヤ分割領域数３７２１で指定されるレイヤ分割領域について処理が行われる。レイヤ分割領域チェック手段１２３は、Ｓ１１０１のループで選択されている描画領域の描画領域データ３７１２１の指し示す領域座標３７１５が、Ｓ１１０２のループで処理対象としているレイヤ分割領域のレイヤ分割領域データ３７２２１の指し示す領域座標３７２４上に存在するかどうかを判定し（Ｓ１１０３）、もし存在していれば描画領域−レイヤ分割領域対応テーブル３７５に、描画領域−レイヤ分割領域対応エレメント３７５２１として描画領域ＩＤ３７５３とレイヤ分割領域ＩＤ３７５４を登録する（Ｓ１１０４）。存在していない場合はレイヤ分割領域に関するループの終端Ｓ１１０７へ飛ぶ。
【００３８】
図１４に、本実施例における描画領域−レイヤ分割領域対応テーブル３７５のデータ構造を示す。描画領域−レイヤ分割領域対応テーブル３７５は、どのレイヤ分割領域にどの描画領域が含まれているかという対応関係を記憶している。描画領域−レイヤ分割領域対応テーブル３７５は、描画領域−レイヤ分割領域対応数３７５１、およびその分の描画領域−レイヤ分割領域対応エレメント３７５２１から成り立っている。描画領域−レイヤ分割領域対応数３７５１は描画領域とその描画領域を含むレイヤ分割領域の組合せの数である。描画領域−レイヤ分割領域対応エレメント３７５２１は、描画領域ＩＤ３７５３とその描画領域を含むレイヤ分割領域ＩＤ３７５４から成り立っている。
【００３９】
次に、レイヤ分割領域チェック手段１２３は、描画領域−レイヤ分割領域対応テーブル３７５を用いて、描画領域の存在するレイヤ分割領域が複数個あるかどうかをチェックし（Ｓ１１０５）、もし複数個あればその描画領域は、単一のレイヤ分割領域に対応しない、即ちレイヤ分割ができない描画領域であるとして、レイヤ分割不可描画領域情報３７６にその描画領域ＩＤとレイヤ分割領域ＩＤを登録し（Ｓ１１０６）レイヤ分割領域に関するループの終端Ｓ１１０７へ進む。もし描画領域の存在するレイヤ分割領域が複数個無い場合はレイヤ分割領域に関するループの終端Ｓ１１０７へ飛ぶ。
【００４０】
図１６に、本実施例におけるレイヤ分割不可描画領域情報３７６のデータ構造を示す。レイヤ分割不可描画領域情報３７６とは、複数のレイヤ分割領域にまたがって描画される描画領域を記憶したデータである。レイヤ分割不可描画領域情報３７６は、レイヤ分割領域生成手段１２２のレイヤ分割領域チェック処理Ｓ３２によって生成され、レイヤ分割不可描画領域数３７６１とその分のレイヤ分割不可描画領域データ３７６２１から成り立っている。各レイヤ分割不可描画領域データ３７６２１は、複数のレイヤ分割領域にまたがって描画される描画領域の描画領域ＩＤ３７６３、その描画領域がまたがって描画されているレイヤ分割領域数３７６４とそのレイヤ分割領域のレイヤ分割領域ＩＤ３７６５から成り立っている。
【００４１】
全てのレイヤ分割領域に関してループ処理が完了した後は描画領域に関するループの終端Ｓ１１０８へ進む。全ての描画領域に関してループが完了することでレイヤ分割領域チェック処理Ｓ３２は完了する。
【００４２】
図１０は、本実施例における描画領域重複チェック処理Ｓ３３のフローチャートである。描画領域重複チェック手段１２４は、レイヤ分割領域情報３７２に記録されている全てのレイヤ分割領域データ３７２２１についてのループ処理を開始する（Ｓ１１１０）。次に描画領域重複チェック手段１２４は、描画領域−レイヤ分割領域対応テーブル３７５を用いて、ループ内で処理対象としているレイヤ分割領域のレイヤ分割領域ＩＤと一致する描画領域−レイヤ分割領域対応エレメントを探して、その描画領域ＩＤ３７５３の配列および描画領域数を求める（Ｓ１１１１）。その後、レイヤ分割領域内の描画領域についてのループ処理を開始する（Ｓ１１１２）。このループ内で現在の描画領域を描画領域（ｉ）とする。このｉは１からレイヤ分割領域内の描画領域数までの値となる。
【００４３】
次に、レイヤ分割領域内の別の描画領域情報についてのループ処理を開始する（Ｓ１１１３）。このループ内で処理対象とする描画領域を描画領域（ｊ）とし、‘ｉ’と‘ｊ’は等しくないものとする。このループの一番内側では、描画領域（ｉ）の描画領域データと、描画領域（ｊ）の描画領域データを用いて、描画領域（ｉ）と描画領域（ｊ）が重複しているかどうかをチェックする（Ｓ１１１４）。もし重複していれば、レイヤ分割領域−仮コピー領域対応テーブル３８１の、対象としているレイヤ分割領域のレイヤ分割領域ＩＤに対応する領域に、この描画領域（ｉ）と描画領域（ｊ）の組み合わせが未登録であれば、描画領域（ｉ）と描画領域（ｊ）の２つの描画領域の描画領域ＩＤを仮コピー領域データ３８１３１として登録し（Ｓ１１１８）、描画領域（ｉ）のループ終端Ｓ１１１７へ飛ぶ。
【００４４】
図１５に、本実施例におけるレイヤ分割領域−仮コピー領域対応テーブル３８１のデータ構造を示す。レイヤ分割領域−仮コピー領域対応テーブル３８１は、どの描画領域が仮コピー領域としてまとめられるかを示したデータである。レイヤ分割領域内で重複している複数の描画内容を囲む矩形領域、およびレイヤ分割領域内で全く重複していない描画内容を囲む矩形領域について、レイヤ分割領域内における重複チェックの時点ではレイヤ分割領域をまたがる描画内容を考慮していないため、これを仮コピー領域として登録する。レイヤ分割領域−仮コピー領域対応テーブル３８１は、レイヤ分割領域毎に用意されており、レイヤ分割領域ＩＤ３８１１，レイヤ分割領域内仮コピー領域数３８１２，複数の仮コピー領域データ３８１３１から成り立っている。仮コピー領域データ３８１３１は、仮コピー領域データが登録される際に付与される仮コピー領域を区別する識別情報である仮コピー領域ＩＤ３８１４，仮コピー領域内描画領域数３８１５，仮コピー領域が囲む描画内容の描画領域ＩＤ３８１６から成り立っている。仮コピー領域が重複した複数の描画内容を囲む矩形領域となる場合には、複数の描画領域ＩＤが１つの仮コピー領域データ３８１３１に格納される。
【００４５】
Ｓ１１１４のチェックで描画領域（ｉ）と描画領域（ｊ）が重複していなければ、描画領域（ｊ）のループ終端Ｓ１１１５へ進む。全ての描画領域（ｊ）についてのループが完了した場合、描画領域（ｉ）は対象としているレイヤ分割領域内では他の描画領域と重複していないことになり、レイヤ分割領域−仮コピー領域対応テーブル３８１の対象としているレイヤ分割領域のレイヤ分割領域ＩＤに対応する領域に、この描画領域（ｉ）の描画領域ＩＤを仮コピー領域データ３８１３１として登録し（Ｓ１１１６）、描画領域（ｉ）のループ終端Ｓ１１１７へ飛ぶ。
【００４６】
全ての描画領域（ｉ）に関してループ処理が完了した後は、レイヤ分割領域のループ終端Ｓ１１１９へ飛ぶ。全てのレイヤ分割領域に関してループが完了したことをもって描画領域重複チェック処理Ｓ３３は処理を完了する。
【００４７】
図１１は、本実施例におけるコピー領域情報生成処理Ｓ３４のフローチャートである。コピー領域生成手段１２５は、まず、複数のレイヤ分割領域にまたがる描画領域に関して、仮コピー領域を１つに纏める処理を行う。レイヤ分割不可描画領域情報３７６内のレイヤ分割不可描画領域データ３７６２１について、レイヤ分割不可描画領域数３７６１回数のループ処理を開始する（Ｓ１１２０１）。ここで現在処理対象としているレイヤ分割不可描画領域データ３７６２１の描画領域ＩＤ３７６３の値をｋとする。
【００４８】
次に、レイヤ分割領域−仮コピー領域対応テーブル３８１の中から、この現在処理対象としているレイヤ分割不可描画領域データ３７６２１における最初のレイヤ分割領域ＩＤに対応した仮コピー領域データ３８１３１を検索し、描画領域ＩＤの値がｋである描画領域ＩＤ３８１６を含む仮コピー領域データ３８１３１の仮コピー領域ＩＤをｈ１として記憶しておく（Ｓ１１２０２）。これが描画領域ＩＤ＝ｋの描画領域に対応する仮コピー領域の基となる。以下、この仮コピー領域ＩＤ＝ｈ１に対応する仮コピー領域を仮コピー領域（ｈ１）と表すことにする。
【００４９】
次に、レイヤ分割不可描画領域データ３７６２１における全てのレイヤ分割領域ＩＤに対応したレイヤ分割領域に関するループを開始する（Ｓ１１２０３）。そして、レイヤ分割領域−仮コピー領域対応テーブル３８１の内、ループ処理で対象としているレイヤ分割領域に含まれる仮コピー領域データ３８１３１に関するループ処理を開始する（Ｓ１１２０４）。ここでこのループ処理で処理対象とする仮コピー領域の仮コピー領域ＩＤ３８１４をｈとし、この仮コピー領域を仮コピー領域（ｈ）と表すことにする。ｈの値は、１からレイヤ分割領域内仮コピー領域数３８１２の値までとなる。
【００５０】
次に、仮コピー領域（ｈ）の仮コピー領域データ３８１３内に記憶されている描画領域に関するループ処理を開始する（Ｓ１１２０５）。このループ処理で現在処理対象としている描画領域の描画領域ＩＤ３８１６の値をｇとし、この描画領域を描画領域（ｇ）と表す。このｇは、１から仮コピー領域内描画領域数３８１５の値までとなる。
【００５１】
そしてレイヤ分割不可描画領域データの描画領域ＩＤ３７６３の値ｋが、仮コピー領域（ｈ）内の描画領域ＩＤ３８１６の値ｇと一致するかどうかを判定する（Ｓ１１２０６）。ｋとｇの値が一致した場合には、仮コピー領域ｈを仮コピー領域ｈ１にマージして、仮コピー領域ｈを消去し（Ｓ１１２０９）、レイヤ分割領域のループの終端Ｓ１１２１０へ飛ぶ。このマージ処理では、仮コピー領域（ｈ）の仮コピー領域データに含まれる描画領域ＩＤが仮コピー領域（ｈ１）に重複しないように追加される処理となる。
【００５２】
一方、ｋとｇの値が一致しない場合は、描画領域（ｇ）のループの終端Ｓ１１２０７へ進む。全ての描画領域（ｇ）に関してループが完了した後、仮コピー領域（ｈ）のループの終端Ｓ１１２０８へ進む。全ての仮コピー領域（ｈ）に関してループが完了した後は、レイヤ分割領域のループの終端Ｓ１１２１０へ進む。そして全てのレイヤ分割領域に関してループが完了した後、レイヤ分割不可描画領域データのループの終端Ｓ１１２１１へ進む。全てのレイヤ分割不可描画領域データに関してループが完了すると、レイヤ分割領域を跨ぐ描画領域についても、いずれか１つの仮コピー領域に纏められたことになる。
【００５３】
この後、コピー領域生成手段１２５は、全てのレイヤ分割領域についてのループ処理を開始する（Ｓ１１２１２）。ここでレイヤ分割領域−仮コピー領域対応テーブル３８１を参照し、レイヤ分割領域ＩＤ３８１１ごとに、仮コピー領域データ３８１３１に関するループを開始する（Ｓ１１２１３）。このループ内では、仮コピー領域データ３８１３１内の描画領域ＩＤ３８１６に対応する描画領域の集合から、これら全ての描画領域を囲み、図１７にて後述されるコピー領域データ３７３２１を求める（Ｓ１１２１４）。具体的には全ての描画領域に関してＸ座標およびＹ座標についてそれぞれ最小値と最大値を求め、その最小値と最大値から描画領域の始点座標および幅と高さを求める。そして求めた各コピー領域データ３７３２１に対してコピー領域ＩＤ３７３３を付与し（Ｓ１１２１５）、仮コピー領域に関するループの終端Ｓ１１２１６へ進む。全ての仮コピー領域に関してループが完了した後、レイヤ分割領域のループの終端Ｓ１１２１７へ進む。全てのレイヤ分割領域に関してループが完了したことをもって、コピー領域情報生成処理Ｓ３４を完了とする。
【００５４】
図１７に、本実施例におけるコピー領域情報３７３のデータ構造を示す。コピー領域情報３７３は、描画内容をコピーする際に互いに重なり合う描画内容を囲む矩形の情報を格納するものであり、コピー領域数３７３１と各コピー領域に対応したコピー領域データ３７３２１から成り立っている。コピー領域データ３７３２１は、コピー領域ＩＤ３７３３，領域座標３７３４、そしてそのコピー領域に囲まれている描画領域の図形が描画されている最初のレイヤ分割領域のレイヤ分割領域ＩＤ３７３９から成り立っている。領域座標３７３４はコピー領域の始点Ｘ座標３７３７および始点Ｙ座標３７３８、及びコピー領域の幅３７３５と高さ３７３６の値が含まれる。
【００５５】
以上の処理により生成したコピー領域情報を用いて描画レイヤから表示レイヤへ部分ビットマップコピーを行う際、描画レイヤにおける表示の変更範囲が容易に判定でき、その範囲の中で描画図形の重複を判定すればよいため、重複判定の処理負荷を低減し、部分ビットマップコピー処理を高速に行うことが可能となる。
【００５６】
図１８は本実施例における、描画レイヤへの描画と描画領域情報，レイヤ分割結果，レイヤ分割領域チェック結果，仮コピー領域作成結果との対応関係を示した図である。描画レイヤには描画内容（Ｆ０１〜Ｆ１６）が記憶される。その際に描画内容転送手段１０は、描画領域情報として描画内容（Ｆ０１〜Ｆ１６）に対応して描画領域（ＦＲ０１〜ＦＲ１６）の描画領域データを生成する。描画領域情報３７１における描画領域（ＦＲ０１〜ＦＲ１６）の描画領域データから、画面のＸ軸およびＹ軸に対する画像の描画数を求め、その中から描画数が最小となるＸ軸またはＹ軸の範囲の中点を点線で表記するような境界線で分割し、境界線左上・右上・左下・右下をそれぞれ［１］，［２］，［３］，［４］とする４つのレイヤ分割領域を作成する。
【００５７】
次にレイヤ分割領域チェックを行い、描画領域（ＦＲ０１〜ＦＲ１６）がそれぞれどのレイヤ分割領域に含まれるかをチェックする。例えばＦＲ１４の場合は［１］、ＦＲ０１の場合は［２］、ＦＲ１５は［３］、ＦＲ１６は［４］の各レイヤ分割領域にグルーピングされる。さらにグルーピングされた描画領域は、レイヤ分割領域毎に重複チェックがなされて仮コピー領域‘［１］−０１’，‘［２］−０１’，…に集約される。例えばＦＲ０２とＦＲ０３はＦＲ０１と重複しているため、ＦＲ０１とＦＲ０２とＦＲ０３から仮コピー領域‘［２］−０１’が作成される。さらに仮コピー領域の中に複数のレイヤ分割領域をまたがる描画領域があった場合、仮コピー領域が集約されている。そして集約された仮コピー領域からコピー領域が設定される。描画内容転送手段１０はこのコピー領域に従って描画レイヤの内容を表示レイヤにコピーする。
【００５８】
以上のようにして、本発明では、画面表示が変わり、Ｘ軸における図形数とＹ軸における図形数の分布が変化するなどのように描画内容が逐次変化する場合、レイヤ分割領域が固定であれば描画内容が複数のレイヤ分割領域をまたがることになり、それだけ重複チェック回数が増えてしまうのに対し、本発明ではレイヤ分割領域を描画内容に応じて変えることにより、複数のレイヤ分割領域をまたがる描画数を最小限にすることができ、描画領域間の重複チェック回数を減らすことが可能である。これにより、部分ビットマップコピー処理を軽減し、表示の更新を滑らかに行うことが可能となる。
【符号の説明】
【００５９】
１  ＭＰＵ
２  システムバス
３  ＲＡＭ
４  Ｉ／Ｏ
５  ＤＵ
６  ディスプレイ
１０  描画内容転送手段
１１  データ転送手段
１２  レイヤ分割領域毎転送手段
２０  描画手段
２１  表示手段
３１  プログラム格納領域
３２  データ格納領域
３６  描画プログラム変数領域
１２１  描画領域収集手段
１２２  レイヤ分割領域生成手段
１２３  レイヤ分割領域チェック手段
１２４  描画領域重複チェック手段
１２５  コピー領域生成手段
３１１  アプリケーション１
３１２  アプリケーション２
３４０  描画レイヤ１
３４１  描画レイヤ２
３５０  表示レイヤ
３７１  描画領域情報
３７２  レイヤ分割領域情報
３７３  コピー領域情報
３８１  レイヤ分割領域−仮コピー領域対応テーブル
３７６  レイヤ分割不可描画領域情報
１２２１  Ｘ軸方向ヒストグラム作成手段
１２２２  Ｙ軸方向ヒストグラム作成手段
１２２３  領域分割手段
【図１】
2012177958.tif 000003
【図２】
2012177958.tif 000004
【図３】
2012177958.tif 000005
【図４】
2012177958.tif 000006
【図５】
2012177958.tif 000007
【図６】
2012177958.tif 000008
【図７】
2012177958.tif 000009
【図８】
2012177958.tif 000010
【図９】
2012177958.tif 000011
【図１０】
2012177958.tif 000012
【図１１】
2012177958.tif 000013
【図１２】
2012177958.tif 000014
【図１３】
2012177958.tif 000015
【図１４】
2012177958.tif 000016
【図１５】
2012177958.tif 000017
【図１６】
2012177958.tif 000018
【図１７】
2012177958.tif 000019
【図１８】
2012177958.tif 000020