(57)【要約】【課題】記憶容量を削減したバッファを用いて正常に描画可能となる確度を向上させること。【解決手段】描画装置１０１は、分割領域ＤＡＲ＿１〜ＤＡＲ＿４に対応して各分割領域に描画される一部または全部の図形の図形情報ＧＩＮＦを特定する。次に、描画装置１０１は、図形情報ＧＩＮＦ＿１〜ＧＩＮＦ＿３のデータサイズに基づいて、分割領域ＤＡＲに描画される一部または全部の図形の図形情報の合計データサイズを分割領域ＤＡＲ＿１〜ＤＡＲ＿４に対応して算出する。続けて、描画装置１０１は、バッファ１０２に収まるように、算出した図形情報の合計データサイズを用いて、分割領域ＤＡＲ＿１〜ＤＡＲ＿４から描画対象となる図形の描画先となる分割領域ＤＡＲ＿１を選択する。次に、描画装置１０１は、選択した分割領域ＤＡＲ＿１に描画される図形の図形情報ＧＩＮＦ＿１〜ＧＩＮＦ＿３をバッファ１０２に書き込んで、分割領域ＤＡＲ＿１の画像を生成する。【選択図】図１
2014110036.tif 000002
【特許請求の範囲】
【請求項１】
描画領域に描画される図形の頂点の座標位置を含む図形情報を取得する取得部と、
前記取得部によって取得された前記図形情報に基づいて、前記描画領域を分割した分割領域群のうちの各々の分割領域に対応して、前記各々の分割領域に描画される一部または全部の図形の図形情報を特定する特定部と、
前記図形情報のデータサイズに基づいて、前記特定部によって特定された前記各々の分割領域に描画される一部または全部の図形の図形情報の合計データサイズを、前記各々の分割領域に対応して算出する算出部と、
前記取得部によって取得された前記図形情報のうちの描画対象となる図形の図形情報の記憶先となる記憶領域のデータ容量と、前記算出部によって前記各々の分割領域に対応して算出された前記図形情報の合計データサイズとに基づいて、前記分割領域群から前記描画対象となる図形の描画先となる分割領域を選択する選択部と、
前記選択部によって選択された前記描画先となる分割領域に描画される図形の図形情報を前記記憶領域に書き込む書込部と、
前記書込部によって前記記憶領域に書き込まれた前記図形情報に基づいて、前記描画先となる分割領域の画像を生成する生成部と、
を有することを特徴とする描画装置。
【請求項２】
前記取得部は、
前記描画領域に描画される図形に影響を与える命令を取得し、
前記算出部は、
前記取得部によって取得された前記命令に基づいて、前記命令の合計データサイズを算出し、
前記選択部は、
前記記憶領域のデータ容量と、前記算出部によって前記各々の分割領域に対応して算出された前記図形情報の合計データサイズと、前記算出部によって算出された前記命令の合計データサイズとに基づいて、前記分割領域群から前記描画対象となる図形の描画先となる分割領域を選択し、
前記書込部は、
前記選択部によって選択された前記描画先となる分割領域に描画される図形の図形情報と前記命令とを前記記憶領域に書き込むことを特徴とする請求項１に記載の描画装置。
【請求項３】
前記特定部は、
前記取得部によって取得された図形情報に基づいて、前記描画領域の一部である第１の分割領域と、前記描画領域の一部または全部であり前記第１の分割領域を含み前記第１の分割領域より大きい第２の分割領域を含む分割領域群のうちの各々の分割領域に対応して、前記各々の分割領域に描画される一部または全部の図形の図形情報を特定し、
前記選択部は、
前記記憶領域のデータ容量と、前記算出部によって前記第１の分割領域に対応して算出された前記図形情報の合計データサイズと、前記算出部によって前記第２の分割領域に対応して算出された前記図形情報の合計データサイズとに基づいて、前記描画先となる分割領域の候補が前記第１の分割領域と前記第２の分割領域となる場合、前記第２の分割領域を前記図形の描画先となる分割領域として選択することを特徴とする請求項１または２に記載の描画装置。
【請求項４】
前記選択部は、
前記記憶領域のデータ容量と、前記算出部によって前記各々の分割領域に対応して算出された前記合計データサイズとに基づいて、前記分割領域群のうちの前記選択部によって選択された前記描画先となる分割領域と前記描画先となる分割領域に含まれる分割領域とを除く残余の分割領域から前記描画対象となる図形の新たな描画先となる分割領域を選択し、
前記書込部は、
前記生成部によって前記描画先となる分割領域の画像が生成された結果、前記選択部によって選択された前記新たな描画先となる分割領域に描画される図形の図形情報を前記記憶領域に書き込み、
前記生成部は、
前記書込部によって前記記憶領域に書き込まれた前記図形情報に基づいて、前記新たな描画先となる分割領域の画像を生成することを特徴とする請求項１〜３のいずれか一つに記載の描画装置。
【請求項５】
コンピュータが、
描画領域に描画される図形の頂点の座標位置を含む図形情報を取得し、
取得した前記図形情報に基づいて、前記描画領域を分割した分割領域群のうちの各々の分割領域に対応して、前記各々の分割領域に描画される一部または全部の図形の図形情報を特定し、
前記図形情報のデータサイズに基づいて、特定した前記各々の分割領域に描画される一部または全部の図形の図形情報の合計データサイズを、前記各々の分割領域に対応して算出し、
取得した前記図形情報のうちの描画対象となる図形の図形情報の記憶先となる記憶領域のデータ容量と、前記各々の分割領域に対応して算出した前記図形情報の合計データサイズとに基づいて、前記分割領域群から前記描画対象となる図形の描画先となる分割領域を選択し、
選択した前記描画先となる分割領域に描画される図形の図形情報を前記記憶領域に書き込み、
前記記憶領域に書き込んだ前記図形情報に基づいて、前記描画先となる分割領域の画像を生成する、
処理を実行することを特徴とする描画方法。
【請求項６】
コンピュータに、
描画領域に描画される図形の頂点の座標位置を含む図形情報を取得し、
取得した前記図形情報に基づいて、前記描画領域を分割した分割領域群のうちの各々の分割領域に対応して、前記各々の分割領域に描画される一部または全部の図形の図形情報を特定し、
前記図形情報のデータサイズに基づいて、特定した前記各々の分割領域に描画される一部または全部の図形の図形情報の合計データサイズを、前記各々の分割領域に対応して算出し、
取得した前記図形情報のうちの描画対象となる図形の図形情報の記憶先となる記憶領域のデータ容量と、前記各々の分割領域に対応して算出した前記図形情報の合計データサイズとに基づいて、前記分割領域群から前記描画対象となる図形の描画先となる分割領域を選択し、
選択した前記描画先となる分割領域に描画される図形の図形情報を前記記憶領域に書き込む、
処理を実行させることを特徴とする描画プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、描画装置、描画方法、および描画プログラムに関する。
【背景技術】
【０００２】
従来、描画面の描画領域を分割した分割領域ごとに描画を行う技術がある。たとえば、要求クリップサイズの方が使用可能クリップサイズより大きい際に、カレント白黒イメージ描画命令を分割白黒イメージ描画命令に分割し、カレントカラーイメージ描画命令を分割白黒イメージ命令に対応する領域で分割する技術がある。また、１ページ分の描画命令を複数のバンドに分割し、バンドごとに順次バンド高さを仮決定して、閾値以下となるようにバンド高さを決定して、１ページ分のディスプレイリストを複数のバンドに振り分ける技術がある。さらに、描画すべき描画範囲情報を複数の領域に分けて登録された各描画範囲情報と、アプリケーションプログラムからの印刷命令に基づき中間言語を展開されたビットマップデータとに基づき、印刷装置への印刷命令を生成して印刷装置に送出する技術がある。さらに、アプリケーションプログラムの描画メモリ領域を確保できない際に、優先アプリケーションプログラムの描画メモリ領域を確保し、確保した描画メモリ領域を差し引いた値に応じて他のアプリケーションプログラムの描画メモリ領域を確保する技術がある。（たとえば、下記特許文献１〜４を参照。）
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−０７９９３４号公報
【特許文献２】特開２０００−２３８３４９号公報
【特許文献３】特開２００１−０４７６７３号公報
【特許文献４】特開２００９−２１２８２６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来技術によれば、分割領域ごとに画像を生成すると、描画命令や画像を一時記憶するバッファの記憶容量を削減することができるが、記憶容量を削減したバッファでは全ての描画命令を書き込めない場合があり、画像を正常に描画することが難しい。
【０００５】
１つの側面では、本発明は、記憶容量を削減したバッファを用いて正常に描画可能となる確度を向上させることができる描画装置、描画方法、および描画プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の一側面によれば、描画領域に描画される図形の頂点の座標位置を含む図形情報を取得し、取得した図形情報に基づいて、描画領域を分割した分割領域群のうちの各々の分割領域に対応して、各々の分割領域に描画される一部または全部の図形の図形情報を特定し、図形情報のデータサイズに基づいて、特定した各々の分割領域に描画される一部または全部の図形の図形情報の合計データサイズを、各々の分割領域に対応して算出し、取得した図形情報のうちの描画対象となる図形の図形情報の記憶先となる記憶領域のデータ容量と、各々の分割領域に対応して算出した図形情報の合計データサイズとに基づいて、分割領域群から描画対象となる図形の描画先となる分割領域を選択し、選択した描画先となる分割領域に描画される図形の図形情報を記憶領域に書き込み、記憶領域に書き込まれた図形情報に基づいて、描画先となる分割領域の画像を生成する描画装置、描画方法、および描画プログラムが提案される。
【発明の効果】
【０００７】
本発明の一態様によれば、記憶容量を削減したバッファを用いて正常に描画可能となる確度を向上させるという効果を奏する。
【図面の簡単な説明】
【０００８】
【図１】図１は、実施の形態１にかかる描画装置の動作例を示す説明図である。
【図２】図２は、コンピュータシステムのハードウェア構成例を示すブロック図である。
【図３】図３は、描画装置の機能構成例を示すブロック図である。
【図４】図４は、図形情報分割領域選択部の詳細を示すブロック図である。
【図５】図５は、頂点情報の記憶内容の一例を示す説明図である。
【図６】図６は、実施の形態１にかかる図形情報の記憶内容の一例を示す説明図である。
【図７】図７は、図形情報サイズリストの記憶内容の一例を示す説明図である。
【図８】図８は、実施の形態１にかかる図形情報サイズリストの更新例を示す説明図（その１）である。
【図９】図９は、実施の形態１にかかる図形情報サイズリストの更新例を示す説明図（その２）である。
【図１０】図１０は、実施の形態１にかかる図形情報サイズリストの更新例を示す説明図（その３）である。
【図１１】図１１は、実施の形態１にかかる図形情報サイズリストの更新例を示す説明図（その４）である。
【図１２】図１２は、実施の形態１にかかる描画処理手順の一例を示すフローチャート（その１）である。
【図１３】図１３は、実施の形態１にかかる描画処理手順の一例を示すフローチャート（その２）である。
【図１４】図１４は、実施の形態１にかかるオーバーフロー時の描画処理手順の一例を示すフローチャートである。
【図１５】図１５は、実施の形態２にかかる図形情報の記憶内容の一例を示す説明図である。
【図１６】図１６は、実施の形態２にかかる図形情報サイズリストの更新例を示す説明図（その１）である。
【図１７】図１７は、実施の形態２にかかる図形情報サイズリストの更新例を示す説明図（その２）である。
【図１８】図１８は、実施の形態２にかかる図形情報サイズリストの更新例を示す説明図（その３）である。
【図１９】図１９は、実施の形態２にかかる描画処理手順の一例を示すフローチャート（その１）である。
【図２０】図２０は、実施の形態２にかかるオーバーフロー時の描画処理手順の一例を示すフローチャート（その１）である。
【図２１】図２１は、実施の形態２にかかるオーバーフロー時の描画処理手順の一例を示すフローチャート（その２）である。
【発明を実施するための形態】
【０００９】
以下に添付図面を参照して、開示の描画装置、描画方法、および描画プログラムの実施の形態を詳細に説明する。
【００１０】
（実施の形態１）
図１は、実施の形態１にかかる描画装置の動作例を示す説明図である。描画装置１０１は、コンピュータシステムに含まれるコンピュータである。具体的に、描画装置１０１は、コンピュータシステムが実行するアプリケーションプログラムが実行されることにより発生した描画命令を実行し、実行結果となる画像を出力する。コンピュータシステムは、出力された画像をコンピュータシステムの表示面に表示する。コンピュータシステムについては、図２にて後述する。たとえば、描画装置１０１は、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）等である。アプリケーションプログラムは、たとえば、３次元画像を取り扱うソフトウェアである。アプリケーションプログラムを、以下、「アプリ」と称する。
【００１１】
３次元画像等を描画する描画装置は、たとえば、アプリからの図形の描画命令として発行される図形の頂点情報に基づいて、２次元表示面上の図形情報を生成する。描画装置は、生成した図形情報に基づいて、２次元表示面に表示する画像を生成する。たとえば、描画装置は、画素の色を記憶するフレームバッファと、画素の奥行きを記憶するデプスバッファとを用いて、２次元表示面となる描画領域上の図形情報を生成する。図形情報は、描画領域に描画される図形の頂点の座標位置を含む。
【００１２】
描画装置は、フレームバッファおよびデプスバッファといった、画素値を一時記憶するバッファを、表示面の画素数分の記憶容量分用意しておくことになる。具体的な記憶容量として、表示面が６４０［画素］×４８０［画素］であり、１画素あたりの色と奥行きを記憶するデータサイズが８［バイト］である場合、２．３［Ｍバイト］の記憶容量を用意しておくことになる。
【００１３】
そこで、実施の形態１にかかる描画装置１０１は、描画領域ＤＩＳを分割した各分割領域ＤＡＲに描画される図形を特定し、特定した図形の図形情報のデータ量に基づいて、バッファ１０２から溢れないように、選択した分割領域ＤＡＲの図形情報をバッファ１０２に書き込む。これにより、描画装置１０１は、バッファ１０２の記憶容量を削減するとともに、正常に描画可能となる確度を向上させることができる。
【００１４】
具体的に、描画装置１０１は、バッファ１０２に書き込む内容を、画素値そのものから図形情報にすることにより、データ量を少なくする。また、この場合、ある分割領域ＤＡＲに描画される図形の図形情報のデータサイズが多すぎて、用意したバッファ１０２の記憶容量に収まらない可能性がある。そこで、描画装置１０１は、各分割領域ＤＡＲに描画される図形の図形情報のデータ量と、バッファ１０２の記憶容量とを比較して、バッファ１０２から溢れない図形情報に対応する分割領域ＤＡＲを選択して、バッファ１０２に図形情報を書き込む。これにより、描画装置１０１は、書き込むべき図形情報のデータサイズが、１つの分割領域用に用意したバッファ１０２のデータサイズを超えない限り、正常に描画することができるので、正常に描画可能となる確度を向上させることができる。
【００１５】
具体的に、図１の（Ａ）にて、描画装置１０１は、２次元表示面となる描画領域ＤＩＳを４つの分割領域ＤＡＲ＿１〜ＤＡＲ＿４として、各分割領域ＤＡＲの画像を生成する。分割の仕方は、Ｘ座標に従って分割してもよいし、Ｙ座標に従って分割してもよいし、Ｘ座標とＹ座標に従って分割してもよい。また、描画装置１０１は、図形情報のうちの描画対象となる図形の図形情報の記憶先となるバッファ１０２を有する。図１に示すバッファ１０２の記憶容量は、１２８［バイト］であるとする。この状態で、描画装置１０１は、図形情報ＧＩＮＦ＿１〜ＧＩＮＦ＿３を取得する。図形情報ＧＩＮＦ＿１は、描画する図形として三角形ＴＲ１の各頂点の座標を含む。また、図形情報ＧＩＮＦ＿２は、描画する図形として三角形ＴＲ２の各頂点の座標を含む。同様に、図形情報ＧＩＮＦ＿３は、描画する図形として三角形ＴＲ３の各頂点の座標を含む。図形情報ＧＩＮＦ＿１〜ＧＩＮＦ＿３のデータサイズは、３２［バイト］であるとする。
【００１６】
次に、図１の（Ｂ）にて、描画装置１０１は、図形情報ＧＩＮＦ＿１〜ＧＩＮＦ＿３に基づいて、分割領域ＤＡＲ＿１〜ＤＡＲ＿４に対応して、各分割領域に描画される一部または全部の図形の図形情報を特定する。図１の（Ｂ）の例では、描画装置１０１は、図形情報ＧＩＮＦ＿１〜ＧＩＮＦ＿３の図形の頂点の座標位置と分割領域ＤＡＲ＿１の範囲とを用いて、分割領域ＤＡＲ＿１に描画される、三角形ＴＲ１〜ＴＲ３の図形情報ＧＩＮＦ＿１〜ＧＩＮＦ＿３を特定する。同様に、描画装置１０１は、分割領域ＤＡＲ＿２に描画される三角形ＴＲ１、ＴＲ３の図形情報ＧＩＮＦ＿１、ＧＩＮＦ＿３を特定し、分割領域ＤＡＲ＿３、ＤＡＲ＿４に描画される三角形ＴＲ１の図形情報ＧＩＮＦ＿１を特定する。
【００１７】
続けて、描画装置１０１は、図形情報ＧＩＮＦ＿１〜ＧＩＮＦ＿３のデータサイズに基づいて、分割領域ＤＡＲに描画される一部または全部の図形の図形情報の合計データサイズを、分割領域ＤＡＲ＿１〜ＤＡＲ＿４に対応して算出する。たとえば、描画装置１０１は、分割領域ＤＡＲ＿１について、分割領域ＤＡＲ＿１に描画される三角形ＴＲ１〜ＴＲ３の図形情報ＧＩＮＦ＿１〜ＧＩＮＦ＿３の合計データサイズを、３２＋３２＋３２＝９６［バイト］というように算出する。同様に、描画装置１０１は、分割領域ＤＡＲ＿２に描画される三角形ＴＲ１、ＴＲ３の図形情報ＧＩＮＦ＿１、ＧＩＮＦ＿３の合計データサイズを６４［バイト］と算出する。さらに、描画装置１０１は、分割領域ＤＡＲ＿３、ＤＡＲ＿４に描画される三角形ＴＲ１の図形情報ＧＩＮＦ＿１の合計データサイズを３２［バイト］と算出する。
【００１８】
次に、描画装置１０１は、バッファ１０２のデータ容量と、分割領域ＤＡＲ＿１〜ＤＡＲ＿４に対応して算出した図形情報の合計データサイズとに基づいて、分割領域ＤＡＲ＿１〜ＤＡＲ＿４から描画対象となる図形の描画先となる分割領域ＤＡＲを選択する。図１の（Ｂ）では、分割領域ＤＡＲ＿１に対応して算出した図形情報の合計データサイズが９６［バイト］であり、バッファ１０２のデータ容量１２８［バイト］以下であるため、描画装置１０１は、分割領域ＤＡＲ＿１を描画先の分割領域ＤＡＲとして選択する。
【００１９】
分割領域ＤＡＲ＿１を選択後、描画装置１０１は、分割領域ＤＡＲ＿１に描画される図形の図形情報ＧＩＮＦ＿１〜ＧＩＮＦ＿３をバッファ１０２に書き込む。続けて、描画装置１０１は、バッファ１０２を参照して、分割領域ＤＡＲ＿１の画像を生成する。
【００２０】
分割領域ＤＡＲ＿１の画像を生成後、図１の（Ｃ）にて、描画装置１０１は、バッファ１０２に書き込めなかった分割領域ＤＡＲ＿２〜ＤＡＲ＿４について、対応する図形情報ＧＩＮＦをバッファ１０２に書き込む。以上の動作により、描画装置１０１は、バッファ１０２の記憶容量を削減するとともに、アプリから要求された三角形ＴＲ１〜ＴＲ３を正確に描画することができる。以下、実施の形態１にかかる描画装置１０１について図２〜図１４を用いて説明する。
【００２１】
図２は、コンピュータシステムのハードウェア構成例を示すブロック図である。図２において、コンピュータシステム２００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０１と、ＲＯＭ（Ｒｅａｄ‐Ｏｎｌｙ  Ｍｅｍｏｒｙ）２０２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２０３と、を含む。また、コンピュータシステム２００は、ディスクドライブ２０４と、ディスク２０５と、通信インターフェース２０６と、を含む。また、コンピュータシステム２００は、ディスプレイ２０７と、キーボード２０８と、マウス２０９と、描画装置１０１と、を含む。また、ＣＰＵ２０１〜マウス２０９と、描画装置１０１とはバス２１０によってそれぞれ接続されている。
【００２２】
ＣＰＵ２０１は、コンピュータシステム２００の全体の制御を司る演算処理装置である。ＲＯＭ２０２は、ブートプログラムなどのプログラムを記憶する不揮発性メモリである。ＲＡＭ２０３は、ＣＰＵ２０１のワークエリアとして使用される揮発性メモリである。
【００２３】
ディスクドライブ２０４は、ＣＰＵ２０１の制御に従ってディスク２０５に対するデータのリードおよびライトを制御する制御装置である。ディスクドライブ２０４には、たとえば、磁気ディスクドライブ、光ディスクドライブ、ソリッドステートドライブなどを採用することができる。ディスク２０５は、ディスクドライブ２０４の制御で書き込まれたデータを記憶する不揮発性メモリである。たとえばディスクドライブ２０４が磁気ディスクドライブである場合、ディスク２０５には、磁気ディスクを採用することができる。また、ディスクドライブ２０４が光ディスクドライブである場合、ディスク２０５には、光ディスクを採用することができる。また、ディスクドライブ２０４がソリッドステートドライブである場合、ディスク２０５には、半導体素子メモリを採用することができる。
【００２４】
通信インターフェース２０６は、ネットワーク２１１と内部のインターフェースを司り、外部装置からのデータの入出力を制御する制御装置である。具体的に、通信インターフェース２０６は、通信回線を通じてネットワーク２１１となるＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどに接続され、ネットワーク２１１を介して他の装置に接続される。通信インターフェース２０６には、たとえば、モデムやＬＡＮアダプタなどを採用することができる。
【００２５】
ディスプレイ２０７は、図１に示した描画領域ＤＩＳの画像を表示する装置である。また、ディスプレイ２０７は、マウスカーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。ディスプレイ２０７には、たとえば、ＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）、ＴＦＴ（Ｔｈｉｎ  Ｆｉｌｍ  Ｔｒａｎｓｉｓｔｏｒ）液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
【００２６】
キーボード２０８は、文字、数字、各種指示などの入力のためのキーを有し、データの入力を行う装置である。また、キーボード２０８は、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス２０９は、マウスカーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などを行う装置である。マウス２０９は、ポインティングデバイスとして同様に機能を有するものであれば、トラックボールやジョイスティックなどであってもよい。
【００２７】
（描画装置１０１の機能構成）
次に、描画装置１０１の機能構成について説明する。図３は、描画装置の機能構成例を示すブロック図である。描画装置１０１は、座標変換部３０１と、図形情報分割領域選択部３０２と、図形情報ソート部３０３と、生成部３０４と、表示回路３０５と、を有する。さらに、描画装置１０１は、図形情報バッファ３１１と、図形情報バッファ３１２と、ラインバッファ３１３と、ラインデプスバッファ３１４と、にアクセス可能である。図１に示したバッファ１０２は、図形情報バッファ３１１と、図形情報バッファ３１２と、ラインバッファ３１３と、ラインデプスバッファ３１４に相当する。
【００２８】
座標変換部３０１は、読み出し部３２１と、頂点処理部３２２と、図形作成部３２３と、図形除去部３２４と、図形描画領域判定部３２５と、書込部３２６と、を含む。生成部３０４は、頂点読み出し部３３１と、頂点処理部３３２と、図形作成部３３３と、画素生成部３３４と、画素処理部３３５と、画素除去部３３６とを含む。
【００２９】
座標変換部３０１は、ジオメトリ処理を実行する。たとえば、座標変換部３０１は、図形の頂点情報ＶＩＮＦと図形情報以外の描画命令ＤＣＯＭを受け、描画領域ＤＩＳにおける図形の図形情報ＧＩＮＦを生成する。図形は、たとえば、三角形である。なお、図形は、三角形以外でもよい。たとえば、頂点情報ＶＩＮＦは、図形の各頂点の３次元座標の情報、各頂点の色の情報等を有する。頂点情報ＶＩＮＦの詳細は、図５にて後述する。以下、図形の各頂点の３次元座標の情報を、「図形の座標情報」とも称する。図形情報以外の描画命令ＤＣＯＭは、描画領域に描画される図形に影響を与える命令である。たとえば、図形を回転する命令や、図形に画像を張り付ける命令である。
【００３０】
また、図形情報ＧＩＮＦは、図形の頂点番号と、図形の描画領域ＤＩＳにおける座標位置を有する。図形の各頂点の描画領域ＤＩＳにおける座標の情報を、以下、「図形の位置情報」とも称する。図形情報ＧＩＮＦの詳細は、図６にて後述する。
【００３１】
また、座標変換部３０１は、頂点情報ＶＩＮＦのうち、図形の座標情報を受け付けてもよい。そして、座標変換部３０１は、図形の各頂点の座標情報を用いてジオメトリ処理の一部を実行し、図形の頂点番号と、図形の描画領域ＤＩＳにおける座標と、図形の表裏情報とを含む図形情報ＧＩＮＦを生成する。図形の頂点番号は、たとえば、図形の頂点にそれぞれ対応する番号の組である。たとえば、図形が三角形であれば、図形の頂点番号は、三角形の３つの頂点にそれぞれ対応する番号の組である。
【００３２】
読み出し部３２１は、頂点情報ＶＩＮＦのうちの図形の座標情報ＶＩＮＦｃと図形情報以外の描画命令ＤＣＯＭをＣＰＵ２０１より受け付け、座標情報ＶＩＮＦｃと図形情報以外の描画命令ＤＣＯＭを頂点処理部３２２に出力する。たとえば、読み出し部３２１は、ＣＰＵ２０１が書き込んだ頂点情報ＶＩＮＦが記憶されるＲＯＭ２０２、ＲＡＭ２０３、ディスク２０５等から座標情報ＶＩＮＦｃを読み出し、読み出した座標情報ＶＩＮＦｃを頂点処理部３２２に出力する。
【００３３】
頂点処理部３２２は、座標情報ＶＩＮＦｃと図形情報以外の描画命令ＤＣＯＭとに基づいて、回転等の座標に関する頂点処理を実施する。頂点処理の結果および図形情報以外の描画命令ＤＣＯＭは、図形作成部３２３に入力される。
【００３４】
図形作成部３２３は、頂点処理部３２２による頂点処理の結果と図形情報以外の描画命令ＤＣＯＭとに基づいて、図形の情報に変換する。たとえば、図形が三角形の時には、図形作成部３２３は、三角形の３つの頂点の情報を頂点処理の結果として受け付け、頂点処理の結果を三角形の情報に変換する。これにより、座標情報ＶＩＮＦｃに対応する図形の図形情報が生成される。
【００３５】
図形除去部３２４は、図形作成部３２３により生成された図形情報のうち、描画領域ＤＩＳに描画されない図形の図形情報を除去する。たとえば、図形除去部３２４は、クリッピング処理やカリング処理を実施し、描画領域ＤＩＳに描画されない図形情報を除去する。たとえば、クリッピング処理では、図形除去部３２４は、表示領域外の図形を除去する。また、たとえば、カリング処理では、図形除去部３２４は、図形の表裏判定を実行し、裏と判定した図形を除去する。なお、図形の裏を表示する設定の時には、図形除去部３２４は、たとえば、裏であることを示すフラグ等の表裏情報を図形情報に追加する。そして、図形除去部３２４は、描画領域ＤＩＳに描画される図形の図形情報ＧＩＮＦｃと図形情報以外の描画命令ＤＣＯＭを図形描画領域判定部３２５に出力する。図形情報ＧＩＮＦｃは、たとえば、図形の頂点番号、図形の描画領域ＤＩＳにおける座標を示す図形の位置情報および図形の表裏情報を有している。
【００３６】
図形描画領域判定部３２５は、描画領域ＤＩＳのうち、図形が描画される領域を、図形除去部３２４から受け付けた図形情報ＧＩＮＦｃに基づいて算出する。たとえば、図形描画領域判定部３２５は、図形情報ＧＩＮＦｃから、最小のＸ座標と最小のＹ座標と最大のＸ座標と最大のＹ座標とを、算出する。そして、図形描画領域判定部３２５は、図形が描画される領域を、（最小のＸ座標，最小のＹ座標）となる点と、（最大のＸ座標，最大のＹ座標）となる点とを頂点とする矩形領域であると判定する。また、図形描画領域判定部３２５は、図形情報ＧＩＮＦｃと、図形情報以外の描画命令ＤＣＯＭとを書込部３２６に出力する。また、図形描画領域判定部３２５は、図形情報ＧＩＮＦｃと、図形情報以外の描画命令ＤＣＯＭとを図形情報分割領域選択部３０２に出力する。
【００３７】
図形情報分割領域選択部３０２は、図形情報ＧＩＮＦｃに基づいて、図形の描画先となる分割領域ＤＡＲを選択する。また、図形情報分割領域選択部３０２は、図形情報ＧＩＮＦｃと図形情報以外の描画命令ＤＣＯＭとに基づいて、図形の描画先となる分割領域ＤＡＲを選択してもよい。図形情報分割領域選択部３０２は、分割領域ＤＡＲの範囲を書込部３２６に出力する。
【００３８】
また、図形情報分割領域選択部３０２は、全ての図形情報ＧＩＮＦｃと全ての図形情報以外の描画命令ＤＣＯＭが図形情報バッファ３１１に格納できなかった場合、割込通知、または図形情報以外の描画命令ＤＣＯＭの読み出しリクエストをＣＰＵ２０１に発行する。なお、発行するタイミングとして、図形情報分割領域選択部３０２は、頂点読み出し部３３１から読み出し完了通知を受け付けた後に発行する。前述のタイミングで発行する理由としては、読み出し完了通知を受け付けた後であれば、図形情報バッファ３１１、図形情報バッファ３１２に空き容量が存在するためである。
【００３９】
書込部３２６は、図形情報分割領域選択部３０２によって選択された分割領域ＤＡＲに描画される図形の図形情報と、図形情報以外の描画命令ＤＣＯＭを、図形情報バッファ３１１に書き込む。具体的に、書込部３２６は、図形情報ＧＩＮＦｃのうちの図形情報分割領域選択部３０２から出力された分割領域ＤＡＲに描画しない図形情報ＧＩＮＦｃを除去する。そして、書込部３２６は、除去されなかった図形情報ＧＩＮＦｃと図形情報以外の描画命令ＤＣＯＭを図形情報バッファ３１１に書き込む。
【００４０】
図形情報ソート部３０３は、図形情報バッファ３１１に格納された図形情報ＧＩＮＦｃをソートして、ソート結果を、図形情報バッファ３１２に格納する。
【００４１】
生成部３０４は、レンダリング処理を実施する。たとえば、生成部３０４は、図形情報バッファ３１２に格納された図形情報ＧＩＮＦｃと図形情報以外の描画命令ＤＣＯＭとに基づいて、分割領域ＤＡＲの画像データＧＤＡＴＡを生成する。画像データＧＤＡＴＡには、たとえば、画素の色の情報等が含まれる。なお、生成部３０４は、ジオメトリ処理およびレンダリング処理の両方を実施してもよい。
【００４２】
たとえば、座標変換部３０１が頂点情報ＶＩＮＦのうちの図形の座標情報ＶＩＮＦｃを受け付けたときには、生成部３０４は、図形情報バッファ３１２に格納された図形情報ＧＩＮＦ内の頂点番号に対応する頂点情報ＶＩＮＦを取得する。そして、生成部３０４は、取得した頂点情報ＶＩＮＦを用いてジオメトリ処理およびレンダリング処理を実行し、分割領域ＤＡＲの画像データＧＤＡＴＡを生成する。
【００４３】
ラインバッファ３１３は、生成部３０４により生成された画像データＧＤＡＴＡを記憶する。具体的に、ラインバッファ３１３は、描画領域ＤＩＳを分割した各分割領域ＤＡＲの１つの分割領域ＤＡＲ分の画像データＧＤＡＴＡを記憶する。したがって、本実施の形態にかかる描画装置１０１は、ラインバッファ３１３のメモリサイズを、描画領域ＤＩＳの全体の画素の画像データを記憶するフレームバッファに比べて小さくすることができる。
【００４４】
ラインデプスバッファ３１４は、画素の奥行きを記憶する。たとえば、生成部３０４が画像データＧＤＡＴＡを生成する際に、設定情報およびラインデプスバッファ３１４に記憶されたＺ値等を参照する。設定情報は、たとえば、図形の変換行列、反射率等の素材情報および光源の位置情報等である。表示回路３０５は、ラインバッファ３１３から画像データＧＤＡＴＡを順次読み出し、描画領域ＤＩＳに画像を表示する。
【００４５】
頂点読み出し部３３１は、図形情報バッファ３１２から図形情報ＧＩＮＦｃと図形情報以外の描画命令ＤＣＯＭを取得する。そして、頂点読み出し部３３１は、図形情報ＧＩＮＦ内の頂点番号に対応する頂点情報ＶＩＮＦａを、頂点情報ＶＩＮＦａが記憶されたＲＯＭ２０２、ＲＡＭ２０３、ディスク２０５等から読み出す。頂点読み出し部３３１により読み出される頂点情報ＶＩＮＦａは、たとえば、図形の各頂点の３次元座標の座標情報、各頂点の色の情報、テクスチャ座標の情報および法線ベクトルの情報等を有する。頂点読み出し部３３１は、読み出した頂点情報ＶＩＮＦａと、取得した図形情報以外の描画命令ＤＣＯＭを頂点処理部３３２に出力する。
【００４６】
頂点処理部３３２は、頂点情報ＶＩＮＦａと図形情報以外の描画命令ＤＣＯＭに基づいて頂点処理を実行する。頂点処理部３３２により実施される頂点処理には、たとえば、回転等の座標に関する処理、ライティング、各頂点の色の計算、テクスチャ座標の計算および各頂点の法線ベクトルの計算等が含まれる。頂点処理の結果と図形情報以外の描画命令ＤＣＯＭとは、図形作成部３３３に入力される。
【００４７】
図形作成部３３３は、頂点処理部３３２による頂点処理の結果と図形情報以外の描画命令ＤＣＯＭとに基づいて、図形情報に変換する。たとえば、図形作成部３３３は、図形が三角形である場合、三角形の３つの頂点の情報を頂点処理の結果として受け付けて、頂点処理の結果を三角形の情報に変換する。図形作成部３３３は、図形情報と図形情報以外の描画命令ＤＣＯＭを画素生成部３３４に出力する。図形作成部３３３から出力される図形情報は、たとえば、描画領域ＤＩＳにおける座標である図形の位置情報、図形の各辺の式の情報、色の情報、テクスチャ座標の情報、法線ベクトルの情報およびＺ方向の情報等を有する。
【００４８】
画素生成部３３４は、図形作成部３３３から受け付けた図形情報と図形情報以外の描画命令ＤＣＯＭに基づいて、画素情報を生成する。そして、画素生成部３３４は、画素情報を画素処理部３３５に出力する。
【００４９】
画素処理部３３５は、画素生成部３３４から受け付けた画素情報に基づいて、色の計算やテクスチャ座標の計算等を画素単位で実行する。なお、画素生成部３３４、画素処理部３３５等は、分割領域ＤＡＲの画素情報を生成する際に、図形情報以外の描画命令ＤＣＯＭにより設定される、分割領域ＤＡＲに関する設定情報等を参照する。設定情報は、たとえば、図形の変換行列、反射率等の素材情報および光源の位置情報等である。
【００５０】
画素除去部３３６は、画素処理部３３５により処理された画素情報のうち、描画領域ＤＩＳに描画されない画素情報を除去する。たとえば、画素除去部３３６は、ラインデプスバッファ３１４に記憶されるＺ値に基づいてＺテストを実行して、描画されない画素情報を除去する。なお、除去されずに残った画素情報は、描画対象の分割領域ＤＡＲの画像データＧＤＡＴＡに対応する。画素除去部３３６は、分割領域ＤＡＲの画像データＧＤＡＴＡをラインバッファ３１３に記憶する。
【００５１】
図４は、図形情報分割領域選択部の詳細を示すブロック図である。図形情報分割領域選択部３０２は、取得部４０１と、特定部４０２と、算出部４０３と、選択部４０４と、を含む。また、描画装置１０１は、図形情報サイズリスト４１１にアクセス可能である。図形情報サイズリスト４１１は、描画装置１０１が有するレジスタ等により形成される。
【００５２】
取得部４０１は、描画領域ＤＩＳに描画される図形の頂点の座標位置を含む図形情報ＧＩＮＦを取得する。また、取得部４０１は、描画領域ＤＩＳに描画される図形に影響を与える命令ＤＣＯＭを取得してもよい。なお、取得した図形情報ＧＩＮＦや命令ＤＣＯＭは、描画装置１０１が有するレジスタ等に格納される。
【００５３】
特定部４０２は、取得部４０１によって取得された図形情報ＧＩＮＦに基づいて、描画領域を分割した分割領域群のうちの各々の分割領域ＤＡＲに対応して、各々の分割領域ＤＡＲに描画される一部または全部の図形の図形情報ＧＩＮＦを特定する。なお、各々の分割領域ＤＡＲに対応して特定した図形情報ＧＩＮＦの識別情報等が、描画装置１０１が有するレジスタ等に格納される。
【００５４】
算出部４０３は、図形情報ＧＩＮＦのデータサイズに基づいて、特定部４０２によって特定された各々の分割領域ＤＡＲに描画される一部または全部の図形の図形情報ＧＩＮＦの合計データサイズを、各々の分割領域に対応して算出する。たとえば、算出部４０３は、図形情報ＧＩＮＦの合計データサイズを単に合算してもよいし、図形情報ＧＩＮＦのそれぞれが満たすアラインメントに基づくデータサイズを合算してもよい。たとえば、図形情報ＧＩＮＦが可変長であり、４［バイト］アラインメントに従って描画装置１０１のレジスタに記憶するとする。このとき、ある描画領域ＤＡＲに描画される図形情報ＧＩＮＦ＿１が３［バイト］であり、図形情報ＧＩＮＦ＿２が４［バイト］であれば、算出部４０３は、図形情報ＧＩＮＦの合計データサイズを４＊２＝８［バイト］として算出する。
【００５５】
また、算出部４０３は、取得部４０１によって取得された命令ＤＣＯＭに基づいて、命令の合計データサイズを算出してもよい。算出結果は、図形情報サイズリスト４１１に格納される。
【００５６】
選択部４０４は、次に示す情報に基づいて、分割領域群ＧＩＮＦから描画対象となる図形の描画先となる分割領域ＤＡＲを選択する。以下の情報とは、取得部４０１によって取得された図形情報のうちの図形情報バッファ３１１のデータ容量と、算出部４０３によって各々の分割領域ＧＩＮＦに対応して算出された図形情報の合計データサイズとである。具体的な分割領域ＤＡＲの選択として、たとえば、分割領域ＤＡＲ＿１〜ＤＡＲ＿４がある状態で、選択部４０４は、分割領域ＤＡＲ＿１に描画される図形情報ＧＩＮＦが図形情報バッファ３１１のデータ容量を超えなければ、分割領域ＤＡＲ＿１を選択する。このように、選択部４０４は、分割領域ＤＡＲ＿１、ＤＡＲ＿２、…の順に分割領域ＤＡＲを選択してもよいし、分割領域ＤＡＲ＿４、ＤＡＲ＿３、…の順に分割領域ＤＡＲを選択してもよい。
【００５７】
また、選択部４０４は、図形情報バッファ３１１のデータ容量と、図形情報ＧＩＮＦの合計データサイズと、命令ＤＣＯＭの合計データサイズとに基づいて、分割領域群ＧＩＮＦから描画対象となる図形の描画先となる分割領域を選択してもよい。
【００５８】
また、選択部４０４は、次に示す情報に基づき分割領域群ＤＡＲのうちの描画先となる分割領域ＤＡＲと前述の分割領域ＤＡＲに含まれる分割領域ＤＡＲとを除く残余の分割領域ＤＡＲから描画対象となる図形の新たな描画先となる分割領域ＤＡＲを選択してもよい。次に示す情報とは、図形情報バッファ３１１のデータ容量と、算出部４０３によって各々の分割領域に対応して算出された合計データサイズとである。選択結果は、描画装置１０１が有するレジスタ等に格納される。
【００５９】
また、図３に示した書込部３２６は、選択部４０４によって選択された描画先となる分割領域ＤＡＲに描画される図形の図形情報ＧＩＮＦを図形情報バッファ３１１に書き込む。また、書込部３２６は、命令ＤＣＯＭと選択部４０４によって選択された描画先となる分割領域に描画される図形の図形情報とを図形情報バッファ３１１に書き込んでもよい。また、書込部３２６は、生成部３０４によって描画先となる分割領域の画像が生成された結果、選択部４０４によって選択された新たな描画先となる分割領域に描画される図形の図形情報を図形情報バッファ３１１に書き込んでもよい。
【００６０】
また、図３に示した生成部３０４は、書込部３２６によって図形情報バッファ３１１に書き込まれた図形情報ＧＩＮＦに基づいて、描画先となる分割領域ＤＡＲの画像を生成する。また、生成部３０４は、書込部３２６によって図形情報バッファ３１１に書き込まれた図形情報ＧＩＮＦに基づいて、新たな描画先となる分割領域ＤＡＲの画像を生成してもよい。
【００６１】
図５は、頂点情報の記憶内容の一例を示す説明図である。頂点情報ＶＩＮＦは、図形ごとに図形の座標情報と、各頂点の色の情報と、を有する。また、頂点情報ＶＩＮＦは、テクスチャ座標の情報と、法線ベクトルの情報等を含んでもよい。たとえば、図５に示す頂点情報ＶＩＮＦは、レコード５０１−１−１〜レコード５０１−２−３を有する。たとえば、レコード５０１−１−１〜レコード５０１−１−３は、三角形ＴＲ１の頂点１１、頂点１２、頂点１３のそれぞれの座標情報と、色の情報を示す。
【００６２】
また、頂点情報ＶＩＮＦは、たとえば、ＲＯＭ２０２、ＲＡＭ２０３、ディスク２０５に記憶される。なお、頂点情報ＶＩＮＦの座標情報は、たとえば、２次元座標の情報でもよい。
【００６３】
図６は、実施の形態１にかかる図形情報の記憶内容の一例を示す説明図である。図形情報ＧＩＮＦは、図形の頂点番号と、図形の描画領域ＤＩＳにおける頂点の座標と、を含む。また、図形情報ＧＩＮＦは、図形の各辺の式の情報、色の情報、テクスチャ座標の情報、法線ベクトルの情報およびＺ方向の情報、図形の表裏情報を有してもよい。
【００６４】
図形の各辺の式は、図形が三角形であれば、三辺の式となる。Ｚ方向の情報は、奥行きの情報である。なお、図形情報ＧＩＮＦ内の色、テクスチャ座標および法線ベクトル等の各情報は、たとえば、Ｘ方向の増分に対する値の変化量、Ｙ方向の増分に対する値の変化量およびオフセット値を有する。具体的に、図形情報ＧＩＮＦ内の色の情報は、Ｘ方向の増分に対する色の変化量、Ｙ方向の増分に対する色の変化量およびオフセット値を有する。
【００６５】
たとえば、図６に示す図形情報ＧＩＮＦは、レコード６０１−１を有する。レコード６０１−１は、三角形ＴＲ１の頂点１１、頂点１２、頂点１３の頂点番号と、描画領域ＤＩＳにおける頂点１１、頂点１２、頂点１３の座標を示す。
【００６６】
図７は、図形情報サイズリストの記憶内容の一例を示す説明図である。図形情報サイズリスト４１１は、図形情報のデータサイズと、図形情報以外の描画命令のデータサイズと、合計データサイズと、いう３つの項目を有する。
【００６７】
図形情報のデータサイズ項目は、分割領域の位置と、分割領域に描画される図形情報のデータサイズとを記憶するサブ項目を有する。図７で示す図形情報のデータサイズ項目は、レコード７０１−１〜レコード７０１−８を有する。分割領域の位置サブ項目には、対象の分割領域を一意に特定する情報が格納される。実施の形態１では、描画領域ＤＩＳをＹ座標に従って重複しないように分割するため、Ｙ座標の値により、分割領域ＤＡＲを一意に特定することができる。以下の説明において、Ｙ＝０〜５９［画素］の分割領域ＤＡＲを、分割領域ＤＡＲ＿１とする。同様に、Ｙ＝６０〜１１９［画素］の分割領域ＤＡＲを、分割領域ＤＡＲ＿２とし、…、Ｙ＝４２０〜４７９［画素］の分割領域ＤＡＲを、分割領域ＤＡＲ＿８とする。分割領域に描画される図形情報のデータサイズ項目には、対象の分割領域ＤＡＲに描画される図形情報ＧＩＮＦのデータサイズの累計が格納される。
【００６８】
図形情報以外の描画命令のデータサイズ項目には、図形情報以外の描画命令ＤＣＯＭのデータサイズが格納される。図形情報以外の描画命令ＤＣＯＭは、たとえば、図形を回転する命令や、図形に画像を張り付ける命令である。図７で示す図形情報以外の描画命令のデータサイズ項目は、レコード７０２を有する。
【００６９】
合計データサイズ項目には、分割領域に描画される図形情報のデータサイズの合計と、図形情報以外の描画命令のデータサイズと、を合計した値が格納される。図７にて示す図形情報以外の描画命令の合計データサイズ項目は、レコード７０３を有する。
【００７０】
次に、図８〜図１１を用いて、頂点情報ＶＩＮＦや図形情報以外の描画命令ＤＣＯＭを受け付けた際の図形情報サイズリスト４１１の更新例について説明する。
【００７１】
図８は、実施の形態１にかかる図形情報サイズリストの更新例を示す説明図（その１）である。図８に示す図形情報サイズリスト４１１は、描画装置１０１が、Ｙ座標の最小値が３２［画素］であり、Ｙ座標の最大値が１５０［画素］である、データサイズが３２［バイト］の図形情報ＧＩＮＦを取得して、図形情報サイズリスト４１１を更新した状態である。具体的に、描画装置１０１は、取得した図形情報ＧＩＮＦが描画される、下記３つの分割領域ＤＡＲに描画される図形情報のデータサイズ項目の値に、３２［バイト］を追加する。３つの分割領域ＤＡＲは、Ｙ＝０〜５９［画素］の分割領域ＤＡＲ＿１と、Ｙ＝６０〜１１９［画素］の分割領域ＤＡＲ＿２と、Ｙ＝１２０〜１７９［画素］の分割領域ＤＡＲ＿３とである。また、描画装置１０１は、合計データサイズ項目に、各分割領域に描画される図形情報のデータサイズの合計となる３２＋３２＋３２＝９６［バイト］と、図形情報以外の描画命令のデータサイズとなる０［バイト］の合計した値９６［バイト］を格納する。なお、各分割領域に描画される図形情報のデータサイズの合計を記憶するレジスタがあってもよい。
【００７２】
図９は、実施の形態１にかかる図形情報サイズリストの更新例を示す説明図（その２）である。図９に示す図形情報サイズリスト４１１は、描画装置１０１が、ＣＰＵ２０１から発行される全ての頂点情報ＶＩＮＦと、図形情報以外の描画命令ＤＣＯＭを取得して、図形情報サイズリスト４１１を更新した状態である。描画装置１０１は、合計データサイズ項目の値と、図形情報バッファ３１１の記憶容量とを比較して、取得した図形情報ＧＩＮＦおよび図形以外の描画命令の全てが、図形情報バッファ３１１に書き込めるか否かを判断する。
【００７３】
図９の例では、図形情報バッファ３１１に書き込み可能な記憶容量が１０２４［バイト］であり、合計データサイズ項目の値が、１４７２［バイト］である。したがって、描画装置１０１は、取得した図形情報ＧＩＮＦおよび図形以外の描画命令の全てが図形情報バッファ３１１に書き込めず、オーバーフローしたと判断する。図１０にて、オーバーフローした場合の処理について説明する。なお、取得した図形情報ＧＩＮＦおよび図形以外の描画命令の全てが図形情報バッファ３１１に書き込めて、オーバーフローしない場合、描画装置１０１は、取得した図形情報ＧＩＮＦおよび図形以外の描画命令の全てを図形情報バッファ３１１に書き込む。
【００７４】
図１０は、実施の形態１にかかる図形情報サイズリストの更新例を示す説明図（その３）である。描画装置１０１は、１０２４［バイト］に収まる図形情報ＧＩＮＦが描画される分割領域ＤＡＲを選択する。まず、図形情報以外の描画命令ＤＣＯＭを実行しないとアプリの期待通りの描画とならないため、描画装置１０１は、図形情報以外の描画命令ＤＣＯＭを書き込む領域を確保する。
【００７５】
具体的に、描画装置１０１は、図形情報バッファ３１１の１０２４［バイト］から、図形情報以外の描画命令ＤＣＯＭのデータサイズ２５６［バイト］を減算する。減算結果となる７６８［バイト］が図形情報ＧＩＮＦを書き込める領域となる。次に、描画装置１０１は、７６８［バイト］に書き込める図形情報ＧＩＮＦが描画される分割領域ＤＡＲを選択する。図１０の例では、描画装置１０１は、分割領域ＤＡＲ＿１と、分割領域ＤＡＲ＿２とを選択する。続けて、描画装置１０１は、選択した分割領域ＤＡＲ＿１と、分割領域ＤＡＲ＿２とに描画される図形の図形情報ＧＩＮＦを、図形情報バッファ３１１に書き込む。次に、図形情報ＧＩＮＦが書き込めなかった分割領域ＤＡＲ＿３〜ＤＡＲ８について、図１１を用いて説明する。
【００７６】
図１１は、実施の形態１にかかる図形情報サイズリストの更新例を示す説明図（その４）である。描画装置１０１は、書き込めた分割領域ＤＡＲ＿１、ＤＡＲ＿２に描画される図形情報のデータサイズ項目を０に設定し、書き込めなかった分割領域ＤＡＲ＿３〜ＤＡＲ＿８に描画される図形情報のデータサイズ項目の値を、書き込んだデータサイズ分減算する。具体的に、描画装置１０１は、レコード７０１−１とレコード７０１−２の分割領域に描画される図形情報のデータサイズ項目を０［バイト］に設定する。また、描画装置１０１は、レコード７０１−３〜レコード７０１−８の分割領域に描画される図形情報のデータサイズ項目の値から、６４０［バイト］減算する。
【００７７】
残った図形情報ＧＩＮＦは、レコード７０１−８が示すとおり、５７６［バイト］であり、図形情報バッファ３１１に書き込める記憶容量は、図形情報以外の描画命令ＤＣＯＭのデータサイズを除いた７６８［バイト］である。したがって、描画装置１０１は、Ｙ＝０〜１１９の分割領域ＤＡＲ＿１、ＤＡＲ＿２に描画される図形の図形情報ＧＩＮＦの読み出した後、Ｙ＝１２０〜４７９の分割領域ＤＡＲ＿３〜ＤＡＲ＿８に描画される図形情報ＧＩＮＦを図形情報バッファ３１１に書き込む。次に、図１２〜図１４を用いて、実施の形態１にかかる描画処理のフローチャートを示す。
【００７８】
図１２は、実施の形態１にかかる描画処理手順の一例を示すフローチャート（その１）である。また、図１３は、実施の形態１にかかる描画処理手順の一例を示すフローチャート（その２）である。描画処理は、ＣＰＵ２０１から頂点情報ＶＩＮＦと図形情報以外の描画命令ＤＣＯＭを取得して、画像を生成する処理である。
【００７９】
描画装置１０１は、図形情報以外の描画命令ＤＣＯＭおよび頂点情報ＶＩＮＦのうちの少なくともいずれか一方を取得する（ステップＳ１２０１）。次に、描画装置１０１は、図形情報以外の描画命令ＤＣＯＭか、頂点情報ＶＩＮＦかのいずれか一方を選択する（ステップＳ１２０２）。図１３に示すステップＳ１３０４、またはステップＳ１２０２の処理終了後、描画装置１０１は、選択した情報を確認する（ステップＳ１２０３）。
【００８０】
選択した情報が頂点情報ＶＩＮＦである場合（ステップＳ１２０３：頂点情報）、描画装置１０１は、頂点情報ＶＩＮＦから、図形情報ＧＩＮＦを生成する（ステップＳ１２０４）。続けて、描画装置１０１は、先頭の分割領域ＤＡＲを選択する（ステップＳ１２０５）。次に、描画装置１０１は、生成した図形情報ＧＩＮＦの図形の一部または全部が選択した分割領域ＤＡＲに描画されるか否かを判断する（ステップＳ１２０６）。生成した図形情報ＧＩＮＦの図形の一部または全部が選択した分割領域ＤＡＲに描画される場合（ステップＳ１２０６：Ｙｅｓ）、描画装置１０１は、図形情報サイズリスト４１１のうちの選択した分割領域に描画される図形情報のデータサイズ項目の値を更新する（ステップＳ１２０７）。続けて、描画装置１０１は、合計データサイズ項目を更新する（ステップＳ１２０８）。
【００８１】
ステップＳ１２０８の処理終了後、または、生成した図形情報ＧＩＮＦの図形が選択した分割領域ＤＡＲに描画されない場合（ステップＳ１２０６：Ｎｏ）、描画装置１０１は、全ての分割領域ＤＡＲを選択したか否かを判断する（ステップＳ１２０９）。未選択の分割領域ＤＡＲがある場合（ステップＳ１２０９：Ｎｏ）、描画装置１０１は、次の分割領域ＤＡＲを選択する（ステップＳ１２１０）。ステップＳ１２１０の処理終了後、描画装置１０１は、ステップＳ１２０６の処理に移行する。
【００８２】
図形情報以外の描画命令ＤＣＯＭが選択された場合（ステップＳ１２０３：図形情報以外の描画命令）、描画装置１０１は、図形情報以外の描画命令のデータサイズ項目を更新する（ステップＳ１２１１）。次に、描画装置１０１は、合計データサイズ項目を更新する（ステップＳ１２１２）。
【００８３】
ステップＳ１２１２の処理終了後、または、全ての分割領域ＤＡＲを選択した場合（ステップＳ１２０９：Ｙｅｓ）、描画装置１０１は、図１３のステップＳ１３０１の処理に移行する。
【００８４】
ステップＳ１２１２の処理終了後、または、ステップＳ１２０９：Ｙｅｓの場合、描画装置１０１は、合計データサイズ項目の値がオーバーフローしたか否かを判断する（ステップＳ１３０１）。合計データサイズ項目の値がオーバーフローしない場合（ステップＳ１３０１：Ｎｏ）、描画装置１０１は、図形情報バッファ３１１に図形情報以外の描画命令ＤＣＯＭまたは図形情報ＧＩＮＦを書き込む（ステップＳ１３０２）。
【００８５】
ステップＳ１３０２の処理終了後、または合計データサイズ項目の値がオーバーフローした場合（ステップＳ１３０１：Ｙｅｓ）、描画装置１０１は、取得した全ての図形情報以外の描画命令ＤＣＯＭと全ての頂点情報ＶＩＮＦとを選択したか否かを判断する（ステップＳ１３０３）。未選択の図形情報以外の描画命令ＤＣＯＭ、または未選択の頂点情報ＶＩＮＦがある場合（ステップＳ１３０３：Ｎｏ）、描画装置１０１は、次の図形情報以外の描画命令ＤＣＯＭか、頂点情報ＶＩＮＦかのいずれか一方を選択する（ステップＳ１３０４）。ステップＳ１３０４の処理終了後、描画装置１０１は、ステップＳ１２０３の処理に移行する。
【００８６】
全ての図形情報以外の描画命令ＤＣＯＭと全ての頂点情報ＶＩＮＦを選択した場合（ステップＳ１３０３：Ｙｅｓ）、描画装置１０１は、合計データサイズ項目の値がオーバーフローしたか否かを判断する（ステップＳ１３０５）。合計データサイズ項目の値がオーバーフローした場合（ステップＳ１３０５：Ｙｅｓ）、描画装置１０１は、オーバーフロー時の描画処理を実行する（ステップＳ１３０６）。オーバーフロー時の描画処理の詳細については、図１４にて後述する。ステップＳ１３０６の処理終了後、描画装置１０１は、描画処理を終了する。
【００８７】
合計データサイズ項目の値がオーバーフローしない場合（ステップＳ１３０５：Ｎｏ）、描画装置１０１は、既に全ての図形情報以外の描画命令ＤＣＯＭと全ての頂点情報ＶＩＮＦより生成された図形情報ＧＩＮＦを図形情報バッファ３１１に格納したため、描画処理を終了する。描画処理を実行することにより、描画装置１０１は、取得した全ての図形情報以外の描画命令ＤＣＯＭと全ての頂点情報ＶＩＮＦより生成された図形情報ＧＩＮＦを図形情報バッファ３１１に格納することができる。
【００８８】
図１４は、実施の形態１にかかるオーバーフロー時の描画処理手順の一例を示すフローチャートである。オーバーフロー時の描画処理は、取得した全ての図形情報以外の描画命令ＤＣＯＭと全ての頂点情報ＶＩＮＦの合計データサイズが、図形情報バッファ３１１のデータ容量を超えた場合の描画処理である。
【００８９】
描画装置１０１は、図形情報バッファ３１１のデータ容量と図形情報サイズリスト４１１とから、図形情報バッファ３１１に書き込める図形情報ＧＩＮＦの図形が描画される分割領域ＤＡＲ群を選択する（ステップＳ１４０１）。次に、描画装置１０１は、全ての図形情報以外の描画命令ＤＣＯＭおよび全ての頂点情報ＶＩＮＦを取得する（ステップＳ１４０２）。続けて、描画装置１０１は、図形情報以外の描画命令ＤＣＯＭか頂点情報ＶＩＮＦのいずれか一方を選択する（ステップＳ１４０３）。
【００９０】
ステップＳ１４０３、またはステップＳ１４１４の処理終了後、描画装置１０１は、選択した情報を確認する（ステップＳ１４０４）。頂点情報ＶＩＮＦを選択した場合（ステップＳ１４０４：頂点情報）、描画装置１０１は、頂点情報ＶＩＮＦから、図形情報ＧＩＮＦを生成する（ステップＳ１４０５）。続けて、描画装置１０１は、選択した分割領域ＤＡＲ群のうちの、先頭の分割領域ＤＡＲを選択する（ステップＳ１４０６）。次に、描画装置１０１は、生成した図形情報ＧＩＮＦの図形の一部または全部が選択した分割領域ＤＡＲに描画されるか否かを判断する（ステップＳ１４０７）。生成した図形情報ＧＩＮＦの図形の一部または全部が選択した分割領域ＤＡＲに描画される場合（ステップＳ１４０７：Ｙｅｓ）、描画装置１０１は、図形情報バッファ３１１に生成した図形情報ＧＩＮＦを書き込む（ステップＳ１４０８）。
【００９１】
ステップＳ１４０８の処理終了後、または、生成した図形情報ＧＩＮＦの図形が選択した分割領域ＤＡＲに描画されない場合（ステップＳ１４０７：Ｎｏ）、描画装置１０１は、選択した分割領域ＤＡＲ群の全てを選択したか否かを判断する（ステップＳ１４０９）。未選択の分割領域ＤＡＲがある場合（ステップＳ１４０９：Ｎｏ）、描画装置１０１は、次の分割領域ＤＡＲを選択する（ステップＳ１４１０）。ステップＳ１４１０の処理終了後、描画装置１０１は、ステップＳ１４０７の処理に移行する。
【００９２】
選択した分割領域ＤＡＲ群の全てを選択した場合（ステップＳ１４０９：Ｙｅｓ）、描画装置１０１は、図形情報のデータサイズ項目の値から書き込んだ図形情報のデータサイズを減算した値で、図形情報のデータサイズ項目の値を更新する（ステップＳ１４１１）。ステップＳ１４１１の処理は、図１１にて示した処理を行う。
【００９３】
また、選択した情報が図形情報以外の描画命令ＤＣＯＭである場合（ステップＳ１４０４：図形情報以外の描画命令）、描画装置１０１は、図形情報バッファ３１１に図形情報以外の描画命令ＤＣＯＭを書き込む（ステップＳ１４１２）。
【００９４】
ステップＳ１４１１、またはステップＳ１４１２の処理終了後、描画装置１０１は、取得した全ての図形情報以外の描画命令ＤＣＯＭと全ての頂点情報ＶＩＮＦとを選択したか否かを判断する（ステップＳ１４１３）。図形情報以外の描画命令ＤＣＯＭと頂点情報ＶＩＮＦのうち未選択の情報がある場合（ステップＳ１４１３：Ｎｏ）、描画装置１０１は、次の図形情報以外の描画命令ＤＣＯＭか、頂点情報ＶＩＮＦかのいずれか一方を選択する（ステップＳ１４１４）。ステップＳ１４１４の処理実行後、描画装置１０１は、ステップＳ１４０４の処理に移行する。
【００９５】
全ての図形情報以外の描画命令ＤＣＯＭと全ての頂点情報ＶＩＮＦとを選択した場合（ステップＳ１４１３：Ｙｅｓ）、描画装置１０１は、続けて、選択した分割領域ＤＡＲ群の全てを選択したか否かを判断する（ステップＳ１４１５）。選択した分割領域ＤＡＲ群のうち未選択の分割領域ＤＡＲがある場合（ステップＳ１４１５：Ｎｏ）、描画装置１０１は、ステップＳ１４０１の処理に移行する。選択した分割領域ＤＡＲ群を全て選択した場合（ステップＳ１４１５：Ｙｅｓ）、描画装置１０１は、オーバーフロー時の描画処理を終了する。オーバーフロー時の描画処理を実行することにより、描画装置１０１は、オーバーフローする場合でも、全ての図形情報以外の描画命令ＤＣＯＭと全ての図形情報ＧＩＮＦを図形情報バッファ３１１に書き込むことができる。
【００９６】
以上説明したように、実施の形態１にかかる描画装置１０１によれば、描画領域ＤＩＳを分割した各分割領域ＤＡＲに描画される図形を特定する。続けて、描画装置１０１は、図形の図形情報ＧＩＮＦのデータ量に基づいて、バッファ１０２から溢れないように選択した分割領域ＤＡＲの図形情報をバッファに書き込む。これにより、描画装置１０１は、バッファ１０２の記憶容量を削減するとともに、アプリから要求された図形を正確に描画することができる。たとえば、描画領域ＤＩＳの上半分に図形情報ＧＩＮＦが固まったとする。このとき、描画装置１０１は、描画領域ＤＩＳの上半分を細分化した分割領域ＤＡＲごとに図形情報ＧＩＮＦを書き込み、描画領域ＤＩＳの下半分の分割領域ＤＡＲ１回分の図形情報ＧＩＮＦを書き込む。このように、描画装置１０１は、図形情報ＧＩＮＦが描画される領域が固まっても、正常に描画可能となる確度を向上させることができる。
【００９７】
たとえば、描画装置１０１に含まれる記憶容量は、全体で２５６［キロバイト］程度に抑えることができる。具体的に、描画装置１０１の開発者は、図形情報バッファ３１１と図形情報バッファ３１２の記憶容量を９６［キロバイト］に指定するとともに、ラインバッファ３１３とラインデプスバッファ３１４とを３０［キロバイト］に指定する。
【００９８】
また、描画装置１０１によれば、図形情報以外の描画命令ＤＣＯＭの合計データサイズを算出し、図形情報以外の描画命令ＤＣＯＭと図形の図形情報ＧＩＮＦのデータ量とに基づいて、図形情報バッファ３１１から溢れない分割領域ＤＡＲを選択してもよい。これにより、描画装置１０１は、図形情報以外の描画命令ＤＣＯＭを優先して図形情報バッファ３１１に書き込むことにより、アプリの期待通りの描画が行えるとともに、図形情報バッファ３１１の記憶容量を削減することができる。
【００９９】
また、描画装置１０１によれば、描画領域ＤＩＳのうち、選択済の分割領域ＤＡＲと、選択済の分割領域ＤＡＲに含まれる分割領域ＤＡＲと、を除く残余の分割領域から、新たな描画先となる分割領域を選択してもよい。これにより、描画装置１０１は、そのまま図形情報ＧＩＮＦを書き込むと図形情報バッファ３１１がオーバーフローしてしまう場合にも、選択済の分割領域ＤＡＲの画像が生成された後に、残りの図形情報ＧＩＮＦを書き込むことになり、正常に描画可能となる確度を向上させることができる。
【０１００】
（実施の形態２）
実施の形態１にかかる描画装置１０１は、描画領域ＤＩＳをそれぞれが重複しないように分割した。この場合、複数の分割領域ＤＡＲに跨って描画される図形の図形情報ＧＩＮＦがある場合、分割領域ＤＡＲごとに、図形情報ＧＩＮＦが複製されることになり、図形情報バッファ３１１に冗長な情報が格納されてしまう。そこで、実施の形態２にかかる描画装置１０１は、描画領域ＤＩＳを、１つの分割領域ＤＡＲが他の分割領域ＤＡＲに含まれるように分割する。これにより、複数の分割領域ＤＡＲに跨る図形情報ＧＩＮＦがあっても、各分割領域ＤＡＲに描画される図形の図形情報ＧＩＮＦが複製されることを抑制することができ、図形情報バッファ３１１に冗長な情報が格納されることを減らすことができる。以下、実施の形態２にかかる描画装置１０１について、図１５〜図２１を用いて説明する。なお、実施の形態１において説明した箇所と同様の箇所については、同一符号を付して図示および説明を省略する。
【０１０１】
また、図４にて説明した図形情報分割領域選択部３０２の特定部４０２と、選択部４０４の機能とは、実施の形態１から変更する。変更する部分について以下に説明する。
【０１０２】
実施の形態２にかかる特定部４０２は、次に示す情報に基づいて、第１および第２の分割領域ＤＡＲを含む分割領域群のうちの各々の分割領域ＤＡＲに対応して各々の分割領域ＤＡＲに描画される一部または全部の図形の図形情報ＧＩＮＦを特定する。次に示す情報とは、取得部４０１によって取得された図形情報ＧＩＮＦである。第１の分割領域ＤＡＲは、描画領域ＤＩＳの一部である。第２の分割領域ＤＡＲは、描画領域ＤＩＳの一部または全部であり第１の分割領域を含み第１の分割領域より大きい。
【０１０３】
実施の形態２にかかる選択部４０４は、次に示す情報に基づいて、描画先となる分割領域の候補が第１の分割領域と第２の分割領域となる場合、第２の分割領域を図形の描画先となる分割領域として選択する。次に示す情報とは、図形情報バッファ３１１のデータ容量と、算出部４０３によって第１の分割領域に対応して算出された図形情報の合計データサイズと、算出部４０３によって第２の分割領域に対応して算出された図形情報の合計データサイズである。
【０１０４】
図１５は、実施の形態２にかかる図形情報の記憶内容の一例を示す説明図である。実施の形態２にかかる図形情報ＧＩＮＦ２は、図形の開始位置と、図形の終了位置と、図形の頂点番号とを含む。また、図形情報ＧＩＮＦ２は、図形の各辺の式の情報、色の情報、テクスチャ座標の情報、法線ベクトルの情報およびＺ方向の情報、図形の表裏情報を有してもよい。実施の形態２では、描画領域ＤＩＳをＹ座標に従って分割するため、図形の開始位置および図形の終了位置は、Ｙ座標の値を記憶する。描画領域ＤＩＳをＸ座標に従って分割するならば、図形の開始位置および図形の終了位置は、Ｘ座標の値を記憶する。
【０１０５】
たとえば、図１５に示す図形情報ＧＩＮＦ２は、レコード１５０１−１を有する。レコード１５０１−１は、描画領域ＤＩＳにおけるＹ方向の開始位置が１６０［画素］であり、Ｙ方向の終了位置が２５０［画素］であり、三角形ＴＲ１の頂点１１、頂点１２、頂点１３の頂点番号を記憶する。
【０１０６】
次に、図１５に示す図形情報ＧＩＮＦ２を用いて、図形情報サイズリスト４１１の更新の一例について、図１６〜図１８を用いて説明する。
【０１０７】
図１６は、実施の形態２にかかる図形情報サイズリストの更新例を示す説明図（その１）である。図１６で示す図形情報のデータサイズ項目は、レコード１６０１−１〜レコード１６０１−８を有する。また、図形情報以外の描画命令のデータサイズ項目は、レコード１６０２を有する。図１６で示す合計データサイズ項目は、レコード１６０３を有する。
【０１０８】
レコード１６０１−１は、Ｙ＝０〜５９［画素］の分割領域ＤＡＲ＿１と、１つ目の分割領域ＤＡＲに描画される図形情報ＧＩＮＦ２のデータサイズを記憶する。また、レコード１６０１−２は、Ｙ＝０〜１１９［画素］の分割領域ＤＡＲ＿１＿２と、２つ目の分割領域ＤＡＲに描画される図形情報ＧＩＮＦ２のデータサイズを記憶する。このように、レコード１６０１−２が示す分割領域ＤＡＲ１＿２は、分割領域ＤＡＲ＿１を含む。たとえば、前述した、第１の分割領域ＤＡＲが分割領域ＤＡＲ＿１となり、第２の分割領域ＤＡＲが分割領域ＤＡＲ＿２となる。
【０１０９】
たとえば、図１５にて示したレコード１５０１−１で示す図形情報ＧＩＮＦ２を取得し、レコード１５０１−１のデータサイズが３２［バイト］であるとする。レコード１５０１−１のＹ座標の開始位置が１６０［画素］であるため、描画装置１０１は、レコード１６０１−３〜レコード１６０１−８が示す分割領域に描画される図形情報のデータサイズ項目の値を、３２［バイト］追加する。また、描画装置１０１は、合計データサイズ項目に、各分割領域に描画される図形情報のデータサイズの合計となる３２［バイト］と、図形情報以外の描画命令のデータサイズとなる０［バイト］との合計した値３２［バイト］を格納する。
【０１１０】
なお、各分割領域ＤＡＲに描画される図形情報ＧＩＮＦ２のデータサイズの合計は、レコード１６０１−８の分割領域ＤＡＲ＿１＿８に描画される図形情報のデータサイズ項目の値と同一である。したがって、各分割領域ＤＡＲに描画される図形情報のデータサイズを記憶するレジスタは、無くてもよい。
【０１１１】
図１７は、実施の形態２にかかる図形情報サイズリストの更新例を示す説明図（その２）である。図１７に示す図形情報サイズリスト４１１は、描画装置１０１が、ＣＰＵ２０１から発行される全ての頂点情報ＶＩＮＦと、図形情報以外の描画命令ＤＣＯＭを取得して、図形情報サイズリスト４１１を更新した状態である。
【０１１２】
描画装置１０１は、合計データサイズ項目の値と、図形情報バッファ３１１の記憶容量とを比較して、取得した図形情報ＧＩＮＦ２および図形以外の描画命令の全てが、図形情報バッファ３１１に書き込めるか否かを判断する。図１７の例では、図形情報バッファ３１１に書き込み可能な記憶容量が１０２４［バイト］であり、合計データサイズ項目の値が、１４７２［バイト］である。したがって、描画装置１０１は、取得した図形情報ＧＩＮＦ２および図形情報以外の描画命令ＤＣＯＭの全てが図形情報バッファ３１１に書き込めず、オーバーフローしたと判断する。
【０１１３】
オーバーフローしたと判断した場合、描画装置１０１は、１０２４［バイト］に収まる図形情報ＧＩＮＦ２が描画される分割領域ＤＡＲを選択する。まず、図形情報以外の描画命令ＤＣＯＭを実行しないと期待通りの描画とならないため、描画装置１０１は、図形情報以外の描画命令ＤＣＯＭを書き込む領域を確保する。具体的に、描画装置１０１は、図形情報バッファ３１１の１０２４［バイト］から、図形情報以外の描画命令のデータサイズ項目の値２５６［バイト］を減算する。減算結果となる７６８［バイト］が図形情報ＧＩＮＦ２を書き込める領域となる。
【０１１４】
次に、描画装置１０１は、７６８［バイト］に書き込む図形情報ＧＩＮＦ２の図形が描画される分割領域ＤＡＲを選択する。図１７に示す図形情報サイズリスト４１１を参照すると、レコード１６０１−６が示す分割領域ＤＡＲ＿１＿６に描画される図形情報のデータサイズの値が７６８［バイト］である。したがって、描画装置１０１は、図形情報バッファ３１１に、書き込む図形情報ＧＩＮＦ２の図形が描画される分割領域ＤＡＲを、レコード１６０１−６が示す分割領域ＤＡＲ＿１＿６に選択する。次に、対応する図形情報ＧＩＮＦ２が書き込めなかった分割領域ＤＡＲ＿７と分割領域ＤＡＲ＿８について、図１８を用いて説明する。
【０１１５】
図１８は、実施の形態２にかかる図形情報サイズリストの更新例を示す説明図（その３）である。図１８では、描画される図形情報ＧＩＮＦ２が書き込めなかったＹ＝３６０〜４７９［画素］の分割領域ＤＡＲ＿７と分割領域ＤＡＲ＿８について、分割領域に描画される図形情報のデータサイズ項目の値を更新する。具体的に、描画装置１０１は、レコード１６０１−７に示す分割領域ＤＡＲ＿７に描画される図形情報のデータサイズ項目を、１０２４［バイト］から、書き込んだデータサイズ７６８［バイト］を減算した値２５６［バイト］で更新する。同様に、描画装置１０１は、レコード１６０１−８に示す分割領域＿７＿８に描画される図形情報のデータサイズ項目を、１１５２［バイト］から、書き込んだデータサイズ７６８［バイト］を減算した値３８４［バイト］で更新する。
【０１１６】
図１８で示すとおり、残った図形情報ＧＩＮＦ２のデータサイズは、３８４［バイト］であり、図形情報バッファ３１１に書き込める記憶容量は、図形情報以外の描画命令のデータサイズを除いた７６８［バイト］である。したがって、描画装置１０１は、Ｙ＝０〜３５９の分割領域ＤＡＲ＿１＿６の画像が生成された後、レコード１６０１−８が示すＹ＝３６０〜４７９の分割領域ＤＡＲ＿７＿８に描画される図形の図形情報ＧＩＮＦ２を図形情報バッファ３１１に書き込む。次に、図１９〜図２１を用いて、実施の形態２にかかる描画処理のフローチャートを示す。
【０１１７】
図１９は、実施の形態２にかかる描画処理手順の一例を示すフローチャート（その１）である。また、実施の形態２にかかる描画処理手順の一例を示すフローチャート（その２）は、実施の形態１にかかる描画処理と同一であるため、説明を省略する。また、図１９に示すステップＳ１９０１〜ステップＳ１９０４、ステップＳ１９１１の処理については、図１２に示したステップＳ１２０１〜ステップＳ１２０４、ステップＳ１２１１と同一の処理であるため、説明を省略する。
【０１１８】
描画装置１０１は、変数ｙｍａｘに所定値を設定する（ステップＳ１９０５）。ここで、所定値は、コンピュータシステム２００、または描画装置１０１の開発者によって設定される値であり、描画領域ＤＩＳを、重複しないように分割した際の分割領域ＤＡＲの大きさとなる。たとえば、描画領域ＤＩＳが横６４０［画素］×縦４８０［画素］であり、描画領域ＤＩＳをＹ座標に従って８分割した場合、所定値は、４８０／８＝６０となる。
【０１１９】
次に、描画装置１０１は、Ｙ＝０〜ｙｍａｘの分割領域ＤＡＲを選択する（ステップＳ１９０６）。続けて、描画装置１０１は、生成した図形情報ＧＩＮＦ２の図形の一部または全部が選択した分割領域ＤＡＲに描画されるか否かを判断する（ステップＳ１９０７）。具体的に、描画装置１０１は、図形情報ＧＩＮＦ２の図形の開始位置項目がｙｍａｘより小さい、または図形情報ＧＩＮＦ２の図形の終了位置項目が０より大きい場合、図形情報ＧＩＮＦ２の図形の一部または全部が選択した分割領域ＤＡＲに描画されると判断する。
【０１２０】
生成した図形情報ＧＩＮＦ２の図形の一部または全部が選択した分割領域ＤＡＲに描画される場合（ステップＳ１９０７：Ｙｅｓ）、描画装置１０１は、図形情報サイズリスト４１１のうちの選択した分割領域ＤＡＲに描画される図形情報のデータサイズ項目の値を更新する（ステップＳ１９０８）。
【０１２１】
ステップＳ１９０８の実行終了後、または生成した図形情報ＧＩＮＦ２の図形が選択した分割領域ＤＡＲに描画されない場合（ステップＳ１９０７：Ｎｏ）、描画装置１０１は、描画領域ＤＩＳ全てとなる分割領域ＤＡＲを選択したか否かを判断する（ステップＳ１９０９）。描画領域ＤＩＳの中に分割領域ＤＡＲに含まれない領域がある場合（ステップＳ１９０９：Ｎｏ）、描画装置１０１は、ｙｍａｘに、所定値を加算する（ステップＳ１９１０）。ステップＳ１９１０の処理実行後、描画装置１０１は、ステップＳ１９０６の処理に移行する。
【０１２２】
また、ステップＳ１９１１の処理実行後、または、描画領域ＤＩＳ全てとなる分割領域ＤＡＲを選択した場合（ステップＳ１９０９：Ｙｅｓ）、描画装置１０１は、合計データサイズ項目を更新する（ステップＳ１９１２）。ステップＳ１９１２の処理実行後、描画装置１０１は、図１３に示したステップＳ１３０１の処理に移行する。
【０１２３】
図２０は、実施の形態２にかかるオーバーフロー時の描画処理手順の一例を示すフローチャート（その１）である。また、図２１は、実施の形態２にかかるオーバーフロー時の描画処理手順の一例を示すフローチャート（その２）である。図２０にて示すステップＳ２００２〜ステップＳ２００５と、ステップＳ２００９の処理は、図１４にて示したステップＳ１４０２〜ステップＳ１４０５と、ステップＳ１４１２と同一の処理であるので、説明を省略する。
【０１２４】
描画装置１０１は、変数ＯｖｅｒＹに０を設定する（ステップＳ２００１）。変数ＯｖｅｒＹは、オーバーフローして、書き込めなかった分割領域ＤＡＲのＹ座標の最小値を示す変数である。次に、描画装置１０１は、ステップＳ２００２の処理に移行する。
【０１２５】
ステップＳ２００５の実行終了後、描画装置１０１は、図形情報バッファ３１１のデータ容量と図形情報サイズリスト４１１とから、図形情報バッファ３１１に書き込める図形情報ＧＩＮＦ２の図形が描画される分割領域ＤＡＲを選択する（ステップＳ２００６）。次に、描画装置１０１は、生成した図形情報ＧＩＮＦ２の図形の一部または全部が選択した分割領域ＤＡＲに描画されるか否かを判断する（ステップＳ２００７）。生成した図形情報ＧＩＮＦ２の図形の一部または全部が選択した分割領域ＤＡＲに描画される場合（ステップＳ２００７：Ｙｅｓ）、描画装置１０１は、図形情報バッファ３１１に生成した図形情報ＧＩＮＦ２を書き込む（ステップＳ２００８）。ステップＳ２００８の実行終了後、または、生成した図形情報ＧＩＮＦ２の図形の一部または全部が選択した分割領域ＤＡＲに描画されない場合（ステップＳ２００７：Ｎｏ）、描画装置１０１は、図２１に示すステップＳ２１０１の処理に移行する。
【０１２６】
ステップＳ２００７：Ｎｏの場合、または、ステップＳ２００８の実行終了後、描画装置１０１は、ｙｍａｘに、所定値を設定する（ステップＳ２１０１）。次に、描画装置１０１は、ＯｖｅｒＹに、選択した分割領域ＤＡＲのＹ座標の最大値に１追加した値を設定する（ステップＳ２１０２）。続けて、描画装置１０１は、ＯｖｅｒＹ〜ＯｖｅｒＹ＋ｙｍａｘの分割領域ＤＡＲを選択する（ステップＳ２１０３）。
【０１２７】
次に、描画装置１０１は、生成した図形情報ＧＩＮＦ２の図形の一部または全部が選択した分割領域ＤＡＲに描画されるか否かを判断する（ステップＳ２１０４）。生成した図形情報ＧＩＮＦ２の図形の一部または全部が選択した分割領域ＤＡＲに描画される場合（ステップＳ２１０４：Ｙｅｓ）、描画装置１０１は、図形情報サイズリスト４１１のうちの、選択した分割領域ＤＡＲに描画される図形情報のデータサイズ項目の値を更新する（ステップＳ２１０５）。ステップＳ２１０５の処理実行後、または、生成した図形情報ＧＩＮＦ２の図形の一部または全部が選択した分割領域ＤＡＲに描画されない場合（ステップＳ２１０４：Ｎｏ）、描画装置１０１は、ＯｖｅｒＹ以降の描画領域ＤＩＳ全てとなる分割領域ＤＡＲを選択したか否かを判断する（ステップＳ２１０６）。
【０１２８】
ＯｖｅｒＹ以降の描画領域ＤＩＳのうち分割領域ＤＡＲに含まれない領域がある場合（ステップＳ２１０６：Ｎｏ）、描画装置１０１は、ｙｍａｘに、所定値を追加した値を設定する（ステップＳ２１０７）。ステップＳ２１０７の処理終了後、描画装置１０１は、ステップＳ２１０４の処理に移行する。
【０１２９】
ＯｖｅｒＹ以降の描画領域ＤＩＳ全てとなる分割領域ＤＡＲを選択した場合（ステップＳ２１０６：Ｙｅｓ）、または、ステップＳ２００９の実行終了後、描画装置１０１は、取得した全ての図形情報以外の描画命令ＤＣＯＭと全ての頂点情報ＶＩＮＦを選択したか否かを判断する（ステップＳ２１０８）。取得した図形情報以外の描画命令ＤＣＯＭと頂点情報ＶＩＮＦのうち未選択の情報がある場合（ステップＳ２１０８：Ｎｏ）、描画装置１０１は、次の図形情報以外の描画命令ＤＣＯＭか、頂点情報ＶＩＮＦかのいずれか一方を選択する。選択後、描画装置１０１は、ステップＳ２００４の処理に移行する。
【０１３０】
取得した全ての図形情報以外の描画命令ＤＣＯＭと全ての頂点情報ＶＩＮＦを選択した場合（ステップＳ２１０８：Ｙｅｓ）、描画装置１０１は、ＯｖｅｒＹが描画領域ＤＩＳのＹ座標の最大値となるか否かを判断する（ステップＳ２１０９）。ＯｖｅｒＹが描画領域ＤＩＳのＹ座標の最大値でない場合（ステップＳ２１０９：Ｎｏ）、描画装置１０１は、取得した全ての図形情報以外の描画命令ＤＣＯＭと全ての頂点情報ＶＩＮＦの選択履歴を消去して、ステップＳ２００３の処理に移行する。
【０１３１】
ＯｖｅｒＹが描画領域ＤＩＳのＹ座標の最大値である場合（ステップＳ２１０９：Ｙｅｓ）、描画装置１０１は、オーバーフロー時の描画処理を終了する。オーバーフロー時の描画処理を実行することにより、オーバーフローする場合でも、全ての図形情報以外の描画命令ＤＣＯＭと全ての図形情報ＧＩＮＦ２を図形情報バッファ３１１に書き込むことができる。
【０１３２】
以上説明したように、実施の形態２にかかる描画装置１０１によれば、描画領域ＤＩＳを、１つの分割領域ＤＡＲが他の分割領域ＤＡＲに含まれるように分割して、それぞれの分割領域ＤＡＲに描画される図形の図形情報の合計データサイズを算出する。これにより、描画装置１０１は、複数の分割領域ＤＡＲに跨る図形情報ＧＩＮＦがあっても、各分割領域ＤＡＲに描画される図形の図形情報ＧＩＮＦが複製されることを抑制することができる。
【０１３３】
なお、本実施の形態で説明した描画方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本描画プログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本描画プログラムは、インターネット等のネットワークを介して配布してもよい。
【０１３４】
また、本実施の形態で説明した描画装置１０１は、スタンダードセルやストラクチャードＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）などの特定用途向けＩＣ（以下、単に「ＡＳＩＣ」と称す。）やＦＰＧＡなどのＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）によっても実現することができる。たとえば、描画装置１０１の座標変換部３０１〜ラインデプスバッファ３１４をＨＤＬ記述によって機能定義し、そのＨＤＬ記述を論理合成してＡＳＩＣやＰＬＤに与えることにより、描画装置１０１を製造することができる。また、描画装置１０１が、処理量の多い、生成部３０４の機能を有し、座標変換部３０１、図形情報分割領域選択部３０２を、ＣＰＵ２０１が実行してもよい。
【０１３５】
上述した実施の形態１、２に関し、さらに以下の付記を開示する。
【０１３６】
（付記１）描画領域に描画される図形の頂点の座標位置を含む図形情報を取得する取得部と、
前記取得部によって取得された前記図形情報に基づいて、前記描画領域を分割した分割領域群のうちの各々の分割領域に対応して、前記各々の分割領域に描画される一部または全部の図形の図形情報を特定する特定部と、
前記図形情報のデータサイズに基づいて、前記特定部によって特定された前記各々の分割領域に描画される一部または全部の図形の図形情報の合計データサイズを、前記各々の分割領域に対応して算出する算出部と、
前記取得部によって取得された前記図形情報のうちの描画対象となる図形の図形情報の記憶先となる記憶領域のデータ容量と、前記算出部によって前記各々の分割領域に対応して算出された前記図形情報の合計データサイズとに基づいて、前記分割領域群から前記描画対象となる図形の描画先となる分割領域を選択する選択部と、
前記選択部によって選択された前記描画先となる分割領域に描画される図形の図形情報を前記記憶領域に書き込む書込部と、
前記書込部によって前記記憶領域に書き込まれた前記図形情報に基づいて、前記描画先となる分割領域の画像を生成する生成部と、
を有することを特徴とする描画装置。
【０１３７】
（付記２）前記取得部は、
前記描画領域に描画される図形に影響を与える命令を取得し、
前記算出部は、
前記取得部によって取得された前記命令に基づいて、前記命令の合計データサイズを算出し、
前記選択部は、
前記記憶領域のデータ容量と、前記算出部によって前記各々の分割領域に対応して算出された前記図形情報の合計データサイズと、前記算出部によって算出された前記命令の合計データサイズとに基づいて、前記分割領域群から前記描画対象となる図形の描画先となる分割領域を選択し、
前記書込部は、
前記選択部によって選択された前記描画先となる分割領域に描画される図形の図形情報と前記命令とを前記記憶領域に書き込むことを特徴とする付記１に記載の描画装置。
【０１３８】
（付記３）前記特定部は、
前記取得部によって取得された図形情報に基づいて、前記描画領域の一部である第１の分割領域と、前記描画領域の一部または全部であり前記第１の分割領域を含み前記第１の分割領域より大きい第２の分割領域を含む分割領域群のうちの各々の分割領域に対応して、前記各々の分割領域に描画される一部または全部の図形の図形情報を特定し、
前記選択部は、
前記記憶領域のデータ容量と、前記算出部によって前記第１の分割領域に対応して算出された前記図形情報の合計データサイズと、前記算出部によって前記第２の分割領域に対応して算出された前記図形情報の合計データサイズとに基づいて、前記描画先となる分割領域の候補が前記第１の分割領域と前記第２の分割領域となる場合、前記第２の分割領域を前記図形の描画先となる分割領域として選択することを特徴とする付記１または２に記載の描画装置。
【０１３９】
（付記４）前記選択部は、
前記記憶領域のデータ容量と、前記算出部によって前記各々の分割領域に対応して算出された前記合計データサイズとに基づいて、前記分割領域群のうちの前記選択部によって選択された前記描画先となる分割領域と前記描画先となる分割領域に含まれる分割領域とを除く残余の分割領域から前記描画対象となる図形の新たな描画先となる分割領域を選択し、
前記書込部は、
前記生成部によって前記描画先となる分割領域の画像が生成された結果、前記選択部によって選択された前記新たな描画先となる分割領域に描画される図形の図形情報を前記記憶領域に書き込み、
前記生成部は、
前記書込部によって前記記憶領域に書き込まれた前記図形情報に基づいて、前記新たな描画先となる分割領域の画像を生成することを特徴とする付記１〜３のいずれか一つに記載の描画装置。
【０１４０】
（付記５）コンピュータが、
描画領域に描画される図形の頂点の座標位置を含む図形情報を取得し、
取得した前記図形情報に基づいて、前記描画領域を分割した分割領域群のうちの各々の分割領域に対応して、前記各々の分割領域に描画される一部または全部の図形の図形情報を特定し、
前記図形情報のデータサイズに基づいて、特定した前記各々の分割領域に描画される一部または全部の図形の図形情報の合計データサイズを、前記各々の分割領域に対応して算出し、
取得した前記図形情報のうちの描画対象となる図形の図形情報の記憶先となる記憶領域のデータ容量と、前記各々の分割領域に対応して算出した前記図形情報の合計データサイズとに基づいて、前記分割領域群から前記描画対象となる図形の描画先となる分割領域を選択し、
選択した前記描画先となる分割領域に描画される図形の図形情報を前記記憶領域に書き込み、
前記記憶領域に書き込んだ前記図形情報に基づいて、前記描画先となる分割領域の画像を生成する、
処理を実行することを特徴とする描画方法。
【０１４１】
（付記６）コンピュータに、
描画領域に描画される図形の頂点の座標位置を含む図形情報を取得し、
取得した前記図形情報に基づいて、前記描画領域を分割した分割領域群のうちの各々の分割領域に対応して、前記各々の分割領域に描画される一部または全部の図形の図形情報を特定し、
前記図形情報のデータサイズに基づいて、特定した前記各々の分割領域に描画される一部または全部の図形の図形情報の合計データサイズを、前記各々の分割領域に対応して算出し、
取得した前記図形情報のうちの描画対象となる図形の図形情報の記憶先となる記憶領域のデータ容量と、前記各々の分割領域に対応して算出した前記図形情報の合計データサイズとに基づいて、前記分割領域群から前記描画対象となる図形の描画先となる分割領域を選択し、
選択した前記描画先となる分割領域に描画される図形の図形情報を前記記憶領域に書き込む、
処理を実行させることを特徴とする描画プログラム。
【０１４２】
（付記７）描画領域に描画される図形の頂点の座標位置を含む図形情報を取得し、
取得した前記図形情報に基づいて、前記描画領域を分割した分割領域群のうちの各々の分割領域に対応して、前記各々の分割領域に描画される一部または全部の図形の図形情報を特定し、
前記図形情報のデータサイズに基づいて、特定した前記各々の分割領域に描画される一部または全部の図形の図形情報の合計データサイズを、前記各々の分割領域に対応して算出し、
取得した前記図形情報のうちの描画対象となる図形の図形情報の記憶先となる記憶領域のデータ容量と、前記各々の分割領域に対応して算出した前記図形情報の合計データサイズとに基づいて、前記分割領域群から前記描画対象となる図形の描画先となる分割領域を選択し、
選択した前記描画先となる分割領域に描画される図形の図形情報を前記記憶領域に書き込む、
処理をコンピュータに実行させる描画プログラムを記録したことを特徴とする記録媒体。
【符号の説明】
【０１４３】
１０１  描画装置
１０２  バッファ
３０４  生成部
３２６  書込部
４０１  取得部
４０２  特定部
４０３  算出部
４０４  選択部
４１１  図形情報サイズリスト
【図１】
2014110036.tif 000003
【図２】
2014110036.tif 000004
【図３】
2014110036.tif 000005
【図４】
2014110036.tif 000006
【図５】
2014110036.tif 000007
【図６】
2014110036.tif 000008
【図７】
2014110036.tif 000009
【図８】
2014110036.tif 000010
【図９】
2014110036.tif 000011
【図１０】
2014110036.tif 000012
【図１１】
2014110036.tif 000013
【図１２】
2014110036.tif 000014
【図１３】
2014110036.tif 000015
【図１４】
2014110036.tif 000016
【図１５】
2014110036.tif 000017
【図１６】
2014110036.tif 000018
【図１７】
2014110036.tif 000019
【図１８】
2014110036.tif 000020
【図１９】
2014110036.tif 000021
【図２０】
2014110036.tif 000022
【図２１】
2014110036.tif 000023