(57)【特許請求の範囲】
【請求項１】
多角形の外周線を表すベクトルデータ群を入力するベクトルデータ群入力手段と、
前記ベクトルデータ群入力手段により入力された多角形の外周線を表すベクトルデータ群を管理するベクトルデータ群管理手段と、
多角形の内部領域の属性を表す描画属性データを入力する描画属性データ入力手段と、前記描画属性データ入力手段により入力された描画属性データを管理する描画属性データ管理手段と、
メモリ使用状況を取得するメモリ使用状況データ入力手段と、
前記メモリ使用状況データ入力手段により入力されたメモリ使用状況データを管理するメモリ使用状況データ管理手段と、
メモリ使用状況データと比較するメモリ使用状況閾値を管理する第１の閾値管理手段と、
自己交差点数と比較する図形外周線の自己交差点数閾値を管理する第2の閾値管理手段と、
前記第１の閾値管理手段により管理されたメモリ使用状況閾値と、前記メモリ使用状況データ入力手段により管理されたメモリ使用状況データとを比較することで、描画処理を切り替える第１の描画処理切り替え手段と、
前記第１の描画処理切り替え手段により実行され、前記ベクトルデータ群管理手段により管理されたベクトルデータ群を読み込み、特定の領域のみを塗りつぶす、塗りつぶし可否判定機能を利用した描画処理を行うための描画データを生成する第1の描画データ生成手段と、
前記第1の描画データ生成手段により生成された描画データ、および前記描画属性データ管理手段により管理された描画属性データを読み込み、塗りつぶし可否判定機能の設定と、塗りつぶし可否判定機能を利用した描画処理を行う第１の描画処理手段と、
前記第１の描画処理切り替え手段により実行され、前記ベクトルデータ群管理手段により管理されたベクトルデータ群を読み込み、図形外周線の自己交差点を算出する自己交差点算出手段と、
前記自己交差点算出手段により算出された図形外周線の自己交差点の情報を管理する自己交差点管理手段と、
前記自己交差点管理手段により管理された図形外周線の自己交差点数と、前記第2の閾値管理手段により管理された自己交差点数閾値とを比較することで描画処理を切り替える第2の描画処理切り替え手段と、
前記第2の描画処理切り替え手段により実行され、前記ベクトルデータ群管理手段により管理されたベクトルデータ群、および前記描画属性データ管理手段により管理された描画属性データを読み込み、多角形の内部領域を判定し、三角形の集合に分割する処理により三角形データ群を生成する第2の描画データ生成手段と、
前記第2の描画データ生成手段により生成された三角形データ群、および前記描画属性データ管理手段により管理された描画属性データを読み込み、描画処理を行う第２の描画処理手段と、
前記第2の描画処理切り替え手段により実行され、前記ベクトルデータ群管理手段により管理されたベクトルデータ群、および前記描画属性データ管理手段により管理された描画属性データを読み込み、多角形の内部領域を判定し、線分の集合に分割する処理により線分データ群を生成する第３の描画データ生成手段と、
前記第３の描画データ生成手段により生成された線分データ群、および前記描画属性データ管理手段により管理された描画属性データを読み込み、描画処理をおこなう第３の描画処理手段とを具備することを特徴とする図形描画装置。
【請求項２】
前記第１の閾値管理手段は、更にメモリ使用状況データと比較するメモリ使用状況閾値を補正する機能を有し、
前記第2の閾値管理手段は、更に自己交差点数と比較する図形外周線の自己交差点数閾値を補正する機能を有したことを特徴とする請求項１記載の図形描画装置。
【請求項３】
多角形の外周線を表すベクトルデータ群を入力するベクトルデータ群入力手段と、
前記ベクトルデータ群入力手段により入力された多角形の外周線を表すベクトルデータ群を管理するベクトルデータ群管理手段と、
多角形の内部領域の属性を表す描画属性データを入力する描画属性データ入力手段と、
前記描画属性データ入力手段により入力された描画属性データを管理する描画属性データ管理手段と、
自己交差点数と比較する図形外周線の自己交差点数閾値を管理する閾値管理手段と、
前記ベクトルデータ群管理手段により管理されたベクトルデータ群を読み込み、図形外周線の自己交差点を算出する自己交差点算出手段と、
前記自己交差点算出手段により算出された図形外周線の自己交差点の情報を管理する自己交差点管理手段と、
前記自己交差点管理手段により管理された図形外周線の自己交差点数と、前記第2の閾値管理手段により管理された自己交差点数閾値とを比較することで、描画処理を切り替える描画処理切り替え手段と、
前記描画処理切り替え手段により実行され、前記ベクトルデータ群管理手段により管理されたベクトルデータ群、および前記描画属性データ管理手段により管理された描画属性データを読み込み、多角形の内部領域を判定し、三角形の集合に分割する処理により三角形データ群を生成する第１の描画データ生成手段と、
前記第１の描画データ生成手段により生成された三角形データ群、および前記描画属性データ管理手段により管理された描画属性データを読み込み、描画処理を行う第１の描画処理手段と、
前記描画処理切り替え手段により実行され、前記ベクトルデータ群管理手段により管理されたベクトルデータ群、および前記描画属性データ管理手段により管理された描画属性データを読み込み、多角形の内部領域を判定し、線分の集合に分割する処理により線分データ群を生成する第２の描画データ生成手段と、
前記第２の描画データ生成手段により生成された線分データ群、および前記描画属性データ管理手段により管理された描画属性データを読み込み、描画処理をおこなう第２の描画処理手段とを具備することを特徴とする図形描画装置。
【請求項４】
多角形の外周線を表すベクトルデータ群を入力するベクトルデータ群入力手段と、
前記ベクトルデータ群入力手段により入力された多角形の外周線を表すベクトルデータ群を管理するベクトルデータ群管理手段と、
多角形の内部領域の属性を表す描画属性データを入力する描画属性データ入力手段と、
前記描画属性データ入力手段により入力された描画属性データを管理する描画属性データ管理手段と、
メモリ使用状況を取得するメモリ使用状況データ入力手段と、
前記メモリ使用状況データ入力手段により入力されたメモリ使用状況データを管理するメモリ使用状況データ管理手段と、
メモリ使用状況データと比較するメモリ使用状況閾値を管理する閾値管理手段と、
前記閾値管理手段により管理されたメモリ使用状況閾値と、前記メモリ使用状況データ入力手段により管理されたメモリ使用状況データとを比較することで、描画処理を切り替える描画処理切り替え手段と、
前記描画処理切り替え手段により実行され、前記ベクトルデータ群管理手段により管理されたベクトルデータ群を読み込み、特定の領域のみを塗りつぶす、塗りつぶし可否判定機能を利用した描画処理を行うための描画データを生成する第1の描画データ生成手段と、
前記第1の描画データ生成手段により生成された描画データ、および前記描画属性データ管理手段により管理された描画属性データを読み込み、塗りつぶし可否判定機能の設定と、塗りつぶし可否判定機能を利用した描画処理を行う第１の描画処理手段と、
前記描画処理切り替え手段により実行され、前記ベクトルデータ群管理手段により管理されたベクトルデータ群、および前記描画属性データ管理手段により管理された描画属性データを読み込み、多角形の内部領域を判定し、線分の集合に分割する処理により線分データ群を生成する第２の描画データ生成手段と、
前記第２の描画データ生成手段により生成された線分データ群、および前記描画属性データ管理手段により管理された描画属性データを読み込み、描画処理をおこなう第２の描画処理手段と、
前記第１の描画処理手段又は第２の描画処理手段で描画された画像を出力する描画結果出力手段とを具備し、
前記閾値管理手段は、
利用可能なメモリの最大量と前記描画結果出力手段の出力解像度とに基づいて、前記メモリ使用状況閾値を決定する
ことを特徴とする図形描画装置。
【請求項５】
多角形の外周線を表すベクトルデータ群を入力するベクトルデータ群入力手段と、
前記ベクトルデータ群入力手段により入力された多角形の外周線を表すベクトルデータ群を管理するベクトルデータ群管理手段と、
多角形の内部領域の属性を表す描画属性データを入力する描画属性データ入力手段と、
前記描画属性データ入力手段により入力された描画属性データを管理する描画属性データ管理手段と、
メモリ使用状況を取得するメモリ使用状況データ入力手段と、
前記メモリ使用状況データ入力手段により入力されたメモリ使用状況データを管理するメモリ使用状況データ管理手段と、
メモリ使用状況データと比較するメモリ使用状況閾値を管理する閾値管理手段と、
前記閾値管理手段により管理されたメモリ使用状況閾値と、前記メモリ使用状況データ入力手段により管理されたメモリ使用状況データとを比較することで、描画処理を切り替える描画処理切り替え手段と、
前記描画処理切り替え手段により実行され、前記ベクトルデータ群管理手段により管理されたベクトルデータ群を読み込み、特定の領域のみを塗りつぶす、塗りつぶし可否判定機能を利用した描画処理を行うための描画データを生成する第1の描画データ生成手段と、
前記第1の描画データ生成手段により生成された描画データ、および前記描画属性データ管理手段により管理された描画属性データを読み込み、塗りつぶし可否判定機能の設定と、塗りつぶし可否判定機能を利用した描画処理を行う第１の描画処理手段と、
前記描画処理切り替え手段により実行され、前記ベクトルデータ群管理手段により管理されたベクトルデータ群、および前記描画属性データ管理手段により管理された描画属性データを読み込み、多角形の内部領域を判定し、三角形の集合に分割する処理により三角形データ群を生成する第2の描画データ生成手段と、
前記第2の描画データ生成手段により生成された三角形データ群、および前記描画属性データ管理手段により管理された描画属性データを読み込み、描画処理を行う第２の描画処理手段と、
前記第１の描画処理手段又は第２の描画処理手段で描画された画像を出力する描画結果出力手段とを具備し、
前記閾値管理手段は、
利用可能なメモリの最大量と前記描画結果出力手段の出力解像度とに基づいて、前記メモリ使用状況閾値を決定することを特徴とする図形描画装置。
【請求項６】
掃引線を表すベクトルデータ群を入力する掃引線データ入力手段と、
前記掃引線データ入力手段により入力された掃引線データを管理する掃引線データ管理手段と、
掃引形状を表すベクトルデータ群を入力する掃引形状データ入力手段と、
前記掃引形状データ入力手段により入力された掃引形状データを管理する掃引形状データ管理手段と、
図形の内部領域の属性を表す描画属性データを管理する描画属性データ入力手段と、
前記描画属性データ入力手段により入力された描画属性データを管理する描画属性データ管理手段と、
メモリ使用状況を取得するメモリ使用状況データ入力手段と、
前記メモリ使用状況データ入力手段により入力されたメモリ使用状況データを管理するメモリ使用状況データ管理手段と、
描画処理状況データを取得する描画処理状況データ入力手段と、
前記描画処理状況データ入力手段により入力された描画処理状況データを管理する描画処理状況データ管理手段と、
描画属性データの不透明度と比較する不透明度閾値を管理する第１の閾値管理手段と、
メモリ使用状況データと比較するメモリ使用状況閾値を管理する第２の閾値管理手段と、
描画処理状況データと比較する描画処理状況データの閾値を管理する第３の閾値管理手段と、
前記描画属性データ管理手段により管理された描画属性データの不透明度と、前記第１の閾値管理手段により管理された不透明度閾値とを比較することで、描画処理を切り替える第１の描画処理切り替え手段と、
前記第１の描画処理切り替え手段により実行され、前記掃引線データ管理手段により管理された掃引線データ、および前記掃引形状データ管理手段により管理された掃引形状データを読み込み、図形の外周線を用いて、描画データの生成を行う第１の描画データ生成手段と、
前記第１の描画データ生成手段により生成された描画データ、および前記描画属性データ管理手段により管理された描画属性データを読み込み、描画処理を行う第１の描画処理手段と、
前記第１の描画処理切り替え手段により実行され、前記メモリ使用状況データ管理手段により管理されているメモリ使用状況データと、前記第２の閾値管理手段により管理されているメモリ使用状況閾値とを比較することで、描画処理を切り替える第２の描画処理切り替え手段と、
前記第２の描画処理切り替え手段により実行され、前記掃引線データ管理手段により管理された掃引線データ、前記掃引形状データ管理手段により管理された掃引形状データを読み込み、特定の領域のみを塗りつぶす、塗りつぶし可否判定機能を利用した描画処理を行うための描画データを生成する第２の描画データ生成手段と、
前記第２の描画データ生成手段により生成された描画データ、および前記描画属性データ管理手段により管理された描画属性データを読み込み、塗りつぶし可否判定機能の設定と、塗りつぶし可否判定機能を利用した描画処理を行う第２の描画処理手段と、
前記第２の描画処理切り替え手段により実行され、前記描画処理状況データ管理手段により管理されている描画処理状況データと、前記第３の閾値管理手段により管理されている描画処理状況閾値とを比較することで、描画処理を切り替える第３の描画処理切り替え手段と、
前記第３の描画処理切り替え手段により実行され、前記掃引線データ管理手段により管理された掃引線データ、および前記掃引形状データ管理手段により管理された掃引形状データを読み込み、特定の領域のみを塗りつぶす、塗りつぶし可否判定を、描画結果出力領域を利用して行う描画処理のための描画データを生成する第３の描画データ生成手段と、
前記第３の描画データ生成手段により生成された描画データ、および前記描画属性データ管理手段により管理された描画属性データを読み込み、描画結果出力領域を利用した塗りつぶし可否判定をする描画処理を行う第３の描画処理手段と、
前記第３の描画処理切り替え手段により実行され、前記掃引線データ管理手段により管理された掃引線データ、および前記掃引形状データ管理手段により管理された掃引形状データを読み込み、図形外周線を算出して、多角形描画処理により描画データ生成を行う第４の描画データ生成手段と、
前記第４の描画データ生成手段により生成された描画データ、および前記描画属性データ管理手段により管理された描画属性データを読み込み、描画処理を行う第４の描画処理手段とを具備することを特徴とする図形描画装置。
【請求項７】
前記第２の閾値管理手段は、更にメモリ使用状況データと比較するメモリ使用状況閾値を補正する機能を有し、
前記第３の閾値管理手段は、更に描画処理状況データと比較する描画処理状況データの閾値を補正する機能を有していることを特徴とする請求項６記載の図形描画装置。
【請求項８】
掃引線を表すベクトルデータ群を入力する掃引線データ入力手段と、
前記掃引線データ入力手段により入力された掃引線データを管理する掃引線データ管理手段と、
掃引形状を表すベクトルデータ群を入力する掃引形状データ入力手段と、
前記掃引形状データ入力手段により入力された掃引形状データを管理する掃引形状データ管理手段と、
図形の内部領域の属性を表す描画属性データを管理する描画属性データ入力手段と、
前記描画属性データ入力手段により入力された描画属性データを管理する描画属性データ管理手段と、
メモリ使用状況を取得するメモリ使用状況データ入力手段と、
前記メモリ使用状況データ入力手段により入力されたメモリ使用状況データを管理するメモリ使用状況データ管理手段と、
描画処理状況データを取得する描画処理状況データ入力手段と、
前記描画処理状況データ入力手段により入力された描画処理状況データを管理する描画処理状況データ管理手段と、
メモリ使用状況データと比較するメモリ使用状況閾値を管理する第１の閾値管理手段と、
描画処理状況データと比較する描画処理状況データの閾値を管理する第２の閾値管理手段と、
前記メモリ使用状況データ管理手段により管理されているメモリ使用状況データと、前記第１の閾値管理手段により管理されているメモリ使用状況閾値とを比較することで、描画処理を切り替える第１の描画処理切り替え手段と、
前記第１の描画処理切り替え手段により実行され、前記掃引線データ管理手段により管理された掃引線データ、前記掃引形状データ管理手段により管理された掃引形状データを読み込み、特定の領域のみを塗りつぶす、塗りつぶし可否判定機能を利用した描画処理を行うための描画データを生成する第１の描画データ生成手段と、
前記第１の描画データ生成手段により生成された描画データ、および前記描画属性データ管理手段により管理された描画属性データを読み込み、塗りつぶし可否判定機能の設定と、塗りつぶし可否判定機能を利用した描画処理を行う第１の描画処理手段と、
前記第１の描画処理切り替え手段により実行され、前記描画処理状況データ管理手段により管理されている描画処理状況データと、前記第２の閾値管理手段により管理されている描画処理状況閾値とを比較することで、描画処理を切り替える第２の描画処理切り替え手段と、
前記第２の描画処理切り替え手段により実行され、前記掃引線データ管理手段により管理された掃引線データ、および前記掃引形状データ管理手段により管理された掃引形状データを読み込み、特定の領域のみを塗りつぶす、塗りつぶし可否判定を、描画結果出力領域を利用して行う描画処理のための描画データを生成する第２の描画データ生成手段と、
前記第２の描画データ生成手段により生成された描画データ、および前記描画属性データ管理手段により管理された描画属性データを読み込み、描画結果出力領域を利用した塗りつぶし可否判定をする描画処理を行う第２の描画処理手段と、
前記第２の描画処理切り替え手段により実行され、前記掃引線データ管理手段により管理された掃引線データ、および前記掃引形状データ管理手段により管理された掃引形状データを読み込み、図形外周線を算出して、多角形描画処理により描画データ生成を行う第３の描画データ生成手段と、
前記第３の描画データ生成手段により生成された描画データ、および前記描画属性データ管理手段により管理された描画属性データを読み込み、描画処理を行う第３の描画処理手段とを具備することを特徴とする図形描画装置。
【請求項９】
掃引線を表すベクトルデータ群を入力する掃引線データ入力手段と、
前記掃引線データ入力手段により入力された掃引線データを管理する掃引線データ管理手段と、
掃引形状を表すベクトルデータ群を入力する掃引形状データ入力手段と、
前記掃引形状データ入力手段により入力された掃引形状データを管理する掃引形状データ管理手段と、
図形の内部領域の属性を表す描画属性データを管理する描画属性データ入力手段と、
前記描画属性データ入力手段により入力された描画属性データを管理する描画属性データ管理手段と、
描画処理状況データを取得する描画処理状況データ入力手段と、
前記描画処理状況データ入力手段により入力された描画処理状況データを管理する描画処理状況データ管理手段と、
描画属性データの不透明度と比較する不透明度閾値を管理する第１の閾値管理手段と、
描画処理状況データと比較する描画処理状況データの閾値を管理する第２の閾値管理手段と、
前記描画属性データ管理手段により管理された描画属性データの不透明度と、前記第１の閾値管理手段により管理された不透明度閾値とを比較することで、描画処理を切り替える第１の描画処理切り替え手段と、
前記第１の描画処理切り替え手段により実行され、前記掃引線データ管理手段により管理された掃引線データ、および前記掃引形状データ管理手段により管理された掃引形状データを読み込み、図形の外周線を用いて、描画データの生成を行う第１の描画データ生成手段と、
前記第１の描画データ生成手段により生成された描画データ、および前記描画属性データ管理手段により管理された描画属性データを読み込み、描画処理を行う第１の描画処理手段と、
前記第１の描画処理切り替え手段により実行され、前記描画処理状況データ管理手段により管理されている描画処理状況データと、前記第２の閾値管理手段により管理されている描画処理状況閾値とを比較することで、描画処理を切り替える第２の描画処理切り替え手段と、
前記第２の描画処理切り替え手段により実行され、前記掃引線データ管理手段により管理された掃引線データ、および前記掃引形状データ管理手段により管理された掃引形状データを読み込み、特定の領域のみを塗りつぶす、塗りつぶし可否判定を、描画結果出力領域を利用して行う描画処理のための描画データを生成する第２の描画データ生成手段と、
前記第２の描画データ生成手段により生成された描画データ、および前記描画属性データ管理手段により管理された描画属性データを読み込み、描画結果出力領域を利用した塗りつぶし可否判定をする描画処理を行う第２の描画処理手段と、
前記第２の描画処理切り替え手段により実行され、前記掃引線データ管理手段により管理された掃引線データ、および前記掃引形状データ管理手段により管理された掃引形状データを読み込み、図形外周線を算出して、多角形描画処理により描画データ生成を行う第３の描画データ生成手段と、
前記第３の描画データ生成手段により生成された描画データ、および前記描画属性データ管理手段により管理された描画属性データを読み込み、描画処理を行う第３の描画処理手段とを具備することを特徴とする図形描画装置。
【請求項１０】
掃引線を表すベクトルデータ群を入力する掃引線データ入力手段と、
前記掃引線データ入力手段により入力された掃引線データを管理する掃引線データ管理手段と、
掃引形状を表すベクトルデータ群を入力する掃引形状データ入力手段と、
前記掃引形状データ入力手段により入力された掃引形状データを管理する掃引形状データ管理手段と、
図形の内部領域の属性を表す描画属性データを管理する描画属性データ入力手段と、
前記描画属性データ入力手段により入力された描画属性データを管理する描画属性データ管理手段と、
メモリ使用状況を取得するメモリ使用状況データ入力手段と、
前記メモリ使用状況データ入力手段により入力されたメモリ使用状況データを管理するメモリ使用状況データ管理手段と、
描画属性データの不透明度と比較する不透明度閾値を管理する第１の閾値管理手段と、
メモリ使用状況データと比較するメモリ使用状況閾値を管理する第２の閾値管理手段と、
前記描画属性データ管理手段により管理された描画属性データの不透明度と、前記第１の閾値管理手段により管理された不透明度閾値とを比較することで、描画処理を切り替える第１の描画処理切り替え手段と、
前記第１の描画処理切り替え手段により実行され、前記掃引線データ管理手段により管理された掃引線データ、および前記掃引形状データ管理手段により管理された掃引形状データを読み込み、図形の外周線を用いて、描画データの生成を行う第１の描画データ生成手段と、
前記第１の描画データ生成手段により生成された描画データ、および前記描画属性データ管理手段により管理された描画属性データを読み込み、描画処理を行う第１の描画処理手段と、
前記第１の描画処理切り替え手段により実行され、前記メモリ使用状況データ管理手段により管理されているメモリ使用状況データと、前記第２の閾値管理手段により管理されているメモリ使用状況閾値とを比較することで、描画処理を切り替える第２の描画処理切り替え手段と、
前記第２の描画処理切り替え手段により実行され、前記掃引線データ管理手段により管理された掃引線データ、前記掃引形状データ管理手段により管理された掃引形状データを読み込み、特定の領域のみを塗りつぶす、塗りつぶし可否判定機能を利用した描画処理を行うための描画データを生成する第２の描画データ生成手段と、
前記第２の描画データ生成手段により生成された描画データ、および前記描画属性データ管理手段により管理された描画属性データを読み込み、塗りつぶし可否判定機能の設定と、塗りつぶし可否判定機能を利用した描画処理を行う第２の描画処理手段と、
前記第２の描画処理切り替え手段により実行され、前記掃引線データ管理手段により管理された掃引線データ、および前記掃引形状データ管理手段により管理された掃引形状データを読み込み、図形外周線を算出して、多角形描画処理により描画データ生成を行う第３の描画データ生成手段と、
前記第３の描画データ生成手段により生成された描画データ、および前記描画属性データ管理手段により管理された描画属性データを読み込み、描画処理を行う第３の描画処理手段とを具備することを特徴とする図形描画装置。
【請求項１１】
掃引線を表すベクトルデータ群を入力する掃引線データ入力手段と、
前記掃引線データ入力手段により入力された掃引線データを管理する掃引線データ管理手段と、
掃引形状を表すベクトルデータ群を入力する掃引形状データ入力手段と、
前記掃引形状データ入力手段により入力された掃引形状データを管理する掃引形状データ管理手段と、
図形の内部領域の属性を表す描画属性データを管理する描画属性データ入力手段と、
前記描画属性データ入力手段により入力された描画属性データを管理する描画属性データ管理手段と、
メモリ使用状況を取得するメモリ使用状況データ入力手段と、
前記メモリ使用状況データ入力手段により入力されたメモリ使用状況データを管理するメモリ使用状況データ管理手段と、
描画属性データの不透明度と比較する不透明度閾値を管理する第１の閾値管理手段と、
メモリ使用状況データと比較するメモリ使用状況閾値を管理する第２の閾値管理手段と、
前記描画属性データ管理手段により管理された描画属性データの不透明度と、前記第１の閾値管理手段により管理された不透明度閾値とを比較することで、描画処理を切り替える第１の描画処理切り替え手段と、
前記第１の描画処理切り替え手段により実行され、前記掃引線データ管理手段により管理された掃引線データ、および前記掃引形状データ管理手段により管理された掃引形状データを読み込み、図形の外周線を用いて、描画データの生成を行う第１の描画データ生成手段と、
前記第１の描画データ生成手段により生成された描画データ、および前記描画属性データ管理手段により管理された描画属性データを読み込み、描画処理を行う第１の描画処理手段と、
前記第１の描画処理切り替え手段により実行され、前記メモリ使用状況データ管理手段により管理されているメモリ使用状況データと、前記第２の閾値管理手段により管理されているメモリ使用状況閾値とを比較することで、描画処理を切り替える第２の描画処理切り替え手段と、
前記第２の描画処理切り替え手段により実行され、前記掃引線データ管理手段により管理された掃引線データ、前記掃引形状データ管理手段により管理された掃引形状データを読み込み、特定の領域のみを塗りつぶす、塗りつぶし可否判定機能を利用した描画処理を行うための描画データを生成する第２の描画データ生成手段と、
前記第２の描画データ生成手段により生成された描画データ、および前記描画属性データ管理手段により管理された描画属性データを読み込み、塗りつぶし可否判定機能の設定と、塗りつぶし可否判定機能を利用した描画処理を行う第２の描画処理手段と、
前記第２の描画処理切り替え手段により実行され、前記掃引線データ管理手段により管理された掃引線データ、および前記掃引形状データ管理手段により管理された掃引形状データを読み込み、特定の領域のみを塗りつぶす、塗りつぶし可否判定を、描画結果出力領域を利用して行う描画処理のための描画データを生成する第３の描画データ生成手段と、
前記第３の描画データ生成手段により生成された描画データ、および前記描画属性データ管理手段により管理された描画属性データを読み込み、描画結果出力領域を利用した塗りつぶし可否判定をする描画処理を行う第３の描画処理手段とを具備することを特徴とする図形描画装置。
【請求項１２】
掃引線を表すベクトルデータ群を入力する掃引線データ入力手段と、
前記掃引線データ入力手段により入力された掃引線データを管理する掃引線データ管理手段と、
掃引形状を表すベクトルデータ群を入力する掃引形状データ入力手段と、
前記掃引形状データ入力手段により入力された掃引形状データを管理する掃引形状データ管理手段と、
図形の内部領域の属性を表す描画属性データを管理する描画属性データ入力手段と、
前記描画属性データ入力手段により入力された描画属性データを管理する描画属性データ管理手段と、
描画属性データの不透明度と比較する不透明度閾値を管理する閾値管理手段と、
前記描画属性データ管理手段により管理された描画属性データの不透明度と、前記閾値管理手段により管理された不透明度閾値とを比較することで、描画処理を切り替える描画処理切り替え手段と、
前記描画処理切り替え手段により実行され、前記掃引線データ管理手段により管理された掃引線データ、および前記掃引形状データ管理手段により管理された掃引形状データを読み込み、図形の外周線を用いて、描画データの生成を行う第１の描画データ生成手段と、
前記第１の描画データ生成手段により生成された描画データ、および前記描画属性データ管理手段により管理された描画属性データを読み込み、描画処理を行う第１の描画処理手段と、
前記描画処理切り替え手段により実行され、前記掃引線データ管理手段により管理された掃引線データ、および前記掃引形状データ管理手段により管理された掃引形状データを読み込み、図形外周線を算出して、多角形描画処理により描画データ生成を行う第２の描画データ生成手段と、
前記第2の描画データ生成手段により生成された描画データ、および前記描画属性データ管理手段により管理された描画属性データを読み込み、描画処理を行う第２の描画処理手段とを具備することを特徴とする図形描画装置。
【請求項１３】
掃引線を表すベクトルデータ群を入力する掃引線データ入力手段と、
前記掃引線データ入力手段により入力された掃引線データを管理する掃引線データ管理手段と、
掃引形状を表すベクトルデータ群を入力する掃引形状データ入力手段と、
前記掃引形状データ入力手段により入力された掃引形状データを管理する掃引形状データ管理手段と、
図形の内部領域の属性を表す描画属性データを管理する描画属性データ入力手段と、
前記描画属性データ入力手段により入力された描画属性データを管理する描画属性データ管理手段と、
描画属性データの不透明度と比較する不透明度閾値を管理する閾値管理手段と、
前記描画属性データ管理手段により管理された描画属性データの不透明度と、前記閾値管理手段により管理された不透明度閾値とを比較することで、描画処理を切り替える描画処理切り替え手段と、
前記描画処理切り替え手段により実行され、前記掃引線データ管理手段により管理された掃引線データ、および前記掃引形状データ管理手段により管理された掃引形状データを読み込み、図形の外周線を用いて、描画データの生成を行う第１の描画データ生成手段と、
前記第１の描画データ生成手段により生成された描画データ、および前記描画属性データ管理手段により管理された描画属性データを読み込み、描画処理を行う第１の描画処理手段と、
前記描画処理切り替え手段により実行され、前記掃引線データ管理手段により管理された掃引線データ、および前記掃引形状データ管理手段により管理された掃引形状データを読み込み、特定の領域のみを塗りつぶす、塗りつぶし可否判定を、描画結果出力領域を利用して行う描画処理のための描画データを生成する第２の描画データ生成手段と、
前記第２の描画データ生成手段により生成された描画データ、および前記描画属性データ管理手段により管理された描画属性データを読み込み、描画結果出力領域を利用した塗りつぶし可否判定をする描画処理を行う第２の描画処理手段とを具備することを特徴とする図形描画装置。
【請求項１４】
掃引線を表すベクトルデータ群を入力する掃引線データ入力手段と、
前記掃引線データ入力手段により入力された掃引線データを管理する掃引線データ管理手段と、
掃引形状を表すベクトルデータ群を入力する掃引形状データ入力手段と、
前記掃引形状データ入力手段により入力された掃引形状データを管理する掃引形状データ管理手段と、
図形の内部領域の属性を表す描画属性データを管理する描画属性データ入力手段と、
前記描画属性データ入力手段により入力された描画属性データを管理する描画属性データ管理手段と、
描画属性データの不透明度と比較する不透明度閾値を管理する閾値管理手段と、
前記描画属性データ管理手段により管理された描画属性データの不透明度と、前記閾値管理手段により管理された不透明度閾値とを比較することで、描画処理を切り替える描画処理切り替え手段と、
前記描画処理切り替え手段により実行され、前記掃引線データ管理手段により管理された掃引線データ、および前記掃引形状データ管理手段により管理された掃引形状データを読み込み、図形の外周線を用いて、描画データの生成を行う第１の描画データ生成手段と、
前記第１の描画データ生成手段により生成された描画データ、および前記描画属性データ管理手段により管理された描画属性データを読み込み、描画処理を行う第１の描画処理手段と、
前記描画処理切り替え手段により実行され、前記掃引線データ管理手段により管理された掃引線データ、および前記掃引形状データ管理手段により管理された掃引形状データを読み込み、特定の領域のみを塗りつぶす、塗りつぶし可否判定機能を利用した描画処理を行うための描画データを生成する第２の描画データ生成手段と、
前記第２の描画データ生成手段により生成された描画データ、および前記描画属性データ管理手段により管理された描画属性データを読み込み、塗りつぶし可否判定機能の設定と、塗りつぶし可否判定機能を利用した描画処理を行う第２の描画処理手段とを具備することを特徴とする図形描画装置。
【請求項１５】
掃引線を表すベクトルデータ群を入力する掃引線データ入力手段と、
前記掃引線データ入力手段により入力された掃引線データを管理する掃引線データ管理手段と、
掃引形状を表すベクトルデータ群を入力する掃引形状データ入力手段と、
前記掃引形状データ入力手段により入力された掃引形状データを管理する掃引形状データ管理手段と、
図形の内部領域の属性を表す描画属性データを管理する描画属性データ入力手段と、
前記描画属性データ入力手段により入力された描画属性データを管理する描画属性データ管理手段と、
描画処理状況データを取得する描画処理状況データ入力手段と、
前記描画処理状況データ入力手段により入力された描画処理状況データを管理する描画処理状況データ管理手段と、
描画処理状況データと比較する描画処理状況データの閾値を管理する閾値管理手段と、
前記描画処理状況データ管理手段により管理されている描画処理状況データと、前記閾値管理手段により管理されている描画処理状況閾値とを比較することで、描画処理を切り替える描画処理切り替え手段と、
前記描画処理切り替え手段により実行され、前記掃引線データ管理手段により管理された掃引線データ、および前記掃引形状データ管理手段により管理された掃引形状データを読み込み、特定の領域のみを塗りつぶす、塗りつぶし可否判定を、描画結果出力領域を利用して行う描画処理のための描画データを生成する第１の描画データ生成手段と、
前記第１の描画データ生成手段により生成された描画データ、および前記描画属性データ管理手段により管理された描画属性データを読み込み、描画結果出力領域を利用した塗りつぶし可否判定をする描画処理を行う第１の描画処理手段と、
前記描画処理切り替え手段により実行され、前記掃引線データ管理手段により管理された掃引線データ、および前記掃引形状データ管理手段により管理された掃引形状データを読み込み、図形外周線を算出して、多角形描画処理により描画データ生成を行う第２の描画データ生成手段と、
前記第２の描画データ生成手段により生成された描画データ、および前記描画属性データ管理手段により管理された描画属性データを読み込み、描画処理を行う第２の描画処理手段とを具備することを特徴とする図形描画装置。
【請求項１６】
ベクトルデータ群入力手段が、多角形の外周線を表すベクトルデータ群を入力し、
ベクトルデータ群管理手段が、前記ベクトルデータ群入力手段により入力された多角形の外周線を表すベクトルデータ群を管理し、
描画属性データ入力手段が、多角形の内部領域の属性を表す描画属性データを入力し、
描画属性データ管理手段が、前記描画属性データ入力手段により入力された描画属性データを管理し、
閾値管理手段が、自己交差点数と比較する図形外周線の自己交差点数閾値を管理し、
自己交差点算出手段が、前記ベクトルデータ群管理手段により管理されたベクトルデータ群を読み込み、図形外周線の自己交差点を算出し、
自己交差点管理手段が、前記自己交差点算出手段により算出された図形外周線の自己交差点の情報を管理し、
描画処理切り替え手段が、前記自己交差点管理手段により管理された図形外周線の自己交差点数と、前記第2の閾値管理手段により管理された自己交差点数閾値とを比較することで、描画処理を切り替え、
第１の描画データ生成手段が、前記描画処理切り替え手段により実行され、前記ベクトルデータ群管理手段により管理されたベクトルデータ群、および前記描画属性データ管理手段により管理された描画属性データを読み込み、多角形の内部領域を判定し、三角形の集合に分割する処理により三角形データ群を生成し、
第１の描画処理手段が、前記第１の描画データ生成手段により生成された三角形データ群、および前記描画属性データ管理手段により管理された描画属性データを読み込み、描画処理を行い、
第２の描画データ生成手段が、前記描画処理切り替え手段により実行され、前記ベクトルデータ群管理手段により管理されたベクトルデータ群、および前記描画属性データ管理手段により管理された描画属性データを読み込み、多角形の内部領域を判定し、線分の集合に分割する処理により線分データ群を生成し、
第２の描画処理手段が、前記第２の描画データ生成手段により生成された線分データ群、および前記描画属性データ管理手段により管理された描画属性データを読み込み、描画処理を行なうことを特徴とする図形描画方法。
【請求項１７】
図形を描画するために、コンピュータを、
多角形の外周線を表すベクトルデータ群を入力するベクトルデータ群入力手段と、
前記ベクトルデータ群入力手段により入力された多角形の外周線を表すベクトルデータ群を管理するベクトルデータ群管理手段と、
多角形の内部領域の属性を表す描画属性データを入力する描画属性データ入力手段と、
前記描画属性データ入力手段により入力された描画属性データを管理する描画属性データ管理手段と、
自己交差点数と比較する図形外周線の自己交差点数閾値を管理する閾値管理手段と、
前記ベクトルデータ群管理手段により管理されたベクトルデータ群を読み込み、図形外周線の自己交差点を算出する自己交差点算出手段と、
前記自己交差点算出手段により算出された図形外周線の自己交差点の情報を管理する自己交差点管理手段と、
前記自己交差点管理手段により管理された図形外周線の自己交差点数と、前記第2の閾値管理手段により管理された自己交差点数閾値とを比較することで、描画処理を切り替える描画処理切り替え手段と、
前記描画処理切り替え手段により実行され、前記ベクトルデータ群管理手段により管理されたベクトルデータ群、および前記描画属性データ管理手段により管理された描画属性データを読み込み、多角形の内部領域を判定し、三角形の集合に分割する処理により三角形データ群を生成する第１の描画データ生成手段と、
前記第１の描画データ生成手段により生成された三角形データ群、および前記描画属性データ管理手段により管理された描画属性データを読み込み、描画処理を行う第１の描画処理手段と、
前記描画処理切り替え手段により実行され、前記ベクトルデータ群管理手段により管理されたベクトルデータ群、および前記描画属性データ管理手段により管理された描画属性データを読み込み、多角形の内部領域を判定し、線分の集合に分割する処理により線分データ群を生成する第２の描画データ生成手段と、
前記第２の描画データ生成手段により生成された線分データ群、および前記描画属性データ管理手段により管理された描画属性データを読み込み、描画処理を行なう第２の描画処理手段
として機能させるための図形描画プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はコンピュータ、デジタルAV装置、通信装置などにおける図形描画処理に関するものである。
【背景技術】
【０００２】
任意の多角形を描画する手法として様々な手法が開発されてきている。（１）ポイントベースの手法、（２）ラスターラインベースの手法、（３）トライアングルベースの手法、（４）ステンシルバッファベースの手法などである。
【０００３】
（１）は、描画領域に含まれる各点（ピクセル）に関して、描画の判定を行い、ポイント（ピクセル）単位で描画処理を行っていくものである。この際、描画処理の高速化のため、無駄な描画領域を削除したり、各点における描画判定を簡略化したりという様々な工夫が凝らされてきている。さらに、高速化のため、この機能をハードウェア化することも良く行われている。このハードウェア化された装置の１つとして、ラスタライザと呼ばれるものがある（例えば、非特許文献１を参照）。この手法は、シンプルな手法であるが故に非常に安定動作することが特徴であるが、各点毎に描画判定を行う必要があるため、非常に処理コストが大きいという問題点がある。このため、典型的には専用ハードウェア化されることがほとんどである。（２）は、（１）を改良したもので、各点毎、あるいは、それに相当する範囲で描画判定を行うところまでは似ているが、描画する際に、各点における描画部分をまとめ、これを描画したい画面のスキャンライン単位の線の描画に置き換えたものである。こうすることで、描画判定に関しては（１）と同様に処理コストが大きいが、描画処理のコストは小さくなるため、（１）よりも高速化が見込まれる。また、描画判定の部分は、高速なCPUを持つ処理系での処理や専用ハードウェア化などが必要とされるが、描画処理に関しては、汎用的なグラフィックスLSI（GPU）を用いることが可能である。なぜならば、グラフィックスLSIは、線、三角形を高速に描画する機能を持っているからである。このため、（１）よりも汎用性が上がっていると言える。（３）は、描画したい多角形を三角形群に分割し、三角形ベースで描画しようというものである（例えば、非特許文献２を参照）。これは、汎用のグラフィックスLSI、または、高速な三角形描画装置の使用を前提として高速化を図ろうという意図がある。（なぜならば、グラフィックスLSIは、線、三角形を高速に描画する機能を持っているからである。）このため、（１）、（２）の手法よりもより汎用性がある手法である。しかし、三角形分割のために複雑な処理が必要とされるため、この部分の安定性が問題となりうる。また、描画したい多角形が非常に複雑な形状を持っている場合には、三角形分割処理の計算コストが非常に大きくなるという問題もある。また、三角形群を、グラフィックスLSIなどを用いて描画することを前提としているため、グラフィックスLSIに十分なリソースが無い場合、使用することができないという問題もある。多角形を三角形群に分割し、これをグラフィックスLSIに投入する必要があるため、比較的メモリなどの使用量が多くなるからである。（４）は、完全に汎用グラフィックスLSIの使用を前提とするもので、グラフィックスLSIの機能として存在しているステンシルバッファという機能を用いて多角形描画を実現するものである（例えば、非特許文献３を参照）。これは、（１）〜（３）のどれよりも高速であり、安定に多角形描画が可能な方法であるが、グラフィックスLSIの機能をフル活用するため、グラフィックスLSIの多くのリソースを必要とするという問題点が存在する。
【０００４】
このように、（１）〜（４）までの手法に関して、処理速度と必要リソースに関してはトレードオフの関係にある。そのため、複数のタスクによりグラフィックスLSIなどのリソースが利用されるような場合においては、それぞれの手法において問題が生じる。（１）、（２）に関しては、必要とするリソースが少ないため、リソースの変動に関して安定して処理を行えるが、処理量が多いため高速処理を行うことが難しい。（３）、（４）に関しては、リソースが十分にある場合には高速処理が可能となるが、他のタスクによりリソースが不足すると、処理性能の低下、あるいはリソース不足による実行不可などの問題が生じる。
【非特許文献１】Renate Kempf and Chris Frazier, “The OpenGL Processing Pipeline”, Chapter 2: Overview of Commands and Routines, OpenGL Reference Manual Second Edition, ISBN 0-201-46140-4, pp.8-16, 1997.
【非特許文献２】Ｍ.ドバーグ、Ｍ.ファン.クリベルド、M.オーバマーズ、O.シュワルツコップ, “コンピュータ・ジオメトリ”, ISBN 4-7649-0277-X, pp.55-75, 近代科学社, 2000.
【非特許文献３】Jackie Neider, Tom Davis, Mason Woo, “Drawing Filled, Concave Polygons Using the Stencil Buffer”, Chapter 13: Now That You Know, OpenGL Programming Guide, ISBN 0-201-63274-8, pp.398-399, 1993.
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上記のように従来技術においては、複数のタスクの実行によるリソース変動に対して、処理速度や、安定動作に関する問題点があった。本発明では、上記のような従来技術の欠点を除去し、装置のリソース変動に対して、高速処理や安定動作が可能な図形描画を行う装置、および手法を提供すること目的とする。
【課題を解決するための手段】
【０００６】
この発明の図形描画装置は、図形形状を表すベクトルデータ群を管理するベクトルデータ群管理手段と、図形内部属性情報を表す描画属性データを管理する描画属性データ群管理手段と、利用状況を表すリソース情報を管理するリソース情報管理手段と、前記ベクトルデータ群管理手段により管理されたベクトルデータ群を読み込み、入力図形の形状特徴を表す図形特徴量を算出する図形特徴量算出手段と、前記図形特徴量算出手段により算出された図形特徴量と、前記リソース情報管理手段により管理されたリソース情報を読み込み、最適な描画データ生成手段に切り替える描画処理切り替え手段と、前記描画処理切り替え手段により実行され、前記ベクトルデータ群管理手段により管理されているベクトルデータ群と、前記描画属性データ管理手段により管理されている描画属性データを読み込み、それぞれ異なる描画データを生成する複数の描画データ生成手段と、前記描画データ生成手段により生成された描画データと、前記描画属性データ管理手段により管理されている描画属性データを読み込み、それぞれ異なる描画処理を行う、複数の描画処理手段とを具備することを特徴とする。
【０００７】
また、多角形の外周線を表すベクトルデータ群を入力するベクトルデータ群入力手段と、
前記ベクトルデータ群入力手段により入力された多角形の外周線を表すベクトルデータ群を管理するベクトルデータ群管理手段と、多角形の内部領域の属性を表す描画属性データを入力する描画属性データ入力手段と、前記描画属性データ入力手段により入力された描画属性データを管理する描画属性データ管理手段と、メモリ使用状況を取得するメモリ使用状況データ入力手段と、前記メモリ使用状況データ入力手段により入力されたメモリ使用状況データを管理するメモリ使用状況データ管理手段と、メモリ使用状況データと比較するメモリ使用状況閾値を管理する第１の閾値管理手段と、自己交差点数と比較する図形外周線の自己交差点数閾値を管理する第2の閾値管理手段と、前記第１の閾値管理手段により管理されたメモリ使用状況閾値と、前記メモリ使用状況データ入力手段により管理されたメモリ使用状況データとを比較することで、描画処理を切り替える第１の描画処理切り替え手段と、前記第１の描画処理切り替え手段により実行され、前記ベクトルデータ群管理手段により管理されたベクトルデータ群を読み込み、特定の領域のみを塗りつぶす、塗りつぶし可否判定機能を利用した描画処理を行うための描画データを生成する第1の描画データ生成手段と、前記第1の描画データ生成手段により生成された描画データ、および前記描画属性データ管理手段により管理された描画属性データを読み込み、塗りつぶし可否判定機能の設定と、塗りつぶし可否判定機能を利用した描画処理を行う第１の描画処理手段と、前記第１の描画処理切り替え手段により実行され、前記ベクトルデータ群管理手段により管理されたベクトルデータ群を読み込み、図形外周線の自己交差点を算出する自己交差点算出手段と、前記自己交差点算出手段により算出された図形外周線の自己交差点の情報を管理する自己交差点管理手段と、前記自己交差点管理手段により管理された図形外周線の自己交差点数と、前記第2の閾値管理手段により管理された自己交差点数閾値とを比較することで描画処理を切り替える第2の描画処理切り替え手段と、前記第2の描画処理切り替え手段により実行され、前記ベクトルデータ群管理手段により管理されたベクトルデータ群、および前記描画属性データ管理手段により管理された描画属性データを読み込み、多角形の内部領域を判定し、三角形の集合に分割する処理により三角形データ群を生成する第2の描画データ生成手段と、前記第2の描画データ生成手段により生成された三角形データ群、および前記描画属性データ管理手段により管理された描画属性データを読み込み、描画処理を行う第２の描画処理手段と、前記第2の描画処理切り替え手段により実行され、前記ベクトルデータ群管理手段により管理されたベクトルデータ群、および前記描画属性データ管理手段により管理された描画属性データを読み込み、多角形の内部領域を判定し、線分の集合に分割する処理により線分データ群を生成する第３の描画データ生成手段と、前記第３の描画データ生成手段により生成された線分データ群、および前記描画属性データ管理手段により管理された描画属性データを読み込み、描画処理をおこなう第３の描画処理手段とを具備することを特徴とする。
【０００８】
また、掃引線を表すベクトルデータ群を入力する掃引線データ入力手段と、前記掃引線データ入力手段により入力された掃引線データを管理する掃引線データ管理手段と、掃引形状を表すベクトルデータ群を入力する掃引形状データ入力手段と、前記掃引形状データ入力手段により入力された掃引形状データを管理する掃引形状データ管理手段と、図形の内部領域の属性を表す描画属性データを管理する描画属性データ入力手段と、前記描画属性データ入力手段により入力された描画属性データを管理する描画属性データ管理手段と、
【０００９】
メモリ使用状況を取得するメモリ使用状況データ入力手段と、前記メモリ使用状況データ入力手段により入力されたメモリ使用状況データを管理するメモリ使用状況データ管理手段と、描画処理状況データを取得する描画処理状況データ入力手段と、前記描画処理状況データ入力手段により入力された描画処理状況データを管理する描画処理状況データ管理手段と、描画属性データの不透明度と比較する不透明度閾値を管理する第１の閾値管理手段と、メモリ使用状況データと比較するメモリ使用状況閾値を管理する第２の閾値管理手段と、描画処理状況データと比較する描画処理状況データの閾値を管理する第３の閾値管理手段と、前記描画属性データ管理手段により管理された描画属性データの不透明度と、前記第１の閾値管理手段により管理された不透明度閾値とを比較することで、描画処理を切り替える第１の描画処理切り替え手段と、前記第１の描画処理切り替え手段により実行され、前記掃引線データ管理手段により管理された掃引線データ、および前記掃引形状データ管理手段により管理された掃引形状データを読み込み、図形の外周線を用いて、描画データの生成を行う第１の描画データ生成手段と、前記第１の描画データ生成手段により生成された描画データ、および前記描画属性データ管理手段により管理された描画属性データを読み込み、描画処理を行う第１の描画処理手段と、前記第１の描画処理切り替え手段により実行され、前記メモリ使用状況データ管理手段により管理されているメモリ使用状況データと、前記第２の閾値管理手段により管理されているメモリ使用状況閾値とを比較することで、描画処理を切り替える第２の描画処理切り替え手段と、前記第２の描画処理切り替え手段により実行され、前記掃引線データ管理手段により管理された掃引線データ、前記掃引形状データ管理手段により管理された掃引形状データを読み込み、特定の領域のみを塗りつぶす、塗りつぶし可否判定機能を利用した描画処理を行うための描画データを生成する第２の描画データ生成手段と、前記第２の描画データ生成手段により生成された描画データ、および前記描画属性データ管理手段により管理された描画属性データを読み込み、塗りつぶし可否判定機能の設定と、塗りつぶし可否判定機能を利用した描画処理を行う第２の描画処理手段と、前記第２の描画処理切り替え手段により実行され、前記描画処理状況データ管理手段により管理されている描画処理状況データと、前記第３の閾値管理手段により管理されている描画処理状況閾値とを比較するこで、描画処理を切り替える第３の描画処理切り替え手段と、前記第３の描画処理切り替え手段により実行され、前記掃引線データ管理手段により管理された掃引線データ、および前記掃引形状データ管理手段により管理された掃引形状データを読み込み、特定の領域のみを塗りつぶす、塗りつぶし可否判定を、描画結果出力領域を利用して行う描画処理のための描画データを生成する第３の描画データ生成手段と、前記第３の描画データ生成手段により生成された描画データ、および前記描画属性データ管理手段により管理された描画属性データを読み込み、描画結果出力領域を利用した塗りつぶし可否判定をする描画処理を行う第３の描画処理手段と、前記第３の描画処理切り替え手段により実行され、前記掃引線データ管理手段により管理された掃引線データ、および前記掃引形状データ管理手段により管理された掃引形状データを読み込み、図形外周線を算出して、多角形描画処理により描画データ生成を行う第４の描画データ生成手段と、前記第４の描画データ生成手段により生成された描画データ、および前記描画属性データ管理手段により管理された描画属性データを読み込み、描画処理を行う第４の描画処理手段とを具備することを特徴とする。
【００１０】
更に、この発明の図形描画方法は、ベクトルデータ群入力手段が、多角形の外周線を表すベクトルデータ群を入力し、ベクトルデータ群管理手段が、前記ベクトルデータ群入力手段により入力された多角形の外周線を表すベクトルデータ群を管理し、描画属性データ入力手段が、多角形の内部領域の属性を表す描画属性データを入力し、描画属性データ管理手段が、前記描画属性データ入力手段により入力された描画属性データを管理し、閾値管理手段が、自己交差点数と比較する図形外周線の自己交差点数閾値を管理し、自己交差点算出手段が、前記ベクトルデータ群管理手段により管理されたベクトルデータ群を読み込み、図形外周線の自己交差点を算出し、自己交差点管理手段が、前記自己交差点算出手段により算出された図形外周線の自己交差点の情報を管理し、描画処理切り替え手段が、前記自己交差点管理手段により管理された図形外周線の自己交差点数と、前記第2の閾値管理手段により管理された自己交差点数閾値とを比較することで、描画処理を切り替え、第１の描画データ生成手段が、前記描画処理切り替え手段により実行され、前記ベクトルデータ群管理手段により管理されたベクトルデータ群、および前記描画属性データ管理手段により管理された描画属性データを読み込み、多角形の内部領域を判定し、三角形の集合に分割する処理により三角形データ群を生成し、第１の描画処理手段が、前記第１の描画データ生成手段により生成された三角形データ群、および前記描画属性データ管理手段により管理された描画属性データを読み込み、描画処理を行い、第２の描画データ生成手段が、前記描画処理切り替え手段により実行され、前記ベクトルデータ群管理手段により管理されたベクトルデータ群、および前記描画属性データ管理手段により管理された描画属性データを読み込み、多角形の内部領域を判定し、線分の集合に分割する処理により線分データ群を生成し、第２の描画処理手段が、前記第２の描画データ生成手段により生成された線分データ群、および前記描画属性データ管理手段により管理された描画属性データを読み込み、描画処理を行なうことを特徴とする。
【００１１】
更に、この発明のプログラムは、図形を描画するために、コンピュータを、多角形の外周線を表すベクトルデータ群を入力するベクトルデータ群入力手段と、前記ベクトルデータ群入力手段により入力された多角形の外周線を表すベクトルデータ群を管理するベクトルデータ群管理手段と、多角形の内部領域の属性を表す描画属性データを入力する描画属性データ入力手段と、前記描画属性データ入力手段により入力された描画属性データを管理する描画属性データ管理手段と、自己交差点数と比較する図形外周線の自己交差点数閾値を管理する閾値管理手段と、前記ベクトルデータ群管理手段により管理されたベクトルデータ群を読み込み、図形外周線の自己交差点を算出する自己交差点算出手段と、前記自己交差点算出手段により算出された図形外周線の自己交差点の情報を管理する自己交差点管理手段と、前記自己交差点管理手段により管理された図形外周線の自己交差点数と、前記第2の閾値管理手段により管理された自己交差点数閾値とを比較することで、描画処理を切り替える描画処理切り替え手段と、前記描画処理切り替え手段により実行され、前記ベクトルデータ群管理手段により管理されたベクトルデータ群、および前記描画属性データ管理手段により管理された描画属性データを読み込み、多角形の内部領域を判定し、三角形の集合に分割する処理により三角形データ群を生成する第１の描画データ生成手段と、前記第１の描画データ生成手段により生成された三角形データ群、および前記描画属性データ管理手段により管理された描画属性データを読み込み、描画処理を行う第１の描画処理手段と、前記描画処理切り替え手段により実行され、前記ベクトルデータ群管理手段により管理されたベクトルデータ群、および前記描画属性データ管理手段により管理された描画属性データを読み込み、多角形の内部領域を判定し、線分の集合に分割する処理により線分データ群を生成する第２の描画データ生成手段と、前記第２の描画データ生成手段により生成された線分データ群、および前記描画属性データ管理手段により管理された描画属性データを読み込み、描画処理を行なう第２の描画処理手段として機能させることを特徴とする。
【発明の効果】
【００１２】
リソースの使用状況および図形特徴量により、図形描画処理方法を選択して、図形描画処理性能を調整することができ、描画処理を行う際に、リソース変動を伴う図形描画装置において、図形処理性能を制御でき、実用的には極めて有用である。
【発明を実施するための最良の形態】
【００１３】
以下、本発明を実施するための最良の形態を、図面を参照しながら説明する。
図１は本発明の実施の形態に係る構成図を示したものである。図形描画装置は、図形形状を表すベクトルデータ群を管理するベクトルデータ群管理部０１と、図形内部属性情報を表す描画属性データを管理する描画属性データ群管理部０３と、装置全体の利用状況を表すリソース情報を管理するリソース情報管理部０２と、ベクトルデータ群管理部０１により管理されたベクトルデータ群を読み込み、入力図形の形状特徴を表す図形特徴量を算出する図形特徴量算出部１２と、図形特徴量算出部１２により算出された図形特徴量と、リソース情報管理部０２により管理されたリソース情報を読み込み、最適な描画データ生成に切り替える描画処理切り替え部０４と、描画処理切り替え部０４により実行され、ベクトルデータ群管理部０１により管理されているベクトルデータ群と、描画属性データ管理部０３により管理されている描画属性データを読み込み、それぞれ異なる描画データを生成する複数の描画データ生成部（第１の描画データ生成部０５、第２の描画データ生成部０７、第Nの描画データ生成部０９）と、描画データ生成部０５、０７、０９により生成された描画データと、描画属性データ管理部０３により管理されている描画属性データを読み込み、それぞれ異なる描画処理を行う、複数の描画処理部（第１の描画処理部０６、第２の描画処理部０８、第Nの描画処理部１０）とから構成される。
【００１４】
更に、図３９に示すように、リソース情報と比較する閾値を管理するリソース情報閾値管理部１３と、図形特徴量と比較する閾値を管理する図形特徴量閾値管理部１４を設け、描画処理切り替え手段０４は、図形特徴量算出部１２により算出された図形特徴量と、図形特徴量閾値管理部１４により管理された図形特徴量閾値とを比較し、リソース情報閾値管理部１３により管理されたリソース情報閾値と、リソース情報管理部０２により管理されたリソース情報とを比較することで、描画データ生成手段を切り替えてもよい。
【００１５】
［第１の実施形態］
まず、本発明の第１の実施形態について説明する。
本実施形態では、多角形の外周線を表すベクトルデータ群を入力として、描画処理時の装置のリソース状況において、高速な多角形の描画処理を選択し、描画を行う装置の例を示す。
【００１６】
［全体の構成］
図２は、本発明の第１の実施形態に係る図形描画装置の構成図を示したものである。
本実施形態における図形描画装置は、多角形の外周線を表すベクトルデータ群を入力するためのベクトルデータ群入力部１０１と、前記ベクトルデータ群入力部１０１により入力された多角形の外周線を表すベクトルデータ群を管理するためのベクトルデータ群管理部１０２と、多角形の内部領域の属性を表す描画属性データを入力するための描画属性データ入力部１０３と、前記描画属性データ入力部１０３により入力された描画属性データを管理するための描画属性データ管理部１０４と、メモリ使用状況を取得するためのメモリ使用状況データ入力部１０５と、前記メモリ使用状況データ入力部１０５により入力されたメモリ使用状況データを管理するためのメモリ使用状況データ管理部１０６と、描画処理の切り替え判定を行う際に参照するメモリ使用状況参照値を管理するための第１の参照値管理部１０７と、描画処理の切り替え判定を行う際に参照する図形外周線の自己交差点数参照値を管理するための第2の参照値管理部１０８と、前記第１の参照値管理部１０７により管理されたメモリ使用状況参照値、および前記メモリ使用状況データ管理部１０６により管理されたメモリ使用状況データを読み込み、比較・判定を行うことにより、後記第1の描画データ生成部１１０と後記自己交差点算出部１１２の実行制御を行う第１の描画処理切り替え部１０９と、前記第１の描画処理切り替え部１０９により実行され、前記ベクトルデータ群管理部１０２により管理されたベクトルデータ群を読み込み、ステンシルバッファを利用する描画処理を行うための描画データを生成する第1の描画データ生成部１１０と、前記第1の描画データ生成部１１０により生成された描画データ、および前記描画属性データ管理部１０４により管理された描画属性データを読み込み、ステンシルバッファの更新と、ステンシルバッファを利用した描画処理を行う第１の描画処理部１１１と、前記第１の描画処理切り替え部１０９により実行され、前記ベクトルデータ群管理部１０２により管理されたベクトルデータ群を読み込み、図形外周線の自己交差点を算出する自己交差点算出部１１２と、前記自己交差点算出部１１２により算出された図形外周線の自己交差点の情報を保存する自己交差点管理部１１３と、前記自己交差点管理部１１３により管理された図形外周線の自己交差点数、および前記第2の参照値管理部１０８により管理された自己交差点数参照値を読み込み、比較・判定を行うことにより、後記第2の描画データ生成部１１５と後記第3の描画データ生成部１１７の実行制御を行う第2の描画処理切り替え部１１４と、前記第2の描画処理切り替え部１１４により実行され、前記ベクトルデータ群管理部１０２により管理されたベクトルデータ群、および前記描画属性データ管理部１０４により管理された描画属性データを読み込み、多角形の内部領域を判定し、三角形の集合に分割する処理により三角形データ群を生成する第2の描画データ生成部１１５と、前記第2の描画データ生成部１１５により管理された三角形データ群、および前記描画属性データ管理部１０４により管理された描画属性データを読み込み、描画処理を行う第２の描画処理部１１６と、前記第2の描画処理切り替え部１１４により実行され、前記ベクトルデータ群管理部１０２により管理されたベクトルデータ群、および前記描画属性データ管理部１０４により管理された描画属性データを読み込み、多角形の内部領域を判定し、線分の集合に分割する処理により線分データ群を生成する第３の描画データ生成部１１７と、前記第３の描画データ生成部１１７により生成された線分データ群、および前記描画属性データ管理部１０４により管理された描画属性データを読み込み、描画処理をおこなう第３の描画処理部１１８と、前記第１の描画処理部１１１、前記第２の描画処理部１１６、および前記第３の描画処理部１１８のいずれかより出力された描画結果を提示するための描画結果出力部１１９から構成される。
【００１７】
なお、図２において、すべての管理部は異なるブロックとして表記しているが、これらは単一のメモリ上にまとめて構成してもよいし、異なる複数のメモリ上に分割して構成してもよい。
【００１８】
次に、本実施形態における図形描画装置の動作を、図３に示すフローチャート及び、図２における各ブロックの動作について図面を参照して説明していく。
[図形描画の説明]
ここで、本実施形態における図形描画について説明する。本実施形態で扱う図形描画は、多角形の外周線を構成するベクトルデータ群によって囲まれた領域を、任意の規則により内外判定を行い、その判定結果に従い、内部領域を塗りつぶすことで多角形を描画するものである。
【００１９】
具体的には、図４に示すような、「点０」〜「点５」のような「（一筆書きで得られる）多角形の外周線」を構成するベクトルデータ群と、内部領域の判定規則、色、不透明度などを含む描画属性データの入力があったとすると、図５、図６に示されるように図形を描画する。図５、図６の差は、内部領域の判定規則の違いである。図５は、非ゼロ巻数規則と呼ばれる規則を、図６は奇偶規則と呼ばれる規則にそれぞれ従って内部領域を判定し、多角形を描画した例である。
【００２０】
これらの内部領域の判定規則は、多角形の外周線に囲まれた領域に対して、その領域内の任意の点から任意方向に半直線を引き、その直線と図形外周線が交差する毎にその交差方向によりカウンタを増減させ、得られたカウンタ値によって、内外判定を行うものである。非ゼロ巻数規則では、カウンタ値が０でなければ内部領域と判定し、奇偶規則では、カウンタ値が奇数であれば内部領域と判定する。詳しくは、”www.w3.org/TR/SVG/”に説明されているので、そちらを参照して頂きたい。
【００２１】
また、描画処理は最終的に、多角形をピクセル単位で構成されるラスタデータとして、色、不透明度などを設定して出力する。
[本実施形態の処理フロー概要]
次に、本実施形態において上記図形描画を行う処理フローについて、図３に示すフローチャートを参照して、説明する。
この図形描画装置により図形描画処理を開始すると、ベクトルデータ群、描画属性データ、メモリ使用状況データの入力を行う（ステップ１００１）。
次に、メモリ使用状況データによりステンシルバッファの利用の可否により、ステンシルバッファを利用した描画処理が可能か、判定をする（ステップ１００２）。
ステップ１００２の判定により、ステンシルバッファが利用可能であった場合、ステンシルバッファを利用するための描画データ生成を行い（ステップ１００３）、それを用いて、ステンシルバッファの更新、ステンシルバッファを利用して描画処理を行うことで描画を行う（ステップ１００４）。
【００２２】
ステップ１００２の判定により、ステンシルバッファが利用不可であった場合、図形の形状特徴から、高速に処理できる図形処理を選択するために、図形外周線の自己交差点を算出する（ステップ１００５）。次に、算出した自己交差点の数を閾値と比較することで、三角形分割による描画処理と線分分割による描画処理のどちらを用いるか判定を行う（ステップ１００６）。
【００２３】
ステップ１００６の判定により、三角形分割による描画処理が高速と判定された場合、入力図形を三角形に分割した描画データを生成し（ステップ１００７）、三角形描画処理により、図形の描画を行う(ステップ１００８)。
【００２４】
ステップ１００６の判定により、線分分割による描画処理が高速と判定された場合、入力図形を線分に分割した描画データを生成し（ステップ１００９）、線分描画処理により、図形の描画を行う（ステップ１０１０）。
【００２５】
以上により、いずれかのステップで描画処理が行われ描画結果を出力する（ステップ１０１１）以降、各ステップについてより詳細に説明をする。
[ベクトルデータ群についての説明]
まず、図形描画の入力の一つである図形の外周線を構成するベクトルデータ群について説明する。
本実施形態で扱う多角形の外周線を構成するベクトルデータ群は、2次元、あるいは３次元の座標値を持つN個の点データP1〜PNにより構成される。点データから、外周線のｎ番目のベクトルはVｎ＝Pn―Pn+1として定義できる。ここで、n=0,…,N-1である。また、P0＝PN-1でない場合は、多角形が閉じていないが、この場合PN＝P1となる仮想的な点を想定して処理を行う。
【００２６】
なお、ベクトルデータ群により構成される多角形は、一般多角形で構成される任意の形状をとることが可能で、凸形状だけでなく凹形状や自己交差形状を含んでもかまわない。
【００２７】
[ベクトルデータ群入力部１０１]
[ベクトルデータ群管理部１０２]
上記で説明したような図形描画のための入力の一つである、多角形の外周線を構成するベクトルデータ群の入力処理は、ベクトルデータ群入力部１０１により行われ、ベクトルデータ群管理部１０２に保存される。
【００２８】
ベクトルデータの入力は、補助記憶装置、FD、CD-ROM、DVD-ROMなどにあらかじめ保存してあるデータからの読み込みや、マウス、キーボード、キーパッド、ペンタブレット、タッチパネルなどのヒューマンインタフェースデバイスによるインタラクティブな入力の読み取りとして行われる。
【００２９】
[描画属性についての説明]
次に、図形描画の入力の一つである描画属性について説明する。
本実施形態で扱う描画属性は、内部領域判定規則の指定、内部領域色、不透明度など図形の描画時における属性に関する情報などから構成される。
内部領域判定規則の指定値には、上記多角形の内部領域判定規則を判別する任意の値を設定する。内部領域色には、図形内部領域を塗りつぶす際に用いる色情報が、不透明度には図形内部領域の透過状態を表す値が記述される。不透明度に図形内部領域が半透明であることを示す値が入力された場合、不透明度で示される透過の割合に応じて背後にある図形および背景と合成が行われる。
【００３０】
[描画属性データ入力部１０３]
[描画属性データ管理部１０４]
上記で説明したような図形描画のための入力の一つである描画属性データの入力処理は、
描画属性データ入力部１０３によって行われ、描画属性データ管理部１０４に保存される。
描画属性データの入力は、補助記憶装置、FD、CD-ROM、DVD-ROMなどにあらかじめ保存してあるデータからの読み込みや、マウス、キーボード、キーパッド、ペンタブレット、タッチパネルなどのヒューマンインタフェースデバイスによるインタラクティブな入力の読み取りとして行われる。
【００３１】
[描画処理の切り替えに用いる判定についての説明]
次に、本実施例における描画処理切り替えの判定値として用いるデータについて説明する。
本実施形態では、描画処理切り替えの判定値として、メモリ使用状況データ、および図形外周線の自己交差点数を用いる。
これらのデータは、それにより切り替えが行われる描画処理の性質によって決定される。本実施例におけるステンシルバッファを利用した描画処理は、高速な処理が可能であるが、ステンシルバッファを確保するためのメモリ領域が必要となる。そのため、描画処理実行時のメモリ使用状況により、ステンシルバッファを利用した描画処理の可否を判断することで、リソース状況に応じて描画処理を選択することができる。
【００３２】
また、本実施例における多角形の三角形分割による描画処理と、線分分割における描画処理では、入力されたベクトルデータ群の複雑さにより処理コストが逆転する。そのため、処理コストに大きな影響を与えるベクトルデータ群の複雑さを表す値として、図７に示すような、入力されたベクトルデータ群が互いに交差する点（自己交差点）の数を用いることで入力データに応じて描画処理を選択することができる。
【００３３】
[メモリ使用状況データ入力部１０５]
[メモリ使用状況データ管理部１０６]
上記で説明した描画処理切り替えの判定値の一つであるメモリ使用状況データの入力処理は、メモリ使用状況データ入力部１０５によって行われ、メモリ使用状況管理部１０６に保存される。
【００３４】
メモリ使用状況とは、本実施例における図形描画装置を構成する各ブロックの処理で利用される、データ（一時・恒久保存は問わない）を格納する記憶領域の描画処理時の使用量である。具体的には、全くメモリが使用されていない場合におけるメモリ使用可能量であるメモリ最大量、および描画処理時の実際のメモリ使用量などからなる値である。
【００３５】
なお、本実施例におけるメモリ使用状況は、図形描画装置を構成する各ブロックが共通のメモリ領域を用いるか、個別のメモリ領域を用いるかについては限定しない。
共通のメモリ領域を用いる場合には、共通メモリ領域のメモリ使用状況データを入力とし、個別のメモリ領域を用いる場合には、全てのメモリ領域のメモリ使用状況を読み込み、必要となるメモリ使用状況を算出するか、メモリ使用状況が必要となるブロックを限定してメモリ使用状況を読み込むなどの方法で、メモリ使用状況を得ることができる。
【００３６】
[ステンシルバッファを利用した図形の内部領域判定による描画処理について]
ここで、ステンシルバッファを利用した図形の内部領域判定による描画処理について、図８に処理の流れを示し、説明する。
ステンシルバッファとは、図９に示すような、描画処理時にピクセル単位で書き込みの可／不可を決定するための値を保持するバッファ、およびそのバッファを利用した描画手法である。
【００３７】
ステンシルバッファを利用して、図形の内部領域を判定して描画を行うには、まず、入力として、図形の外周線を表すベクトルデータ群を読み込む（ステップ６００１）。次に、読み込んだベクトルデータ群から、特定の規則によりステンシルバッファ更新用の描画データを生成する（ステップ６００２）。生成した描画データをステンシルバッファに描画することにより、ステンシルバッファのカウンタを増減する（ステップ６００３）。これにより、ステンシルバッファに図形の内部領域を判定可能な値が設定され、図形描画処理時にこの値を、内部領域判定規則に従って評価することでピクセル書き込み制御を行う。内部領域の描画は、入力ベクトルデータ群を囲む最小の矩形を、ステンシルバッファを利用して描画することで行うことができる（ステップ６００４）。これにより、内部領域判定規則に従った図形の描画が可能になる。
【００３８】
ステンシルバッファを利用した図形描画は、描画処理のコストは大きいが、描画判定に関しては、定型的な規則に従いステンシルバッファ更新用の図形を生成するのみであるため、コストが低い。このことから、ステンシルバッファを利用した描画処理に対応したグラフィックスLSIが利用できる場合は、図形描画を高速に処理することができる。ただし、この手法では、ステンシルバッファを確保するためのメモリ領域が必要となるため、リソースが不十分でバッファを確保できない場合は利用できない。
【００３９】
なお、ステンシルバッファを利用した図形描画に関しては、非特許文献３に詳しいのでそちらを参照されたい。
[第１の描画処理切り替え部１０９]
[第１の参照値管理部１０７]
次に、第１の描画処理切り替え部１０９について説明する。上記のように、ステンシルバッファを利用した描画処理は、高速に描画処理を行うことができるが、ステンシルバッファが確保できない場合には利用できない。そのため、第１の描画処理切り替え部は、図形処理装置のメモリ使用状況の判定を行い（ステップ１００２）、ステンシルバッファが確保できる場合にはステンシルバッファを利用した描画処理を行うための描画データ生成を行い（ステップ１００３）、確保ができない場合には、入力図形の特徴から高速な描画処理を判定するための処理を行う、次のステップを実行する（ステップ１００５）。
【００４０】
メモリ使用状況の判定は、メモリ使用状況データ管理部１０６により管理された図形描画実行時の図形処理装置のメモリ使用状況データMと、第１の参照値管理部１０７により管理されているステンシルバッファを確保するために必要な、最低限のメモリ使用状況を示す参照値Mrefを比較し、MがMrefを満たす場合には、第１の描画データ生成部１１０を実行し、異なる場合には、自己交差点算出部１１２を実行する。
【００４１】
なお、第１の参照値管理部１０７により管理されているメモリ使用状況参照値は、図形描画装置の出力、および図形描画装置の構成によって決定する値である。ステンシルバッファ確保の可否は、描画出力解像度、および利用可能なメモリの最大量に依存する。描画出力解像度との関係は、一般的にステンシルバッファの大きさが描画出力解像度と同一であるため、描画出力解像度が大きければステンシルバッファ確保が難しくなる。また、利用可能なメモリの最大量については、最大メモリ量に対してステンシルバッファサイズが大きい場合は、ステンシルバッファによりメモリの大半を利用されてしまい、他のタスクでメモリを使用できなくなる可能性が高くなる。そのような状況になってしまった場合、複数ブロック間でメモリを共有しているような実施形態では、描画装置全体の処理性能が大きく低下する。
【００４２】
そのため、メモリ使用状況参照値は、図形描画装置の出力、および図形描画装置の構成により決定する。
なお、これらの問題をより効率的に回避するためには、タスク状況と合わせて参照値を動的に変更するなどの方法もある。
[第1の描画データ生成部１１０]
次に、第1の描画データ生成部１１０について説明する。第１の描画データ生成部は、第１の描画処理切り替え部１０９により、ステンシルバッファが確保できると判定された場合に実行され、ベクトルデータ群管理部１０２により管理されているベクトルデータ群を読み込み、ステンシルバッファを更新するための描画データ、およびステンシルバッファを利用して図形を描画するための描画データを生成する（ステップ１００３）。
【００４３】
ここで生成する描画データとは、上記「ステンシルバッファを利用した図形の内部領域判定による描画処理」における、ベクトルデータ群を用いて生成するステンシルバッファを更新するための三角形データ、およびステンシルバッファを利用して図形の内部領域を描画するための矩形データである。
【００４４】
これらの描画データの生成方法については、非特許文献３に詳しいのでそちらを参照されたい。
[第１の描画処理部１１１]
第１の描画データ生成部により生成された描画データは、第１の描画処理部１１１に入力され、描画処理が行われる。ここでは、第１の描画処理部１１１について説明する。第１の描画処理部１１１は、描画属性データ管理部１０４により管理された描画属性データ、および第1の描画データ生成部１１０により生成された描画データを読み込み、まず、ステンシルバッファの更新を行う。次に更新したステンシルバッファを利用して、描画属性データに示されている内部領域判定規則に従い、描画処理を行う（ステップ１００４）。
【００４５】
具体的には、上記「ステンシルバッファを利用した図形の内部領域判定による描画処理」に述べたように、前記第１の描画データ生成部により生成された描画データから、ステンシルバッファ更新用の三角形データの描画によりステンシルバッファの更新を行い、次に更新したステンシルバッファを利用して、図形の内部領域を描画するための矩形データの描画により、図形の描画を完了する。
【００４６】
なお、三角形および矩形の実際の描画は、三角形描画専用、あるいは矩形専用のハードウェアを用いてもよいし、汎用のグラフィックス処理ＬＳＩなどを用いてもよいし、その他の手段をもちいてソフトウェア的に処理しても構わない。
【００４７】
[自己交差点算出部１１２]
[自己交差点管理部１１３]
次に自己交差点算出部１１２について説明する。自己交差点算出部は、第１の描画処理切り替え部１０９により、ステンシルバッファが確保できないと判定された場合に実行され、図形外周線の自己交差点を算出する（ステップ１００５）。
【００４８】
図形外周線の自己交差点の計算は、ベクトルデータ群管理部１０２により管理されている多角形の外周線を構成するベクトルデータ群を読み込み、各ベクトル間で交差判定を行い、交差点座標、交差点の位相関係、交差点の総数などを算出する。
【００４９】
算出された自己交差点データは、描画処理の判別に限らず、三角形分割による描画処理においても利用できるため、交差点座標、交差点の位相関係、交差点の総数を個別に読み出せるように、自己交差点管理部１１３に保存する。
【００５０】
[第2の描画処理切り替え部１１４]
[第2の参照値管理部１０８]
次に第2の描画処理切り替え部１１４について説明する。第2の描画処理切り替え部は、自己交差点管理部１１３により管理された自己交差点の数を、第2の参照値管理部１０８により管理されている、三角形分割による描画処理と線分分割による描画処理の処理コストが切り替わる自己交差点数を示す参照値と比較し、三角形分割による描画処理を行った方が高速と判定された場合、三角形分割により描画データを生成する処理を実行し、線分分割による描画処理を行った方が高速と判定された場合、線分分割により描画データを生成する処理を実行する（ステップ１００６）。
【００５１】
自己交差点数の判定は、自己交差点管理部１１３により管理された自己交差点の数Nisと、第2の参照値管理部１０８により管理されている、図形処理性能が切り替わる自己交差点数を示す参照値Nisrefを比較し、Nis＜Nisrefを満たす場合には、第２の描画データ生成部１１５を実行し、異なる場合は第３の描画データ生成部１１７を実行する。
【００５２】
なお、第2の参照値管理部１０８で管理する自己交差点数の参照値としては、実際に処理を行う図形描画装置における三角形分割による描画処理と、線分分割による描画処理の自己交差点数に対する処理コストを計測することで、実験的に求めてもよいし、各描画処理アルゴリズムから理論的に求めてもかまわない。
【００５３】
（三角形分割による描画と線分（スキャンライン）分割による描画判定について）
ここで、前記従来手法（３）により示されている三角形分割による描画判定と、前記従来手法（２）により示されている線分分割による描画判定の処理コストについて説明する。三角形分割による描画判定は、多角形の外周線に囲まれた領域毎に内部領域判定を行い、内部領域と判定された場合に、グラフィックスLSIで処理が行いやすい三角形単位に分割する処理である。この処理では、多角形の外周線の自己交差数が少なければ、内部領域判定も少なくすむため、処理コストが低いが、自己交差数が多くなると、内部領域判定処理とそれに伴う三角形分割処理を行うべき領域が多くなるため、処理コストが増大する。
【００５４】
それに対して、線分分割による図形処理では、多角形を出力時のスキャンライン単位に分割して内部領域を判定する。この処理における内部領域判定での処理コストは、スキャンライン数には強く依存するが、各スキャンライン内においては、内部領域判定処理が1次元の問題となるため、多角形の複雑さによる影響は小さい。
【００５５】
上記のように、多角形の外周線の自己交差点数が少ない場合は、三角形分割による描画判定の処理コストが低く、多角形の外周線の自己交差点数が多い場合は線分分割による描画判定の処理コストが低いため、多角形の外周線の自己交差点数を比較し、処理コストが低い描画判定を選択することで、図形に対して適応的に高速な描画処理を行う。
【００５６】
[第2の描画データ生成部１１５]
次に、第2の描画データ生成部１１５について説明する。第２の描画データ生成部は、第2の描画処理切り替え部１１４により、入力多角形に対して三角形分割による図形処理が高速と判定された場合に実行され、ベクトルデータ群管理部１０２により管理された多角形の外周線を構成するベクトルデータ群、描画属性データ管理部１０４により管理された描画属性データ、自己交差点管理部１１３により管理された図形自己交差点データを読み込み、多角形の内部領域となる部分を判定して、三角形の集合としてデータを生成する（１００７）。
【００５７】
なお、多角形の三角形分割に関しては、非特許文献２に詳しいため、そちらを参照されたい。
ただし、上記文献の手法はあくまでも実施の一形態であり、これに限定するものではない。
[第２の描画処理部１１６]
第２の描画データ生成部１１５で生成された描画データは、第２の描画処理部１１６に入力され、描画処理が行われる。ここでは、第２の描画処理部１１６について説明する。
【００５８】
第2の描画処理部は、描画属性データ管理部１０４により管理された描画属性データ、および第2の描画データ生成部１１５により生成された三角形データ群を読み込み、描画処理を行う（ステップ１００８）。
【００５９】
具体的には、描画属性データにより指定された色、不透明度などの図形内部領域属性を三角形データに設定し、描画を行う。
なお、三角形の実際の描画は、三角形描画専用のハードウェアを用いてもよいし、汎用のグラフィックス処理ＬＳＩなどを用いてもよいし、その他の手段をもちいてソフトウェア的に処理しても構わない。
【００６０】
[第３の描画データ生成部１１７]
次に第３の描画データ生成部１１７について説明する。第３の描画データ生成部は、第2の描画処理切り替え部１１４により、入力多角形に対して線分分割による図形処理が高速と判定された場合に実行され、ベクトルデータ群管理部１０２により管理された多角形の外周線を構成するベクトルデータ群、および描画属性データ管理部１０４により管理された描画属性データを読み込み、多角形を含む領域をスキャンライン方向の線分に分割し、さらに線分ごとに図形内部領域と、外部領域の判定により、分割を行うことで図形内部領域の線分データを生成する（ステップ１００９）。
【００６１】
なお、多角形の線分分割による描画処理には、スキャンライン毎の図形描画処理などの手法がある。スキャンライン毎の図形描画処理とは、描画をスキャンライン単位の処理として、スキャンライン毎に、図形の塗りつぶし領域を複数のラインの描画で行う処理である。  例えば、多角形図形があったとする。この描画を考えた場合、スキャンライン毎のライン描画処理に分割して描画することが可能であり、ライン描画はピクセル単位の精度で描かれる。
【００６２】
多角形図形の描画処理は、複数のラインの描画処理に置き換えられ、ラインの描画には、ラインの描画開始点と終了点のみあれば十分である。つまり、スキャンライン単位での図形描画を考えた場合、このライン描画開始点とライン描画終了点の算出を行えば良いと言える。
【００６３】
[第３の描画処理部１１８]
第３の描画データ生成部により生成された描画データは、第３の描画処理部１１８に入力され、描画処理が行われる。ここでは、第３の描画処理部１１８について説明する。
【００６４】
第３の描画処理部は、描画属性データ管理部１０４により管理された描画属性データ、および第３の描画データ生成部１１７により生成された線分データ群を読み込み、描画処理を行う（ステップ１０１０）。
【００６５】
具体的には、描画属性データにより指定された色、不透明度などの図形内部領域属性を線分データに設定し、描画を行う。
なお、三角形の実際の描画は、線分描画専用のハードウェアを用いてもよいし、汎用のグラフィックス処理ＬＳＩなどを用いてもよいし、その他の手段をもちいてソフトウェア的に処理しても構わない。
【００６６】
[描画結果出力部１１９]
次に、描画結果出力部１１９について説明する。描画結果出力部は、前記第１の描画処理部１１１、前記第２の描画処理部１１６、および前記第３の描画処理部１１８のいずれかにより、得られる描画結果を出力する（ステップ１０１１）。
【００６７】
描画処理部により得られる描画結果は、論理的なピクセルデータであるため、描画結果出力部は、出力先の形態に合わせて描画結果の変換を行い出力する。
なお、描画結果の出力は、CRT、LCDなどのディスプレイ装置に対して行ってもよいし、プリンタなどの印刷装置に対して行ってもよいし、主記憶装置、補助記憶装置、CD、DVDなどの記録メディアに対して出力してもよいし、その他の装置、手段に対して出力してもかまわない。
【００６８】
なお、以上で示した手法はあくまでも実施の一形態であり、これに限定されるものではない。
（本実施形態の効果）
本実施形態では、装置の動作状況に応じて、その状況下で最も高速な描画処理を行うことで、装置がビジーである場合でも描画処理の性能低下を最小限に押さえ、装置がアイドル状態では高速な描画処理を行うことができる。
【００６９】
これは、小型ＰＣ、携帯電話、インタラクティブな図形描画機能をもったＡＶ機器などのように、ハードウェア資源が限られており、複数の異なる処理を行うタスクを同一のハードウェア上で実行する場合に特に有効である。
【００７０】
［第１の実施形態の変形例１］
図１０は、本発明の第１の実施形態の変形例１に係る図形描画装置の全体構成図である。
変形例１に係る図形描画装置は、第１の実施形態において、第１の参照値管理部の代わりに第１の参照値補正部を、第２の参照値管理部の代わりに第２の参照値補正部を用いた形となっている。
【００７１】
［第1の参照値補正部］
第１の参照値補正部について説明する。第１の参照値補正部は、メモリ使用状況データと比較するための参照値を、描画出力解像度などのメモリ使用状況データの判別に関連する値により算出する。
【００７２】
具体的には、上記［第1の参照値管理部１０７］において述べたように、描画出力解像度により、必要となるステンシルバッファの大きさが変化するため、描画出力解像度とステンシルバッファの精度により、最低限必要なメモリ使用状況を算出する。
【００７３】
これにより、装置のメモリ使用が複数のモードにより変化する場合や、描画出力解像度が動的に変化する場合においても、描画状況に応じて動的に参照値を変化することが可能になる。
【００７４】
［第２の参照値補正部］
第２の参照値補正部について説明する。第２の参照値補正部は、自己交差点数と比較するための参照値を、描画データ生成部の処理状況など、自己交差点数の判定に関連する値により算出する。
【００７５】
具体的には、上記［第２の参照値管理部１０８］において述べたように、自己交差点数の参照値は各描画処理のコストにより変化するため、現在の描画処理状況における処理コストなどにより、自己交差点数の参照値を算出する。
【００７６】
これにより、装置の処理状況に応じて動的に参照値を変化することが可能になる。
第１の参照値補正部、および第２の参照値補正部は、このように装置の動作状況に応じて動的に参照値の補正を行う。この補正により、より詳細な描画処理切り替えの制御を行うことが可能になり、処理の効率化に繋がる。
【００７７】
なお、以上では、動的な参照値の補正の一例を示したが、これに限定されるものではない。動的な参照値の補正が可能な方法について、全て用いることが可能である。
本発明の第１の実施形態の変形例１の以降の処理に関しては、第１の実施形態において、参照値入力部により参照値を読み込むと説明した部分を適宜、参照値補正部によって補正された後の参照値と読み替えれば同様である。以上で説明した以外は、第１の実施形態と同様の動作である。
【００７８】
（本実施形態の効果）
本実施形態では、第1の実施形態に比べ、より詳細に装置の動作状況に応じた描画処理の切り替えを行うことで、装置がビジーである場合でも描画処理の性能低下を最小限に押さえ、装置がアイドル状態では高速な描画処理を行うことができる。
【００７９】
これは、小型ＰＣ、携帯電話、インタラクティブな図形描画機能をもったＡＶ機器などのように、ハードウェア資源が限られており、複数の異なる処理を行うタスクを同一のハードウェア上で実行する場合に特に有効である。
【００８０】
［第１の実施形態の変形例２］
図１１は、第１の実施形態の変形例２における図形描画装置の実施形態を示したものである。
変形例２における図形描画装置は、第１の実施例における第１の参照値管理部１０７、メモリ使用状況データ入力部１０５、メモリ使用状況データ管理部１０６、第１の描画処理切り替え部１０９、第1の描画データ生成部１１０、および第１の描画処理部１１１を省略した形態となっている。そのため、第１の実施形態における、第２の参照値管理部が、本実施形態における参照値管理部と対応し、第１の実施形態における、第２の描画処理切り替え部が、本実施形態における描画処理切り替え部と対応し、第１の実施形態における、第２の描画データ生成部が、本実施形態における第１の描画データ生成部と対応し、第１の実施形態における、第２の描画処理部が、本実施形態における第１の描画処理部と対応し、第１の実施形態における、第３の描画データ生成部が、本実施形態における第２の描画データ生成部と対応し、第１の実施形態における、第３の描画処理部が、本実施形態における第２の描画処理部と対応している。
【００８１】
本変形例を第１の実施形態において説明すると、ベクトルデータ群および描画属性データの入力後、第１の描画処理切り替え部１０９の代わりに、自己交差点算出部１１２が実行され、処理を続ける。具体的には、図３で示される第１の実施形態の処理フローにおいて、ステップ１００１の次に、ステップ１００２をスキップし、ステップ１００５に進むようにすることである。以上で説明した以外は、第１の実施形態と同様の動作である。
【００８２】
（本実施形態の効果）
ステンシルバッファが利用できない実施形態において、入力図形に応じて高速に処理可能な描画処理を行うことができる。これは、第１の実施形態よりもさらにハードウェアリソースが限られている場合に有効である。
【００８３】
［第１の実施形態の変形例３］
図１２は、第１の実施形態の変形例３における図形描画装置の実施形態を示したものである。
本変形例における図形描画装置は、第１の実施例における第2の参照値管理部１０８、自己交差点算出部１１２、自己交差点管理部１１３、第2の描画処理切り替え部１１４、第2の描画データ生成部１１５、および第２の描画処理部１１６を省略した形態となっている。そのため、第１の実施形態における、第１の参照値管理部が、本実施形態における参照値管理部と対応し、第1の実施形態における、第１の描画処理切り替え部が、本実施形態における描画処理切り替え部と対応し、第１の実施形態における、第３の描画データ生成部が、本実施形態における第２の描画データ生成部と対応し、第１の実施形態における、第３の描画処理部が、本実施形態における第２の描画処理部と対応している。
【００８４】
本変形例を第１の実施形態において説明すると、第１の描画処理切り替え部１０９により、ステンシルバッファを確保できないと判定された場合、第３の描画データ生成部１１７が実行され、処理が進む。具体的には、図３に示す第１の実施形態の処理フローにおいて、ステップ１００２により、ステンシルバッファが確保できないと判定された場合に、ステップ１００９に進むようにすることである。以上で説明した以外は、第１の実施形態と同様の動作である。
【００８５】
（本実施形態の効果）
線分の描画に比べ、三角形の描画が低速なハードウェアを用いて描画処理を行う実施形態や、入力されるベクトルデータ群の自己交差点数が、三角形分割による描画処理を高速に行える場合よりも多いことがあらかじめわかっている実施形態において、装置の動作状況に応じて高速に処理可能な描画処理を行うことができる。
【００８６】
これは、第１の実施形態よりも限定されたハードウェアにより処理を行う場合、および入力ベクトルデータ群に自己交差点数が多い特徴がある場合に有効である。
［第１の実施形態の変形例４］
図１３は、第１の実施形態の変形例４における図形描画装置の実施形態を示したものである。
本変形例における図形描画装置は、第１の実施例における第2の参照値管理部１０８、自己交差点算出部１１２、自己交差点管理部１１３、第2の描画処理切り替え部１１４、第３の描画データ生成部１１７、および第３の描画処理部１１８を省略した形態となっている。
【００８７】
そのため、第１の実施形態における、第１の参照値管理部が、本実施形態における参照値管理部と対応し、第1の実施形態における、第１の描画処理切り替え部が、本実施形態における描画処理切り替え部と対応している。
【００８８】
本変形例を、第１の実施形態において説明すると、第１の描画処理切り替え部１０９により、ステンシルバッファを確保できないと判定された場合、第２の描画データ生成部１１５が実行され、処理が進む。具体的には、図３に示す第１の実施形態の処理フローにおいて、ステップ１００２により、ステンシルバッファが確保できないと判定された場合に、ステップ１００７に進むようにすることである。以上で説明した以外は、第１の実施形態と同様の動作である。
【００８９】
（本実施形態の効果）
三角形の描画に比べ、線分の描画が低速なハードウェアを用いて描画処理を行う実施形態において、装置の動作状況に応じて高速に処理可能な描画処理を行うことができる。
【００９０】
これは、第１の実施形態よりも限定されたハードウェアにより処理を行う場合に有効である。
［第２の実施形態］
本実施形態では、掃引線のベクトルデータ、掃引線に沿って掃引する形状のベクトルデータを入力として、描画処理時の装置の状況において、高速な掃引図形の描画処理を選択し、描画を行う装置の例を示す。
【００９１】
図１４は、本実施形態における図形描画装置の実施形態を示したものである。本実施形態における図形描画装置は、掃引線を表すベクトルデータ群を入力するための掃引線データ入力部１１０１と、前記掃引線データ入力部１１０１により入力された掃引線データを保存するための掃引線データ管理部１１０２と、掃引形状を表すベクトルデータ群を入力するための掃引形状データ入力部１１０３と、前記掃引形状データ入力部１１０３により入力された掃引形状データを管理するための掃引形状データ管理部１１０４と、図形の内部領域の属性を表す描画属性データを管理するための描画属性データ入力部１１０５と、前記描画属性データ入力部１１０５により入力された描画属性データを管理するための、描画属性データ管理部１１０６と、メモリ使用状況を取得するためのメモリ使用状況データ入力部１１０７と、前記メモリ使用状況データ入力部１１０７により入力されたメモリ使用状況データを管理するためのメモリ使用状況データ管理部１１０８と、描画処理状況データを取得するための描画処理状況データ入力部１１０９と、前記描画処理状況データ入力部１１０９により入力された描画処理状況データを管理するための描画処理状況データ管理部１１１０と、描画処理の切り替え判定を行う際に参照する不透明度参照値を管理するための第１の参照値管理部１１１１と、描画処理の切り替え判定を行う際に参照するメモリ使用状況の参照値を管理するための第２の参照値管理部１１１２と、描画処理の切り替え判定を行う際に参照する描画処理状況データの参照値を管理するための第３の参照値管理部１１１３と、前記描画属性データ管理部１１０６により管理された描画属性データ、および前記第１の参照値管理部１１１１により管理された不透明度参照値を読み込み、比較・判定を行うことにより、後記第１の描画データ生成部１１１５と後記第２の描画処理切り替え部１１１７の実行制御を行う第１の描画処理切り替え部１１１４と、前記第１の描画処理切り替え部１１１４により実行され、前記掃引線データ管理部１１０２により管理された掃引線データ、および前記掃引形状データ管理部１１０４により管理された掃引形状データを読み込み、図形の重なりを無視する処理により、描画データの生成を行う第１の描画データ生成部１１１５と、前記第１の描画データ生成部１１１５により生成された描画データ、および前記描画属性データ管理部１１０６により管理された描画属性データを読み込み、描画処理を行う第１の描画処理部１１１６と、前記第１の描画処理切り替え部１１１４により実行され、前記メモリ使用状況データ管理部１１０８により管理されているメモリ使用状況データ、および前記第２の参照値管理部１１１２により管理されているメモリ使用状況参照値を読み込み、比較・判定を行うことにより、後記第２の描画データ生成部１１１８と後記第３の描画処理切り替え部１１２０の実行制御を行う第２の描画処理切り替え部１１１７と、前記第２の描画処理切り替え部１１１７により実行され、前記掃引線データ管理部１１０２により管理された掃引線データ、前記掃引形状データ管理部１１０４により管理された掃引形状データを読み込み、デプステストを利用する描画処理を行うための描画データを生成する第２の描画データ生成部１１１８と、前記第２の描画データ生成部１１１８により生成された描画データ、および前記描画属性データ管理部１１０６により管理された描画属性データを読み込み、デプステストを利用した描画処理を行う第２の描画処理部１１１９と、前記第２の描画処理切り替え部１１１７により実行され、前記描画処理状況データ管理部１１１０により管理されている描画処理状況データ、および前記第３の参照値管理部１１１３により管理されている描画処理状況参照値を読み込み、比較・判定を行うことにより、後記第３の描画データ生成部１１２１と後記第４の描画データ生成部１１２３の実行制御を行う第３の描画処理切り替え部１１２０と、前記第３の描画処理切り替え部１１２０により実行され、前記掃引線データ管理部１１０２により管理された掃引線データ、および前記掃引形状データ管理部１１０４により管理された掃引形状データを読み込み、アルファ値を利用する描画処理を行うための描画データを生成する第３の描画データ生成部１１２１と、前記第３の描画データ生成部１１２１により生成された描画データ、および前記描画属性データ管理部１１０６により管理された描画属性データを読み込み、アルファ値を利用した描画処理を行う第３の描画処理部１１２２と、前記第３の描画処理切り替え部１１２０により実行され、前記掃引線データ管理部１１０２により管理された掃引線データ、および前記掃引形状データ管理部１１０４により管理された掃引形状データを読み込み、図形外周線を算出して、多角形描画処理により描画データ生成を行う第４の描画データ生成部１１２３と、前記第４の描画データ生成部１１２３により管理された描画データ、および前記描画属性データ管理部１１０６により管理された描画属性データを読み込み、描画処理を行う第４の描画処理部１１２４と、
【００９２】
前記第１の描画処理部１１１６、前記第２の描画処理部１１１９、前記第３の描画処理部１０２２、および前記第４の描画処理部１１２４のいずれかより出力された描画結果を提示するための描画結果出力部１１２５から構成される。
【００９３】
なお、図１４において、すべての管理部は異なるブロックとして表記しているが、これらは単一のメモリ上にまとめて構成してもよいし、異なる複数のメモリ上に分割して構成しても良い。
【００９４】
また、同様にすべての描画処理部は異なるブロックとして表記しているが、これらについても複数機能を持った単一の描画処理装置によって構成してもよいし、異なる複数の描画処理装置により構成しても良い。
【００９５】
次に、本実施形態における図形描画装置の動作を図１５に示すフローチャートおよび図１４における各ブロックの動作について図面を参照して説明していく。
[図形描画の説明]
まず、本実施形態における図形描画について説明する。本実施形態で扱う図形描画は、掃引線を構成するベクトルデータ群と、その掃引線に沿って掃引する形状データから、掃引線に沿って、掃引形状データを掃引してできる図形を描画するものである。その際、図形の内部領域を特定の規則に従い、塗りつぶしを行う。
【００９６】
具体的には、図１６に示すような、「点０」〜「点５」のような「（一筆書きで得られる）掃引線」を構成するベクトルデータ群と、図１７に示すような「点７」〜「点９」のような「掃引形状」を構成するベクトルデータ群と、内部領域の判定規則、色、不透明度などを含む描画属性データの入力があったとすると、図１８、図１９に示されるように図形を描画する。図１８、図１９について説明すると、掃引形状を、掃引線に沿って掃引してできる軌跡を図形として描画する。そのため、図形の内部領域は、掃引線上の任意の点に掃引形状を置いた際に、掃引形状の内部領域となる部分として定義される。また、掃引線が自己交差をしている部分について、図１９に示すように、内部領域が半透明であっても、交差による重ね塗りを行わず、単一の色で描画を行う。
【００９７】
このため、内部領域が半透明で、自己交差している場合には、自己交差部を検出し、重ね塗りを行わないような処理を行う必要がある。ただし、内部領域が不透明である場合には自己交差の有無に係わらず、重ね塗り回避を行う必要は無い。
【００９８】
このことから、本実施形態では、上述の図形の描画について、重ね塗り部分の処理を、描画処理実行時の図形描画装置の動作状況において、高速に描画処理を行える図形処理を選択する図形描画装置について説明する。
【００９９】
また、描画処理は最終的に、図１８、図１９で示されるような図形をピクセル単位で構成されるラスタデータとして、色、不透明度などを設定して出力する。
[本実施形態の処理フロー概要]
次に、本実施形態において上記図形描画を行う処理フローについて、図１５に示すフローチャートを参照して、説明する。
この図形描画装置により図形描画処理を開始すると、掃引線データ、掃引形状データ、描画属性データ、メモリ使用状況データ、描画処理状況データの入力を行う（ステップ１２０１）。
【０１００】
次に、描画属性データの不透明度により、描画図形の重なり部分の処理が必要か、判定する（ステップ１２０２）。
ステップ１２０２の判定により、描画図形の重なり部分の処理が不要と判定された場合、描画図形の重なりを無視した三角形で構成される描画データを生成し（ステップ１２０３）、三角形描画により、図形描画を行う（ステップ１２０４）。
【０１０１】
ステップ１２０２の判定により、描画図形の重なり部分の処理が必要と判定された場合、デプスバッファを利用して描画図形の重なり部分を処理できるかを、メモリ使用状況を閾値と比較することで、判定する（ステップ１２０５）。
【０１０２】
ステップ１２０５の判定により、デプスバッファが利用可能と判定された場合、デプスバッファの更新、およびデプスバッファを利用した描画を行うための描画データを生成し（ステップ１２０６）、デプスバッファの更新および、デプスバッファを利用した描画処理を行う（ステップ１２０７）。
【０１０３】
ステップ１２０５の判定により、デプスバッファが利用不可と判定された場合、描画処理部の処理負荷を閾値と比較し、アルファ値を利用して、描画図形の重なり部分を高速に処理可能か判定する（ステップ１２０８）。
【０１０４】
ステップ１２０８の判定により、アルファ値を利用して描画図形の重なり部分を高速に処理可能と判定された場合、アルファ値の更新および、アルファ値を利用した描画処理を行うための描画データを生成し（ステップ１２０９）、アルファ値の更新、およびアルファ値を利用した描画処理を行う（ステップ１２１０）。
【０１０５】
ステップ１２０８の判定により、アルファ値を利用して描画図形の重なり部分を高速に処理できないと判定された場合、描画図形の外周線を算出し、三角形あるいは線分に分割した描画データを生成し（ステップ１２１１）、三角形描画、あるいは線分描画により描画処理を行う（ステップ１２１２）。
【０１０６】
以上により、いずれかのステップで描画処理が行われ描画結果を出力する（ステップ１２１３）以降、各ステップについてより詳細に説明をする。
[掃引線についての説明]
図形描画の入力の一つである掃引線を構成するベクトルデータ群について説明する。
本実施形態で扱う掃引線を構成するベクトルデータ群は、第１の実施形態におけるベクトルデータ群と同様の構成である。
すなわち、ベクトルデータ群は、2次元、あるいは３次元の座標値を持つN個の点データP1〜PNにより構成される。ただし、掃引線は多角形ではなく、連続線分を表しているため、第1の実施形態と異なり、P0＝PN-1でない場合でもそのまま扱う。
【０１０７】
[掃引線データ入力部１１０１の説明]
[掃引線データ管理部１１０２]
上記で説明したような図形描画のための入力の一つである掃引線を構成するベクトルデータ群の入力処理は、掃引線データ入力部１１０１により行われ、掃引線データ管理部１１０２に保存される。
【０１０８】
掃引線データの入力は、補助記憶装置、FD、CD-ROM、DVD-ROMなどにあらかじめ保存してあるデータからの読み込みや、マウス、キーボード、キーパッド、ペンタブレット、タッチパネルなどのヒューマンインタフェースデバイスによるインタラクティブな入力の読み取りとして行われる。
【０１０９】
[掃引形状についての説明]
次に、図形描画の入力の一つである掃引形状を構成するベクトルデータ群、または、それに相当する点データ群について説明する。
本実施形態で扱う掃引形状を構成するベクトルデータ群は、第１の実施形態におけるベクトルデータ群と同様の構成である。
すなわち、ベクトルデータ群は、2次元、あるいは３次元の座標値を持つN個の点データP1〜PNにより構成される。また、P0＝PN-1でない場合は、多角形が閉じていないため、PN＝P1となる仮想的な点を想定して処理を行う。
【０１１０】
[掃引形状データ入力部１１０３]
[掃引形状データ管理部１１０４]
上記で説明したような図形描画のための入力の一つである掃引形状を構成するベクトルデータ群の入力処理は、掃引形状データ入力部１１０３により行われ、掃引形状データ管理部１１０４に保存される。
【０１１１】
掃引形状データの入力は、補助記憶装置、FD、CD-ROM、DVD-ROMなどにあらかじめ保存してあるデータからの読み込みや、マウス、キーボード、キーパッド、ペンタブレット、タッチパネルなどのヒューマンインタフェースデバイスによるインタラクティブな入力の読み取りとして行われる。
【０１１２】
[描画属性についての説明]
次に、図形描画の入力の一つである描画属性について説明する。
本実施形態で扱う描画属性は、第１の実施形態における描画属性より、内部領域判定規則を除いたものとなる。
すなわち、内部領域色、不透明度など図形の描画時における属性に関する情報などから構成される。
[描画属性データ入力部１１０５]
[描画属性データ管理部１１０６]
上記で説明したような図形描画のための入力の一つである描画属性データの入力処理は、描画属性データ入力部１１０５によって行われ、描画属性データ管理部１１０６に保存される。
【０１１３】
描画属性データの入力は、補助記憶装置、FD、CD-ROM、DVD-ROMなどにあらかじめ保存してあるデータからの読み込みや、マウス、キーボード、キーパッド、ペンタブレット、タッチパネルなどのヒューマンインタフェースデバイスによるインタラクティブな入力の読み取りとして行われる。
【０１１４】
[描画処理の切り替えに用いる判定についての説明]
次に、本実施例における描画処理切り替えの判定値として用いるデータについて説明する。
本実施例では、描画処理切り替えの判定値として、不透明度、メモリ使用状況データ、および描画処理状況データを用いる。
これらのデータは、それにより切り替えが行われる描画処理の性質によって決定される。
また、本実施における図形描画では、描画属性が半透明の場合、描画図形の自己交差部を検出し、描画図形の重なりを適切に処理しなければならない。しかし、そのために処理コストが増大してしまうため、不透明度により描画図形の重なり処理の有無を判定することで、入力データに応じて高速な描画処理を選択することができる。
【０１１５】
また、本実施例におけるデプステストを利用した描画処理は、描画図形の重なりに関して高速な処理が可能である。デプステストとは、図形を構成するベクトルデータに奥行き方向の位置も含めた、3次元の位置情報を与えて、描画時に背景の奥行き情報と描画図形の奥行き情報を比較することで、描画の可否を制御する処理である。デプステストは汎用的なグラフィックスLSIでは一般的な機能であり、描画図形の重なりに関して高速に処理できるが、デプステストの利用には奥行き情報を記憶するためのバッファ（デプスバッファ）を確保するためのメモリ領域が必要となる。そのため、描画処理実行時のメモリ使用状況により、デプステストを利用した描画処理の可否を判定することで、リソース状況に応じて描画処理を選択することができる。
【０１１６】
また、本実施例におけるアルファ値を利用した描画処理は、描画図形の重なりに関して高速な処理が可能である。アルファ値とは、ピクセル単位で色以外の情報を格納する値であり、通常は描画図形と背景を合成する際の比率として扱われる。（本実施例における不透明度も、通常はアルファ値に設定する）。そのため、アルファ値をステンシルバッファの代わりに用いることで、描画図形の重なりを正しく処理することもできる。ただし、ステンシルバッファと異なり、アルファ値は背景画像との合成比率としても同時に用いられるため、合成処理も考慮したアルファ値の設定が必要となる。また、ステンシルバッファはピクセル単位の書き込みの可否を制御する目的の機能であるため、ハードウェアで実装されている場合は、ピクセルの書き込み不可時に効率的に処理がされる（無駄な合成作業などが行われない）が、アルファ値を用いる手法では、合成処理によりピクセル書き込み不可時と同等の結果を得られるようにするため、ステンシルバッファに比べ、描画処理部の処理負荷が高い。そのため、描画時に描画処理部の処理負荷がすでに高い場合は、処理速度が低下する。そこで、描画処理実行時の描画処理部の処理状況により、アルファ値を利用した描画処理の可否を判定することで、リソース状況に応じて描画処理を選択することができる。
【０１１７】
[メモリ使用状況データ入力部１１０７]
[メモリ使用状況データ管理部１１０８]
上記で説明した描画処理手法判定値の一つであるメモリ使用状況の入力は、メモリ使用状況データ入力部１１０７によって行われ、メモリ使用状況管理部１１０８に保存される。
【０１１８】
メモリ使用状況とは、本実施例における図形描画装置を構成する各ブロックの処理で利用される、データ（一時・恒久保存は問わない）を格納する記憶領域の描画処理時の使用量である。具体的には、全くメモリが使用されていない場合におけるメモリ使用可能量であるメモリ最大量、および描画処理時の実際のメモリ使用量などからなる値である。
【０１１９】
なお、本実施例におけるメモリ使用状況は、図形描画装置を構成する各ブロックが共通のメモリ領域を用いるか、個別のメモリ領域を用いるかについては限定しない。
共通のメモリ領域を用いる場合には、共通メモリ領域のメモリ使用状況データを入力とし、個別のメモリ領域を用いる場合には、全てのメモリ領域のメモリ使用状況を読み込み、必要となるメモリ使用状況を算出するか、メモリ使用状況が必要となるブロックを限定してメモリ使用状況を読み込むなどの方法で、メモリ使用状況を得ることができる。
【０１２０】
[描画処理状況データ入力部１１０９]
[描画処理状況データ管理部１１１０]
上記で説明した描画処理手法判定値の一つである描画処理状況データの入力は、描画処理状況データ入力部１１０９によって行われる。描画処理状況データとは、グラフィックスLSIなどの描画処理を行う装置のタスク状況を示す値である。
【０１２１】
本実施形態では、第１の描画処理部１１１６、第２の描画処理部１１１９、第３の描画処理部１１２２、および第４の描画処理部１１２４からなる描画処理の状況を表すデータを入力とする。
【０１２２】
[第１の描画処理切り替え部１１１４]
[第１の参照値管理部１１１１]
次に、第１の描画処理切り替え部１１１４について説明する。第１の描画処理切り替え部では、描画図形の内部領域属性が、半透明であるか判定を行い、不透明であった場合には高速に処理を行う事が可能な、掃引線の自己交差部の重なりを無視する描画処理を実行し、半透明であった場合には、掃引線の自己交差部の重なりを高速に処理するための図形処理を判定する次のステップを実行する（ステップ１２０２）。
【０１２３】
不透明度判定は、描画属性データ管理部１１０６により管理されている描画属性データに含まれる不透明度を示す値Asと、第１の参照値管理部１１１１により管理されている不透明を示す不透明度の値Arefを比較し、AsがArefと等しい場合に後記第１の描画データ生成部１１１５を実行し、異なる場合には第２の描画処理切り替え部１１１７を実行する。
【０１２４】
[第１の描画データ生成部１１１５]
次に、第１の描画データ生成部１１１５について説明する。第１の描画データ生成部は、第１の描画処理切り替え部１１１４により、図形の内部領域が不透明であった場合に実行され、掃引線の自己公差部の重なりを無視した描画データを生成する（ステップ１２０３）。
【０１２５】
具体的には、自己交差部の検出、および分割処理を行わずに、掃引線を構成するベクトルデータ毎に掃引形状を掃引する事によって得られる図形から、線、三角形データなど、描画処理部で処理可能なデータを生成する。
【０１２６】
自己交差部を無視する描画データ生成の一例として、三角形データ群生成の処理フローを図２０に示し、説明する。
まず、掃引線データ入力部１１０１により入力された掃引線データ、掃引形状データ入力部１１０３により入力された掃引形状データを入力として読み込む（ステップ１７０１）。
【０１２７】
読み込んだ掃引線データを構成するベクトルデータ毎に、掃引図形を掃引してできる図形の外周線を計算し（ステップ１７０２）、外周線データを多角形と見なして三角形データに分割する処理を行い（ステップ１７０３）、生成された三角形データ群を保存（ステップ１７０４）していくことで、掃引線全体について三角形データの生成を行う。
【０１２８】
ステップ１７０２の外周線計算では、図２１に示すように、掃引線ベクトルの始端と終端に掃引形状を配置し、掃引線ベクトルに対して垂直な方向で、最も離れている掃引形状の点を、掃引線ベクトルの左右で求め、始端と終端で結ぶことにより外周線を算出する。最も離れている掃引形状の点は、掃引線ベクトルの法線ベクトルと、掃引線ベクトルの始点と掃引形状の点を結んだベクトルの内積が、最も大きいもの、および最も小さいものとして得られる。ここで、a0, a1,…,aN-1の中で最大の値のインデックスiを返す関数としてmax_index（ai）を定義し、最小の値のインデックスiを返す関数としてmin_index（ai）を定義すると、上記の条件を満たす頂点形状を構成する点のインデックスは、次のように記述できる。
【０１２９】
IL=max_index(<P>i・<ｎ>)    （式１）
IR=min_index(<P>i・<ｎ>)    （式２）
ただし、i＝0,1,…,N-1（Nは掃引形状の頂点数）で、ILは掃引線ベクトルに対して左側で最も離れた掃引形状を構成する点のインデックス、IRは右側で最も離れた掃引形状を構成する点のインデックスである。また、<>はベクトルを表し、<ｎ>は掃引線ベクトルの進行方向に対して左側を向いた単位法線ベクトル、<P>iは掃引形状を掃引線の始点に配置し、掃引線始点を原点とした場合の掃引形状を構成する点の位置ベクトル、<P>i・<ｎ>は<P>iと<ｎ>の内積である。
【０１３０】
ステップ１７０３では、算出された外周線を多角形データの三角形分割処理により、三角形データ群を生成する。ここでは、三角形データ生成の最も単純な例として、掃引形状が矩形に限定されている場合について説明する。図２２に示すように、外周線が点P０〜P5により構成されている場合、T０：P０→P1→P5、T1：P1→P4→P5、T2：P1→P2→P4、T3：P2→P3→P4、の４つの三角形に分割することができる。
【０１３１】
なお、ステップ１７０２、ステップ１７０３における三角形データ群の生成については、様々な手法があり、本実施例においては、ここに説明した処理方法に限定するものではなく、任意の手法を用いることができる。
【０１３２】
[第１の描画処理部１１１６]
第１の描画データ生成部１１１５により生成された描画データは、第１の描画処理部１１１６に入力され、描画処理が行われる。ここでは、第１の描画処理部１１１６について説明する。
【０１３３】
第１の描画処理部では、前記第１の描画データ生成部１１１５により生成された三角形データ群、および描画属性データ管理部１１０６により管理された描画属性データを読み込み、描画処理を行う（ステップ１２０４）。
【０１３４】
具体的には、描画属性データにより指定された色、不透明度などの図形内部領域属性を三角形データに設定し、描画を行う。
なお、三角形の実際の描画は、三角形描画専用のハードウェアを用いてもよいし、汎用のグラフィックス処理ＬＳＩなどを用いてもよいし、その他の手段をもちいてソフトウェア的に処理しても構わない。
【０１３５】
[第２の描画処理切り替え部１１１７]
[第２の参照値管理部１１１２]
次に、第２の描画処理切り替え部１１１７について説明する。第２の描画処理切り替え部は、第１の描画処理切り替え部１１１４により、図形の内部領域が半透明であった場合に実行され、図形処理装置のメモリ使用状況の判定を行い、デプスバッファが確保できる場合には、描画図形の重なりを高速に処理可能な、デプステストを利用した描画処理を実行し、確保ができない場合には、デプステストを用いないで掃引線の自己交差部の重なりを処理するための図形処理を判定する次のステップを実行する（ステップ１２０５）。
【０１３６】
メモリ使用状況の判定は、メモリ使用状況データ入力部１１０７により入力された図形描画実行時の図形処理装置のメモリ使用状況Mと、第２の参照値管理部１１１２により管理されているデプスバッファを確保するために必要な、最低限のメモリ使用状況を示す参照値Mrefを比較し、MがMrefを満たす場合には、後記第２の描画データ生成部１１１８を実行し、異なる場合には、後記第３の描画処理切り替え部１１２０を実行する。
【０１３７】
なお、第２の参照値管理部１１１２により管理されているメモリ使用状況参照値は、図形描画装置の出力、および図形描画装置の構成によって決定する値である。デプスバッファ確保の可否は、描画出力解像度、および利用可能なメモリの最大量に依存する。描画出力解像との関係は、一般的にデプスバッファの大きさが描画出力解像度と同一であるため、描画出力解像度が大きければデプスバッファ確保が難しくなる。また、利用可能なメモリの最大量については、利用可能な最大メモリ量に対してデプスバッファサイズが大きい場合は、デプスバッファによりメモリの大半を利用されてしまい、他のタスクでメモリを使用できなくなる可能性が高くなる。そのような状況になってしまった場合、複数ブロック間でメモリを共有しているような実施形態では、描画装置全体の処理性能が大きく低下する。
【０１３８】
そのため、メモリ使用状況参照値は、図形描画装置の出力、および図形描画装置の構成により決定する。
なお、これらの問題をより効率的に回避するためには、タスク状況と合わせて参照値を動的に変更するなどの方法もある。
[第２の描画データ生成部１１１８]
次に、第２の描画データ生成部１１１８について説明する。第２の描画図形データ処理部は、第２の描画処理切り替え部１１１７により、デプスバッファが確保できる場合に実行され、描画図形の重なりを高速に処理することが可能な、デプステストを利用した描画処理を行うための、描画データを生成する（ステップ１２０６）。
【０１３９】
デプステストを利用した描画処理を行うためのベクトルデータ群の生成は、三角形データ群の生成までは、前記第１の描画データ生成部１１１５におけるベクトルデータ群生成と同様に行い、さらに生成した三角形データ群に同一のデプス値を付加することで行う。ここで、付加するデプス値については、デプステストにおいて利用できる範囲のデプス値であれば、特に限定はしない。
【０１４０】
ただし、毎回の図形描画処理において、デプス値をインクリメントしたものを利用すれば、描画毎にデプスバッファの内容をクリアする必要が無くなるなどの利点がある。
【０１４１】
[第２の描画処理部１１１９]
第２の描画データ生成部１１１８により生成された描画データは、第２の描画処理部１１１９に入力され、描画処理が行われる。ここでは、第２の描画処理部１１１９について説明する。
【０１４２】
第２の描画処理部では、前記第２の描画データ生成部１１１８により生成されたデプス値付き三角形データ群、および前記描画属性データ管理部１１０６により管理された描画属性データを読み込み、デプステストを利用した描画処理を行う（ステップ１２０７）。
【０１４３】
ここで、デプステストの方法について説明する。毎回の図形描画ごとに図形の深度値をインクリメントしていた場合、テスト対象ピクセルの深度値をDｓ、デプステスト用バッファのテスト対象ピクセルと対応する位置の値をDdとすると、Ds＞Ddの場合にデプステストを合格とし、デプステスト用バッファの値をDsで更新する。このようにデプステストを行うことで、掃引線の自己交差部に重ね塗りについても、同一の深度値であるためデプステストに不合格となり、正しく処理することができる。
【０１４４】
[第３の描画処理切り替え部１１２０]
[第３の参照値管理部１１１３]
次に、第３の描画処理切り替え部１１２０について説明する。第3の描画処理切り替え部は、第２の描画処理切り替え部１１１７により、デプステスト用バッファが確保できないと判定された場合に実行され、描画処理状況データの判定を行い、描画処理部の処理負荷が高い状態（ビジー状態）でない場合には、掃引線の自己交差部の重なりを高速に処理することが可能な、不透明度値を書き込むデータ領域（アルファ値）を利用した描画処理を実行し、ビジー状態の場合には、描画図形の外周線を多角形として描画処理を行う（ステップ１２０８）。
【０１４５】
描画処理状況データの判定は、描画処理状況データ管理部１１１０により管理された図形描画実行時の描画処理状況データRと、第３の参照値管理部１１１３により管理されている、描画処理部がビジー状態であるかを示す描画処理状況データの参照値Rrefを比較し、RがRrefを満たさない場合には、後記第３の描画データ生成部１１２１を実行し、異なる場合には、後記第４の描画データ生成部１１２３を実行する。
【０１４６】
描画処理部がビジー状態であるか示す描画処理状況データの参照値については、図形描画装置の実現方法により、描画処理状況データの形式が変わるため限定はしない。
【０１４７】
一例として、描画処理状況データをタスクキューにたまっているタスク数として得られる場合には、最大タスク数として参照値を設定することで、描画処理部がビジー状態であるか判定することが可能になる。
【０１４８】
[第３の描画データ生成部１１２１]
次に、第３の描画データ生成部１１２１について説明する。第３の描画データ生成部は、第３の描画処理切り替え部１１２０により、描画処理部がビジー状態ではないと判断された場合に実行され、掃引線の自己交差部の重なりを高速に処理することが可能な、アルファ値を利用した描画処理を行うための、描画データを生成する（ステップ１２０９）。
【０１４９】
アルファ値を利用した描画処理を行うための、描画データとしてはまず、前記第１の描画データ生成部１１１５における描画データ生成と同様に、掃引線の自己交差部の重なりを無視した描画データを生成する。次に図２３に示すような、生成した描画データ群を囲む、座標軸に平行な最小の矩形を描画データとして生成する。矩形が直接描画できない場合には、矩形を対角線で分割し、２つの三角形データとして生成してもよい。
【０１５０】
[第３の描画処理部１１２２]
第３の描画データ生成部１１２１により生成された描画データは、第３の描画処理部１１２３に入力され、描画処理が行われる。ここでは、第３の描画処理部１１２２について説明する。
【０１５１】
第３の描画処理部では、前記第３の描画データ生成部１１２１により生成された描画データ、および、描画属性データ管理部１１０６により管理された描画属性データを読み込み、アルファ値を利用した描画処理を行う（ステップ１２１０）。
【０１５２】
第３の描画処理部による処理フローを図２４に示し、説明する。まず、第３の描画データ生成部１１２１により生成された描画データ、および描画属性データ管理部１１０６により管理された描画属性データを読み込む（ステップ２１０１）。次に、第３の描画データ生成部により生成された、図形を囲む座標軸に平行な最小の矩形の描画データTrectを用いて、図２５に示すように、アルファ値を不透明であることを表す最大の値αmaxとして描画処理を行い、背景のアルファ値αdstのみをαmaxで上書き更新する（カラー値は変更しない）ことで、図形を含む領域内のアルファ値をクリアする（ステップ２１０２）。
【０１５３】
次に、図２６に示すように、掃引線の自己公差部の重なりを無視した描画データを、アルファ値を（αmax―α）として描画処理を行い、アルファ値のみを上書き更新する（ステップ２１０３）。ここで、αは、描画属性データより得られる図形のアルファ値（不透明度）とする。
【０１５４】
最後に、Trectを任意のアルファ値を用いて、描画処理を行い、カラー値を次の計算式により計算する（ステップ２１０４）。
Cnew＝（αmax―αdst）×C＋αdst×Cdst        （式３）
【０１５５】
ここで、Cnewは計算されたカラー値、Cは描画属性データより得られる図形のカラー値、Cdstはラスタデータに保存されているカラー値である。
【０１５６】
式３を用いて、描画処理を行うと、図形の内部領域外では次のようにカラー値は背景の色が用いられることになる。
αdst＝αmax
∴Cnew＝（αmax―αmax）×C＋αmax×Cdst＝αmax×Cdst＝Cdst
【０１５７】
ここで、αmax×Cdst＝Cdstとなるのはαmaxが不透明を表す値であるためである。
【０１５８】
また、図形の内部領域では、次のようになり、背景との合成が正しく行われる。
αdst＝αmax―α
∴Cnew＝（αmax―（αmax―α））×C＋（αmax―α）×Cdst＝α×C＋（αmax―α）×Cdst
【０１５９】
これは、一般的なアルファ値を用いた合成処理であり、内部領域は正しく描画処理ができる。なお、アルファ値を用いた合成処理に関しては、非特許文献３に記載されており、同様の合成処理を用いてもよい。
【０１６０】
[第４の描画データ生成部１１２３]
次に、第４の描画データ生成部１１２３について説明する。第３の描画データ生成部は、前記第３の図形処理切り替え部１１２０により、描画処理部がビジー状態と判断された場合に実行され、描画図形の外周線を多角形として扱うことで、前記本発明における実施形態１の変形例１と同様の描画処理により、描画図形の重なり部の検出・分割を行う。これにより、描画図形の重なりを正しく処理できる（データ間で重なりのない）描画データを生成する（ステップ１２１１）。
【０１６１】
ここで、図形の外周線の算出方法の一例について、処理フローを図２７に示し、これを参照しながら説明する。
まず、入力として、掃引線データ管理部１１０２により管理された掃引線データ、および掃引形状データ管理部１１０４により管理された掃引形状データを入力として読み込む（ステップ２２０１）。
【０１６２】
次に読み込んだ掃引線データから、掃引線を構成する点情報を、始点から終点に向けて順に取り出し、２つの連続した点により定義されるベクトルデータ（Pn―Pn-1）に対して、掃引図形を掃引してできる図形について、ベクトルデータの方向に対して左側の外周線を計算し（ステップ２２０２）、保存する（ステップ２２０３）。ベクトルデータの方向に対して左側の外周線を算出する方法は、上記第１の描画データ生成部１１１５で説明した方法を応用する。第１の描画データ生成部１１１５と異なり、ここでは掃引線が連続線分であるため、コーナーの内側で外周線が交差する場合がある。そこで、外周線を計算した後、一つ前のベクトルデータにおける外周線と交差判定を行い、交差していた場合には、一つ前のベクトルデータにおける外周線計算により算出された、外周点を計算した交点で置き換えることで、外周線が交差した場合を処理する。
【０１６３】
終点まで計算を行った後、次は逆に終点から始点に向けて掃引線データから点情報を取り出し、上記の方法と同様に、左側の外周線の計算を行う（ステップ２２０４、ステップ２２０５）。
【０１６４】
この処理により、図形の外周線を図２８に示すような、時計回りのベクトルデータ群として得ることができる。
外周線のベクトルデータ群を多角形と考え、前記本発明における実施形態１の変形例１と同様の処理により多角形の内部領域を描画処理部でラスタライズ可能な、ベクトルデータ群として生成する。
【０１６５】
ただし、内部領域判定ルールとして非ゼロ巻数規則を用いる。非ゼロ巻数規則による内部領域判定で、掃引線の自己公差部が内部領域ではないためには、図２９に示すように、外周線がねじれて交差していなければならない。しかし、上記で述べたような外周線ベクトルデータ群では、外周線のねじれによる交差は生じない。そのため、非ゼロ巻数規則を用いて内部領域判定を行うことで、掃引線の自己交差部の重なりを正しく描画することが可能になる。
【０１６６】
[第４の描画処理部１１２４]
第４の描画データ生成部１１２３により生成された描画データは、第４の描画処理部１１２５に入力され、描画処理が行われる。ここでは、第４の描画処理部１１２４について説明する。
【０１６７】
第４の描画処理部では、実施形態１の変形例１と同様に、前記第４の描画データ生成部１１２３により生成された三角形データあるいは線分データ、および前記描画属性データ管理部１１０６により管理された描画属性データを読み込み、描画処理を行う（ステップ１２１２）。
【０１６８】
具体的には、描画属性データにより指定された色、不透明度などの図形内部領域属性を三角形データに設定し、描画を行う。
なお、三角形の実際の描画は、三角形描画専用のハードウェアを用いてもよいし、汎用のグラフィックス処理ＬＳＩなどを用いてもよいし、その他の手段をもちいてソフトウェア的に処理しても構わない。
【０１６９】
[描画結果出力部１１２５]
次に、描画結果出力部１１２５について説明する。描画結果出力部は、前記第１の描画処理部１１１６、前記第２の描画処理部１１１９、前記第３の描画処理部１１２２、および前記第４の描画処理部１１２４のいずれかにより、得られる描画結果を出力する（ステップ１２１３）。
【０１７０】
描画処理部により得られる描画結果は、論理的なピクセルデータであるため、描画結果出力部は、出力先の形態に合わせて描画結果の変換を行い出力する。
なお、描画結果の出力は、CRT、LCDなどのディスプレイ装置に対して行ってもよいし、プリンタなどの印刷装置に対して行ってもよいし、主記憶装置、補助記憶装置、CD、DVDなどの記録メディアに対して出力してもよいし、その他の装置、手段に対して出力してもかまわない。なお、以上で示した手法はあくまでも実施の一形態であり、これに限定されるものではない。
【０１７１】
（本実施形態の効果）
本実施形態では、装置の動作状況に応じた最も高速な、任意多角形を任意連続線分に沿って掃引してできる図形（掃引図形）の描画処理を行うことで装置がビジー状態である場合でも掃引図形描画処理の性能低下を最小限に押さえ、装置がアイドル状態では高速な掃引図形描画処理を行うことができる。これは、小型ＰＣ、携帯電話、インタラクティブな掃引図形描画機能をもったＡＶ機器などのように、ハードウェア資源が限られているハードウェア上で実行する場合に特に有効である。
【０１７２】
［第２の実施形態の変形例１］
図３０は、本発明の第２の実施形態の変形例１に係る図形描画装置の全体構成図である。
変形例１に係る図形描画装置は、第２の実施形態において、第２の参照値管理部の代わりに第２の参照値補正部を第３の参照値管理部の代わりに第３の参照値補正部を用いた形となっている。
【０１７３】
［第２の参照値補正部］
第２の参照値補正部について説明する。第２の参照値補正部は、メモリ使用状況データと比較するための参照値を、描画出力解像度などのメモリ使用状況データの判別に関連する値により補正する。
【０１７４】
具体的には、上記［第２の参照値管理部１１１２］において述べたように、描画出力解像度により、必要となるデプスバッファの大きさが変化するため、描画出力解像度とデプスバッファの精度より、最低限必要なメモリ使用状況データを補正する。
【０１７５】
これにより、装置のメモリ使用が複数のモードにより変化する場合や、描画出力解像度が動的に変化する場合においても、描画状況に応じて動的に参照値を変化することが可能になる。
【０１７６】
［第３の参照値補正部］
第３の参照値補正部について説明する。第３の参照値補正部は、描画処理状況データと比較するための参照値を、描画処理部を利用するタスク数など、描画処理状況の判定に関連する値により補正する。
【０１７７】
具体的には、上記［第３の参照値管理部１１１３］において述べたように、描画処理状況の参照値は描画処理を行うタスク数などにより変化するため、描画タスクの増減が段階的な場合などは、その段階の変化により、描画処理状況データの参照値を補正する。
【０１７８】
これにより、装置の処理状況に応じて動的に参照値を変化することが可能になる。
第２の参照値補正部、および第３の参照値補正部は、このように装置の動作状況に応じて動的に参照値の補正を行う。この補正により、より詳細な描画処理切り替えの制御を行うことが可能になり、処理の効率化に繋がる。
【０１７９】
なお、以上では、動的な参照値の補正の一例を示したが、これに限定されるものではない。動的な参照値の補正が可能な方法について、全て用いることが可能である。
本発明の第２の実施形態の変形例１の以降の処理に関しては、第２の実施形態において、メモリ使用状況を判定するための参照値管理部により参照値を読み込むと説明した部分を適宜、参照値補正部によって補正された後の参照値と読み替え、描画処理状況を判定するための参照値管理部により参照値を読み込むと説明した部分を適宜、参照値補正部によって補正された後の参照値と読み替えれば同様である。以上で説明した以外は、第２の実施形態と同様の動作である。
【０１８０】
（本実施形態の効果）
本実施形態では、第２の実施形態に比べ、より詳細に装置の動作状況に応じた描画処理の切り替えを行うことで、装置がビジーである場合でも描画処理の性能低下を最小限に押さえ、装置がアイドル状態では高速な描画処理を行うことができる。これは、小型ＰＣ、携帯電話、インタラクティブな図形描画機能をもったＡＶ機器などのように、ハードウェア資源が限られており、複数の異なる処理を行うタスクを同一のハードウェア上で実行する場合に特に有効である。
【０１８１】
［第２の実施形態の変形例２］
図３１は、本発明の第２の実施形態の変形例２に係る図形描画装置の全体構成図である。
変形例２に係る図形描画装置は、第２の実施形態の図形描画装置における第１の参照値管理部１１１１、第１の描画処理切り替え部１１１４、第１の描画データ生成部１１１５、および第１の描画処理部１１１６を省略した形態となっている。
【０１８２】
そのため、第２の実施形態における第２の参照値管理部が、本実施形態における第１の参照値管理部と対応し、第２の実施形態における第２の描画処理切り替え部が、本実施形態における第１の描画処理切り替え部と対応し、第２の実施形態における第２の描画データ生成部が、本実施形態における第１の描画データ生成部と対応し、第２の実施形態における第２の描画処理部が、本実施形態における第１の描画処理部と対応し、第２の実施形態における第３の参照値管理部が、本実施形態における第２の参照値管理部と対応し、第２の実施形態における第３の描画処理切り替え部が、本実施形態における第２の描画処理切り替え部と対応し、第２の実施形態における第３の描画データ生成部が、本実施形態における第２の描画データ生成部と対応し、第２の実施形態における第３の描画処理部が、本実施形態における第２の描画処理部と対応している。
【０１８３】
本変形例を、第２の実施形態において説明すると、データの入力処理がなされたあと、第２の描画処理切り替え部１１１７が実行され、処理が進む。具体的には、図１５に示す第２の実施形態の処理フローにおいて、ステップ１２０１によりデータの入力が行われた後、ステップ１２０２をスキップし、ステップ１２０５に進むようにすることである。以上で説明した以外は、第２の実施形態と同様の動作である。
【０１８４】
（本実施形態の効果）
本実施形態では、図形の塗りつぶし色が半透明に限定されている図形描画装置において、装置の動作状況に応じた最も高速な描画処理を行うことで、装置がビジー状態である場合でも描画処理の性能低下を最小限に押さえ、装置がアイドル状態では高速な描画処理を行うことができる。これは、小型ＰＣ、携帯電話、インタラクティブな図形描画機能をもったＡＶ機器などのように、ハードウェア資源が限られているハードウェア上で実行する場合に特に有効である。
【０１８５】
［第２の実施形態の変形例３］
図３２は、本発明の第２の実施形態の変形例３に係る図形描画装置の全体構成図である。
変形例３に係る図形描画装置は、第２の実施形態の図形描画装置における第２の参照値管理部１１１２、メモリ使用状況データ入力部１１０７、メモリ使用状況データ管理部１１０８、第２の描画処理切り替え部１１１７、第２の描画データ生成部１１１８、および第２の描画処理部１１１９を省略した形態となっている。
【０１８６】
そのため、第２の実施形態における第3の参照値管理部が、本変形例における第２の参照値管理部と対応し、第２の実施形態における第3の描画処理切り替え部が、本変形例における第２の描画処理切り替え部と対応し、第２の実施形態における第3の描画データ生成部が、本変形例における第２の描画データ生成部と対応し、第２の実施形態における第3の描画処理部が、本変形例における第２の描画処理部と対応し、第２の実施形態における第４の描画データ生成部が、本変形例における第３の描画データ生成部と対応し、第２の実施形態における第４の描画処理部が、本変形例における第４の描画処理部と対応している。
【０１８７】
本変形例を、第２の実施形態において説明すると、第１の描画処理切り替え部１１１４により、描画属性として入力された不透明度が、半透明と判定された場合に、第３の描画処理切り替え部１１２０に処理が進む。具体的には、図１５に示す第２の実施形態の処理フローにおいて、ステップ１２０２により不透明度が、図形内部領域が半透明であることを示していた場合、ステップ１２０５をスキップし、ステップ１２０８に進むようにすることである。以上で説明した以外は、第２の実施形態と同様の動作である。
【０１８８】
（本実施形態の効果）
本実施形態では、デプステストを利用できない図形描画装置において、装置の動作状況に応じた最も高速な描画処理を行うことで、装置がビジー状態である場合でも描画処理の性能低下を最小限に押さえ、装置がアイドル状態では高速な描画処理を行うことができる。
【０１８９】
これは、第2の実施形態よりもハードウェア資源が限られており、デプステスト機能を持たないハードウェア上で実行する場合に特に有効である。
［第２の実施形態の変形例４］
図３３は、本発明の第２の実施形態の変形例４に係る図形描画装置の全体構成図である。
変形例４に係る図形描画装置は、第２の実施形態の図形描画装置における第３の参照値管理部１１１３、描画処理状況データ入力部１１０９、描画処理状況データ管理部１１１０、第３の描画処理切り替え部１１２０、第３の描画データ生成部１１２１、および第３の描画処理部１１２２を省略した形態となっている。
【０１９０】
そのため、第２の実施形態における第４の描画データ生成部が、本変形例における第３の描画データ生成部と対応し、第２の実施形態における第４の描画処理部が、本変形例における第３の描画処理部と対応している。
【０１９１】
本変形例を、第２の実施形態において説明すると、第２の描画処理切り替え部１１１７により、デプスバッファを確保できないと判定された場合に、第４の描画データ生成部１１２３に処理が進むようにしたものである。具体的には、図１５に示す第２の実施形態の処理フローにおいて、ステップ１２０５によりデプスバッファが利用不可と判定された場合に、ステップ１２０８をスキップし、ステップ１２１１に進むようにすることである。以上で説明した以外は、第２の実施形態と同様の動作である。
【０１９２】
（本実施形態の効果）
本実施形態では、アルファ値を利用した描画処理ができない図形描画装置において、装置の動作状況に応じた最も高速な描画処理を行うことで、装置がビジー状態である場合でも描画処理の性能低下を最小限に押さえ、装置がアイドル状態では高速な描画処理を行うことができる。これは、第2の実施形態よりもハードウェア資源が限られており、アルファ値利用した描画処理機能を持たないハードウェア上で実行する場合に特に有効である。
【０１９３】
［第２の実施形態の変形例５］
図３４は、本発明の第２の実施形態の変形例５に係る図形描画装置の全体構成図である。
変形例５に係る図形描画装置は、第２の実施形態の図形描画装置における第３の参照値管理部１１１３、描画処理状況データ入力部１１０９、描画処理状況データ管理部１１１０、第３の描画処理切り替え部１１２０、第４の描画データ生成部１１２３、および第４の描画処理部１１２４を省略した形態となっている。
【０１９４】
本変形例を、第２の実施形態において説明すると、第２の描画処理切り替え部１１１７により、デプスバッファを確保できないと判定された場合に、第３の描画データ生成部１１２１に処理が進むようにしたものである。具体的には、図１５に示す第２の実施形態の処理フローにおいて、ステップ１２０５によりデプスバッファが利用不可と判定された場合に、ステップ１２０８をスキップし、ステップ１２０９に進むようにすることである。以上で説明した以外は、第２の実施形態と同様の動作である。
【０１９５】
（本実施形態の効果）
本実施形態では、装置の動作状況に応じた最も高速な描画処理を行うことで、装置がビジー状態である場合でも描画処理の性能低下を最小限に押さえ、装置がアイドル状態では高速な描画処理を行うことができる。これは、第2の実施形態にくらべ、描画処理が十分に高速であり、アルファ値を利用した描画処理が常に実行可能な場合において、描画処理状況判定のオーバーヘッドを減らすことができ、より効率的な図形描画処理を行うことができる。
【０１９６】
［第２の実施形態の変形例６］
図３５は、本発明の第２の実施形態の変形例６に係る図形描画装置の全体構成図である。
変形例６に係る図形描画装置は、第２の実施形態の図形描画装置における第２の参照値管理部１１１２、メモリ使用状況データ入力部１１０７、メモリ使用状況データ管理部１１０８、第２の描画処理切り替え部１１１７、第２の描画データ生成部１１１８、第２の描画処理部１１１９、第３の参照値管理部１１１３、描画処理状況データ入力部１１０９、描画処理状況データ管理部１１１０、第３の描画処理切り替え部１１２０、第３の描画データ生成部１１２１、および第３の描画処理部１１２２を省略した形態となっている。
【０１９７】
そのため、第２の実施形態における第１の参照値管理部が、本変形例における参照値部と対応し、第２の実施形態における第１の描画処理切り替え部が、本変形例における描画処理切り替え部と対応し、第２の実施形態における第４の描画データ生成部が、本変形例における第２の描画データ生成部と対応し、第２の実施形態における第４の描画処理部が、本変形例における第２の描画処理部と対応している。
【０１９８】
本変形例を、第２の実施形態において説明すると、第１の描画処理切り替え部１１１４により、描画属性として入力された不透明度が、半透明と判定された場合に、第４の描画データ生成部１１２３に処理が進むようにしたものである。具体的には、図１５に示す第２の実施形態の処理フローにおいて、ステップ１２０２により描画属性が半透明と判定された場合に、ステップ１２０５、およびステップ１２０８をスキップし、ステップ１２１１に進むようにすることである。以上で説明した以外は、第２の実施形態と同様の動作である。
【０１９９】
（本実施形態の効果）
本実施形態では、デプステスト、およびアルファ値を利用した描画処理ができない図形描画装置において、装置の動作状況に応じた最も高速な描画処理を行うことで、装置がビジー状態である場合でも描画処理の性能低下を最小限に押さえ、装置がアイドル状態では高速な描画処理を行うことができる。これは、第2の実施形態にくらべ、ハードウェア資源が限られており、デプステストおよびアルファ値を利用した描画処理機能をもたないハードウェア上で実行する場合に特に有効である。
【０２００】
［第２の実施形態の変形例７］
図３６は、本発明の第２の実施形態の変形例７に係る図形描画装置の全体構成図である。
変形例７に係る図形描画装置は、第２の実施形態の図形描画装置における第２の参照値管理部１１１２、メモリ使用状況データ入力部１１０７、メモリ使用状況データ管理部１１０８、第２の描画処理切り替え部１１１７、第２の描画データ生成部１１１８、第２の描画処理部１１１９、第３の参照値管理部１１１３、描画処理状況データ入力部１１０９、描画処理状況データ管理部１１１０、第３の描画処理切り替え部１１２０、第４の描画データ生成部１１２３、および第４の描画処理部１１２４を省略した形態となっている。
【０２０１】
そのため、第２の実施形態における第１の参照値管理部が、本変形例における参照値部と対応し、第２の実施形態における第１の描画処理切り替え部が、本変形例における描画処理切り替え部と対応し、第２の実施形態における第３の描画データ生成部が、本変形例における第２の描画データ生成部と対応し、第２の実施形態における第３の描画処理部が、本変形例における第２の描画処理部と対応している。
【０２０２】
本変形例を、第２の実施形態において説明すると、第２の描画処理切り替え部１１１４により、描画属性として入力された不透明度が、半透明と判定された場合に、第３の描画データ生成部１１２１に処理が進むようにしたものである。具体的には、図１５に示す第２の実施形態の処理フローにおいて、ステップ１２０２により描画属性が半透明と判定された場合に、ステップ１２０５、およびステップ１２０８をスキップし、ステップ１２０９に進むようにすることである。以上で説明した以外は、第２の実施形態と同様の動作である。
【０２０３】
（本実施形態の効果）
本実施形態では、デプステストを利用できない図形描画装置において、装置の動作状況に応じた最も高速な描画処理を行うことで、装置がビジー状態である場合でも掃引図形描画処理の性能低下を最小限に押さえ、装置がアイドル状態では高速な掃引図形描画処理を行うことができる。これは、第2の実施形態にくらべ、ハードウェア資源が限られており、デプステストが利用できないハードウェア上で実行する場合において、より効率的な図形描画処理を行うことができる。
【０２０４】
［第２の実施形態の変形例８］
図３７は、本発明の第２の実施形態の変形例８に係る図形描画装置の全体構成図である。
変形例８に係る図形描画装置は、第２の実施形態の図形描画装置における第２の参照値管理部１１１２、メモリ使用状況データ入力部１１０７、メモリ使用状況データ管理部１１０８、第２の描画処理切り替え部１１１７、第３の参照値管理部１１１３、描画処理状況データ入力部１１０９、描画処理状況データ管理部１１１０、第３の描画処理切り替え部１１２０、第３の描画データ生成部１１２１、第３の描画処理部１１２２、第４の描画データ生成部１１２３、および第４の描画処理部１１２４を省略した形態となっている。
【０２０５】
そのため、第２の実施形態における第１の参照値管理部が、本変形例における参照値部と対応し、第２の実施形態における第１の描画処理切り替え部が、本変形例における描画処理切り替え部と対応している。
【０２０６】
本変形例を、第２の実施形態において説明すると、第１の描画処理切り替え部１１１４により、描画属性として入力された不透明度が、半透明であることを示していた場合に、第２の描画データ生成部１１１８に処理が進むようにしたものである。具体的には、図１５に示す第２の実施形態の処理フローにおいて、ステップ１２０２により描画属性が半透明と判定された場合に、ステップ１２０５をスキップし、ステップ１２０６に進むようにすることである。以上で説明した以外は、第２の実施形態と同様の動作である。
【０２０７】
（本実施形態の効果）
本実施形態では、デプステストが必ず利用できるような図形描画装置において、入力状況に応じた最も高速な描画処理を行うことで、装置がビジー状態である場合でも描画処理の性能低下を最小限に押さえ、装置がアイドル状態では高速な描画処理を行うことができる。これは、第2の実施形態にくらべ、ハードウェア資源が豊かであり、デプステストが必ず利用できるハードウェア上で実行する場合において、より効率的な図形描画処理を行うことができる。
【０２０８】
［第２の実施形態の変形例９］
図３８は、本発明の第２の実施形態の変形例９に係る図形描画装置の全体構成図である。
変形例９に係る図形描画装置は、第２の実施形態の図形描画装置における第１の参照値管理部１１１１、第１の描画処理切り替え部１１１４、第１の描画データ生成部１１１５、第１の描画処理部１１１６、第２の参照値管理部１１１２、メモリ使用状況データ入力部１１０７、メモリ使用状況データ管理部１１０８、第２の描画処理切り替え部１１１７、第２の描画データ生成部１１１８、および第２の描画処理部１１１９を省略した形態となっている。
【０２０９】
そのため、第２の実施形態における第３の参照値管理部が、本変形例における参照値部と対応し、第２の実施形態における第３の描画処理切り替え部が、本変形例における描画処理切り替え部と対応し、第２の実施形態における第３の描画データ生成部が、本変形例における第１の描画データ生成部と対応し、第２の実施形態における第３の描画処理部が、本変形例における第１の描画処理部と対応し、第２の実施形態における第４の描画データ生成部が、本変形例における第２の描画データ生成部と対応し、第２の実施形態における第４の描画処理部が、本変形例における第２の描画処理部と対応している。
【０２１０】
本変形例を、第２の実施形態において説明すると、データの入力処理がなされたあと、第３の描画処理切り替え部１１２０が実行され、処理が進む。具体的には、図１５に示す第２の実施形態の処理フローにおいて、ステップ１２０１によりデータの入力が行われた後、ステップ１２０２、およびステップ１２０５をスキップし、ステップ１２０８に進むようにすることである。以上で説明した以外は、第２の実施形態と同様の動作である。
【０２１１】
（本実施形態の効果）
本実施形態では、図形の塗りつぶし色が半透明に限定されている図形描画装置において、装置の動作状況に応じた最も高速な描画処理を行うことで装置がビジー状態である場合でも描画処理の性能低下を最小限に押さえ、装置がアイドル状態では高速な描画処理を行うことができる。これは、小型ＰＣ、携帯電話、インタラクティブな図形描画機能をもったＡＶ機器などのように、ハードウェア資源が限られているハードウェア上で実行する場合に特に有効である。
【０２１２】
以上の各実施形態やその変形例は、適宜組み合わせて実施することが可能である。
本願発明の実施例における処理をコンピュータで実行可能なプログラムで実現し、このプログラムをコンピュータで読みとり可能な記憶媒体として実現することも可能である。
【０２１３】
なお、本願発明における記憶媒体としては、磁気ディスク、フロッピー（登録商標）ディスク、ハードディスク、光ディスク（ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＤＶＤ等）、光磁気ディスク（ＭＯ等）、半導体メモリ等、プログラムを記憶でき、かつコンピュータまたは組み込みシステムが読みとり可能な記憶媒体であれば、その記憶形式は何れの形態であってもよい。
【０２１４】
また、記憶媒体からコンピュータや組み込みシステムにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているＯＳ（オペレーションシステム）や、データベース管理ソフト、ネットワーク等のＭＷ（ミドルウェア）等が本実施形態を実現するための各処理の一部を実行してもよい。
【０２１５】
さらに、本願発明における記憶媒体は、コンピュータあるいは組み込みシステムと独立した媒体に限らず、ＬＡＮやインターネット等により伝達されたプログラムをダウンロードして記憶または一時記憶した記憶媒体も含まれる。
【０２１６】
また、記憶媒体は１つに限られず、複数の媒体から本実施形態における処理が実行される場合も、本発明における記憶媒体に含まれ、媒体の構成は何れの構成であってもよい。
【０２１７】
なお、本願発明におけるコンピュータまたは組み込みシステムは、記憶媒体に記憶されたプログラムに基づき、本実施形態における各処理を実行するためのものであって、パソコン、マイコン等の１つからなる装置、複数の装置がネットワーク接続されたシステム等の何れの構成であってもよい。
【０２１８】
また、本願発明におけるコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置、マイコン等も含み、プログラムによって本願発明の機能を実現することが可能な機器、装置を総称している。
【０２１９】
なお、本発明は、上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。さらに、上記実施形態には種々の段階の発明は含まれており、開示される複数の構成要件における適宜な組み合わせにより、種々の発明が抽出され得る。例えば、実施形態に示される全構成要件からいくつかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題（の少なくとも１つ）が解決でき、発明の効果の欄で述べられている効果（の少なくとも１つ）が得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
【図面の簡単な説明】
【０２２０】
【図１】本発明の図形描画装置の構成例を概略的に示す図
【図２】本発明の第1の実施形態に係る図形描画装置の構成例を概略的に示す図
【図３】本発明の第１の実施形態における処理フローを示す図
【図４】ベクトルデータ群を説明するための図
【図５】非ゼロ巻数規則による図形内部領域判定例を示す図
【図６】奇偶規則による図形内部領域判定例を示す図
【図７】ベクトルデータ群が互いに交差する点を示す図
【図８】ステンシルバッファを利用した描画処理における処理フローを示す図
【図９】ステンシルバッファ利用描画の例を示す図
【図１０】本発明の第1の実施形態の変形例１に係る図形描画装置の構成例を概略的に示す図
【図１１】本発明の第1の実施形態の変形例１に係る図形描画装置の構成例を概略的に示す図
【図１２】本発明の第1の実施形態の変形例２に係る図形描画装置の構成例を概略的に示す図
【図１３】本発明の第1の実施形態の変形例３に係る図形描画装置の構成例を概略的に示す図
【図１４】本発明の第２の実施形態に係る図形描画装置の構成例を概略的に示す図
【図１５】本発明の第２の実施形態における処理フローを示す図
【図１６】掃引線データの例を示す図
【図１７】掃引形状データの例を示す図
【図１８】本発明の第２の実施形態における不透明な図形描画の例を示す図
【図１９】本発明の第２の実施形態における半透明な図形描画の例を示す図
【図２０】掃引線の自己交差部の重なりを無視する図形処理例の処理フローを示す図
【図２１】本発明の第２の実施形態における描画図形の外周線の例を示す図
【図２２】本発明の第２の実施形態における外周線の三角形分割の例を示す図
【図２３】三角形データ群を囲む座標軸に平行な最小の矩形データの例を示す図
【図２４】アルファ値を利用した描画処理における処理フローを示す図
【図２５】アルファ値を利用した描画処理の第1の過程を示す図
【図２６】アルファ値を利用した描画処理の第２の過程を示す図
【図２７】描画図形の外周線算出における処理フローを示す図
【図２８】描画図形の外周線の例を示す図
【図２９】非ゼロ巻数規則による掃引線の自己交差部処理の例を示す図
【図３０】本発明の第２の実施形態の変形例１に係る図形描画装置の構成例を概略的に示す図
【図３１】本発明の第２の実施形態の変形例２に係る図形描画装置の構成例を概略的に示す図
【図３２】本発明の第２の実施形態の変形例３に係る図形描画装置の構成例を概略的に示す図
【図３３】本発明の第２の実施形態の変形例４に係る図形描画装置の構成例を概略的に示す図
【図３４】本発明の第２の実施形態の変形例５に係る図形描画装置の構成例を概略的に示す図
【図３５】本発明の第２の実施形態の変形例６に係る図形描画装置の構成例を概略的に示す図
【図３６】本発明の第２の実施形態の変形例７に係る図形描画装置の構成例を概略的に示す図
【図３７】本発明の第２の実施形態の変形例８に係る図形描画装置の構成例を概略的に示す図
【図３８】本発明の第２の実施形態の変形例９に係る図形描画装置の構成例を概略的に示す図
【図３９】本発明の図形描画装置の構成例を概略的に示す図
【符号の説明】
【０２２１】
０１…ベクトルデータ群管理部
０２…描画属性データ管理部
０３…リソース情報管理部
０４…描画処理切り替え部
０５…第1の描画データ生成部
０６…第１の描画処理部
０７…第2の描画データ生成部
０８…第２の描画処理部
０９…第Ｎの描画データ生成部
１０…第Ｎの描画処理部
１１…描画結果出力部
１０１…ベクトルデータ群入力部
１０２…ベクトルデータ群管理部
１０３…描画属性データ入力部
１０４…描画属性データ管理部
１０５…メモリ使用状況データ入力部
１０６…メモリ使用状況データ管理部
１０７…第１の参照値管理部
１０８…第2の参照値管理部
１０９…第１の描画処理切り替え部
１１０…第1の描画データ生成部
１１１…第１の描画処理部
１１２…自己交差点算出部
１１３…自己交差点管理部
１１４…第2の描画処理切り替え部
１１５…第2の描画データ生成部
１１６…第２の描画処理部
１１７…第３の描画データ生成部
１１８…第３の描画処理部
１１９…描画結果出力部
１１０１…掃引線データ入力部
１１０２…掃引線データ管理部
１１０３…掃引形状データ入力部
１１０４…掃引形状データ管理部
１１０５…描画属性データ入力部
１１０６…描画属性データ管理部
１１０７…メモリ使用状況データ入力部
１１０８…メモリ使用状況データ管理部
１１０９…描画処理状況データ入力部
１１１０…描画処理状況データ管理部
１１１１…第１の参照値管理部
１１１２…第２の参照値管理部
１１１３…第３の参照値管理部
１１１４…第１の描画処理切り替え部
１１１５…第１の描画データ生成部
１１１６…第１の描画処理部
１１１７…第２の描画処理切り替え部
１１１８…第２の描画データ生成部
１１１９…第２の描画処理部
１１２０…第３の描画処理切り替え部
１１２１…第３の描画データ生成部
１１２２…第３の描画処理部
１１２３…第４の描画データ生成部
１１２４…第４の描画処理部
１１２５…描画結果出力部
【図１】
0004621618.tif 000002
【図２】
0004621618.tif 000003
【図３】
0004621618.tif 000004
【図４】
0004621618.tif 000005
【図５】
0004621618.tif 000006
【図６】
0004621618.tif 000007
【図７】
0004621618.tif 000008
【図８】
0004621618.tif 000009
【図９】
0004621618.tif 000010
【図１０】
0004621618.tif 000011
【図１１】
0004621618.tif 000012
【図１２】
0004621618.tif 000013
【図１３】
0004621618.tif 000014
【図１４】
0004621618.tif 000015
【図１５】
0004621618.tif 000016
【図１６】
0004621618.tif 000017
【図１７】
0004621618.tif 000018
【図１８】
0004621618.tif 000019
【図１９】
0004621618.tif 000020
【図２０】
0004621618.tif 000021
【図２１】
0004621618.tif 000022
【図２２】
0004621618.tif 000023
【図２３】
0004621618.tif 000024
【図２４】
0004621618.tif 000025
【図２５】
0004621618.tif 000026
【図２６】
0004621618.tif 000027
【図２７】
0004621618.tif 000028
【図２８】
0004621618.tif 000029
【図２９】
0004621618.tif 000030
【図３０】
0004621618.tif 000031
【図３１】
0004621618.tif 000032
【図３２】
0004621618.tif 000033
【図３３】
0004621618.tif 000034
【図３４】
0004621618.tif 000035
【図３５】
0004621618.tif 000036
【図３６】
0004621618.tif 000037
【図３７】
0004621618.tif 000038
【図３８】
0004621618.tif 000039
【図３９】
0004621618.tif 000040