(57)【要約】【課題】ディスプレイリストを用いた描画処理を効率よく行うための技術を提供する。【解決手段】複数の描画エンジンを備えた描画処理装置（１００）において、ディスプレイリストの作成指示に応じて描画に関するコマンド群をリスト化することでディスプレイリストを作成可能なディスプレイリスト作成モジュール（３０）を設ける。そして、上記ディスプレイリストの実行により、描画処理に使用される描画エンジンを判定し、上記複数の描画エンジンの中から対応する描画エンジンを起動可能なディスプレイリスト実行モジュール（４０）を設ける。それにより、複数の描画エンジンが混在する装置にディスプレイリスト型のハードウェアを適用した場合でも、ディスプレイリストを用いた描画処理を効率よく行えるようにする。【選択図】図１
2009087279.tif 000002
【特許請求の範囲】
【請求項１】
複数の描画エンジンを含む描画処理装置であって、
ディスプレイリストの作成指示に応じて描画に関するコマンド群をリスト化することでディスプレイリストを作成可能なディスプレイリスト作成モジュールと、
上記ディスプレイリストの実行により、描画処理に使用される描画エンジンを判定し、上記複数の描画エンジンの中から対応する描画エンジンを起動可能なディスプレイリスト実行モジュールと、を含むことを特徴とする描画処理装置。
【請求項２】
ソフトウェアによる描画処理を行う第１描画エンジンと、ハードウェアによる描画処理を行う第２描画エンジンとを含む複数の描画エンジンを備えた描画処理装置であって、
ディスプレイリストの作成指示に応じて描画に関するコマンド群をリスト化することでディスプレイリストを作成可能なディスプレイリスト作成モジュールと、
上記ディスプレイリストの実行により、描画処理に使用される描画エンジンを判定し、上記複数の描画エンジンの中から対応する描画エンジンを起動可能なディスプレイリスト実行モジュールと、を含むことを特徴とする描画処理装置。
【請求項３】
上記描画処理装置は、描画処理毎に使用される描画エンジンの情報がテーブル化されたディスプレイリスト管理テーブルを備え、
上記ディスプレイリスト作成モジュールは、上記ディスプレイリスト管理テーブルを参照しながらディスプレイリストを作成する請求項１又は２記載の描画処理装置。
【請求項４】
上記ディスプレイリスト実行モジュールは、ディスプレイリストの実行指示に応じて、上記ディスプレイリストにおけるコマンドをフェッチし、フェッチされたコマンドを解釈し、そのコマンド解釈結果に基づいて上記ディスプレイリスト管理テーブルを参照することで、描画処理に使用される描画エンジンを判定し、上記複数の描画エンジンの中から対応する描画エンジンを起動する請求項３記載の描画処理装置。
【請求項５】
上記ディスプレイリスト作成モジュールは、上記ディスプレイリスト管理テーブルを参照して描画処理を実行する描画エンジンを判定し、その判定結果に基づいて、上記第１描画エンジンにより実行される描画コマンドと、上記第２描画エンジンにより実行される描画コマンドとが混在するディスプレイリストを形成する請求項３記載の描画処理装置。
【請求項６】
上記ディスプレイリスト作成モジュールは、上記ディスプレイリスト管理テーブルを参照して描画処理を実行する描画エンジンを判定し、その判定結果に基づいて、描画コマンド列が描画エンジン毎にまとめられるとともに、終了コマンドによって区切られた描画エンジン毎のディスプレイリストを形成する請求項３記載の描画処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、図形描画処理技術、さらには複数の描画エンジンが混在する描画処理装置に関する。
【背景技術】
【０００２】
図形描画用のグラフィックスハードウェア装置を備えた図形描画処理装置においては、ディスプレイリスト（ＤＬ）を用いた描画処理が行われる。ここでディスプレイリストとは、描画実行時に効率的に処理できるように、描画に関するコマンド群をひとまとめに記憶しリスト化されたものを指す。ディスプレイリストを用いた描画処理において、ホスト側のグラフィックスライブラリは、アプリケーションプログラムからのディスプレイリスト生成要求を基に、図形要素を構造化して、グラフィックスハードウェア装置へ転送し、グラフィックスハードウェア装置は受け取った情報をレンダリング処理しフレームメモリに書き込むことで描画処理が行われる。
【０００３】
ディスプレイリストによるグラフィックス表示システムとして例えば特許文献１に示されるシステムを挙げることができる。このシステムは、ハードウェアに非依存のハイレベルグラフィックスライブラリと、ローレベルハードウェア依存グラフィックスライブラリと、グラフィックスハードウェア２０５とから構成されている。
【０００４】
【特許文献１】特開平９−２９７５７０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
グラフィックスライブラリにおいて、性能向上のために描画処理の一部をハードウェアアクセラレータで行い、残りの描画処理をソフトウェアで行う手法がある。ここで、ディスプレイリスト実行型のハードウェアアクセラレータを、描画処理のためのソフトウェアとハードウェアとが混在するグラフィックスライブラリに適用することについて検討する。ディスプレイリスト実行型のハードウェアアクセラレータは、複数の描画コマンドがまとめられたディスプレイリストに従って処理することで、ＣＰＵ（中央処理装置）の負荷を軽減させる。しかしながら、描画処理を実行するソフトウェアとハードウェアとが混在するグラフィックスライブラリにディスプレイリスト実行型の描画方式を適用する場合について本願発明者が検討したところ、以下の課題が見いだされた。
【０００６】
例えばソフトウェア描画とハードウェア描画のインタフェースを即時実行型に統一すると、ハードウェア描画の際に、ディスプレイリスト実行型ハードウェアを即時実行的に用いる必要がある。そのため、ハードウェアにおいて、1つの図形を描画するたびにディスプレイリストを作成して実行しなければならず、ディスプレイリストの作成及び実行の回数が増加するため、ハードウェアのオーバヘッドが増大する。
【０００７】
ハードウェア描画に対してのみ、複数の描画をまとめて1つのディスプレイリストとする機能をサポートすると、グラフィックスライブラリを使用するアプリケーション側が、使用する描画エンジンの種類を意識する必要がある。すなわち、ソフトウェアの描画は即時実行、ハードウェアの描画はディスプレイリスト実行であることを考慮してアプリケーションを作成しなければならず、アプリケーション作成が煩雑になる。
【０００８】
本発明の目的は、複数の描画エンジンが混在する装置に、ディスプレイリスト型のハードウェアを適用した場合に、ディスプレイリストを用いた描画処理を効率よく行うための技術を提供することにある。
【０００９】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１０】
本願において開示される発明のうち代表的なものについて簡単に説明すれば下記のとおりである。
【００１１】
すなわち、複数の描画エンジンを備えた描画処理装置において、ディスプレイリストの作成指示に応じて描画に関するコマンド群をリスト化することでディスプレイリストを作成可能なディスプレイリスト作成モジュールを設ける。そして、上記ディスプレイリストの実行により、描画処理に使用される描画エンジンを判定し、上記複数の描画エンジンの中から対応する描画エンジンを起動可能なディスプレイリスト実行モジュールを設ける。それにより、複数の描画エンジンが混在する装置にディスプレイリスト型のハードウェアを適用した場合でも、ディスプレイリストを用いた描画処理を効率よく行えるようにする。
【発明の効果】
【００１２】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【００１３】
すなわち、複数の描画エンジンが混在する装置に、ディスプレイリスト型のハードウェアを適用した場合に、ディスプレイリストを用いた描画処理を効率よく行うことができる。
【発明を実施するための最良の形態】
【００１４】
１．代表的な実施の形態
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【００１５】
〔１〕本発明の代表的な実施の形態に係る描画処理装置（１００）は、複数の描画エンジンを備える。そして、ディスプレイリストの作成指示に応じて描画に関するコマンド群をリスト化することでディスプレイリストを作成可能なディスプレイリスト作成モジュール（３０）と、上記ディスプレイリストの実行により、描画処理に使用される描画エンジンを判定し、上記複数の描画エンジンの中から対応する描画エンジンを起動可能なディスプレイリスト実行モジュール（４０）とを含む。上記複数の描画エンジンには、ソフトウェアによる描画処理を行う第１描画エンジン（３，４）と、ハードウェアによる描画処理を行う第２描画エンジン（１，２）とを含めることができる。
【００１６】
上記の構成によれば、ディスプレイリストの作成指示に応じて描画に関するコマンド群がリスト化されることでディスプレイリストが作成され、上記ディスプレイリストの実行により、描画処理に使用される描画エンジンが判定され、上記複数の描画エンジンの中から対応する描画エンジンが起動されるため、複数の描画エンジンが混在する装置に、ディスプレイリスト型のハードウェアを適用した場合に、ディスプレイリストを用いた描画処理を効率よく行うことができる。
【００１７】
〔２〕上記描画処理装置は、描画処理毎に使用される描画エンジンの情報がテーブル化されたディスプレイリスト管理テーブル（２１）を備え、上記ディスプレイリスト作成モジュールは、上記ディスプレイリスト管理テーブルを参照しながらディスプレイリストを作成する。
【００１８】
〔３〕上記ディスプレイリスト実行モジュールは、ディスプレイリストの実行指示に応じて、上記ディスプレイリストにおけるコマンドをフェッチし、フェッチされたコマンドを解釈し、そのコマンド解釈結果に基づいて上記ディスプレイリスト管理テーブルを参照することで、描画処理に使用される描画エンジンを判定し、上記複数の描画エンジンの中から対応する描画エンジンを起動する。
【００１９】
〔４〕上記ディスプレイリスト作成モジュールは、上記ディスプレイリスト管理テーブルを参照して描画処理を実行する描画エンジンを判定し、その判定結果に基づいて、上記第１描画エンジンにより実行される描画コマンドと、上記第２描画エンジンにより実行される描画コマンドとが混在するディスプレイリストを形成する。
【００２０】
〔５〕上記ディスプレイリスト作成モジュールは、上記ディスプレイリスト管理テーブルを参照して描画処理を実行する描画エンジンを判定し、その判定結果に基づいて、描画コマンド列が描画エンジン毎にまとめられるとともに、終了コマンドによって区切られた描画エンジン毎のディスプレイリストを形成する。
【００２１】
２．実施の形態の説明
次に、実施の形態について更に詳述する。
【００２２】
図１には、本発明にかかる描画処理装置が示される。
【００２３】
図１に示される描画処理装置１００は、メモリ２０、ＤＬ作成モジュール３１、ＤＬ実行モジュール４０、複数の描画エンジン１，２，３，４，…を含み、特に制限されないが、公知の半導体集積回路技術により単結晶シリコン基板などの一つの半導体基板に形成されたマイクロプロセッサなどに搭載される。特に制限されないが、上記描画エンジン１，２はハードウェアにより形成され、上記描画エンジン３，４はソフトウェアにより形成される。アプリケーション１０は、図示されないマイクロプロセッサで実行されるソフトウェアであり、このアプリケーション１０がマイクロプロセッサで実行されることにより、ＤＬ作成モジュール３０に対してディスプレイリスト（単に「ＤＬ」という）作成の指示が行われ、また、ＤＬ実行モジュール４０に対してＤＬ実行の指示が行われる。
【００２４】
上記メモリ２０は、ＤＬ管理のためのＤＬ管理テーブル２１、作成されたＤＬが格納されるＤＬ記憶部２２、描画のためのフレームメモリ２３を含む。
【００２５】
上記ＤＬ作成モジュール３０は、上記ＤＬ作成指示により、上記ＤＬ管理テーブル２１を参照する機能３１と、その参照結果に基づいて描画コマンド列を作成する機能３２とを含む。
【００２６】
上記ＤＬ実行モジュール４０は、ＤＬ記憶部２２に記憶されているディスプレイリストにおける描画コマンドをフェッチする機能４１と、上記フェッチされたコマンドを解釈する機能４２と、必要に応じて上記ＤＬ管理テーブル２１を参照する機能４３と、上記ＤＬ管理テーブル参照結果に基づいて描画エンジンを判定する機能４４と、上記描画エンジン判定結果に基づいて、該当する描画エンジンを起動する機能４５とを含む。
【００２７】
上記の構成において、ＤＬ作成モジュールは本テーブルを参照し、メモリ上にコマンド列を作成する。ソフトウェアによる描画処理もコマンド列化し、ソフトウェア描画・ハードウェア描画が混在したディスプレイリストを作成する。ＤＬ実行時は、ＤＬ実行モジュールがコマンドをフェッチおよび解釈したのち、描画エンジン判定処理を行う。本処理により実行するコマンドをどの描画エンジンで実行するかを判定し、該当する描画エンジンを起動する。これにより、ディスプレイリスト使用時に、グラフィックスライブラリが描画エンジンの切り替えを行うことが可能となるので、例えばディスプレイリスト実行型ハードウェアアクセラレータを描画エンジンのひとつとして装置に適用した場合でも、ディスプレイリストを用いて効率よく描画処理を実行することが可能となる。
【００２８】
次に、各部の詳細な動作について説明する。
【００２９】
図２には、ディスプレイリスト作成時の動作例が示される。
【００３０】
ＤＬ管理テーブル２１には、各描画機能をどの描画エンジンで実行するかを示す情報が予め登録されている。図２に示される例によれば、直線描画は描画エンジン２によって行われ、円描画は描画エンジン１によって行われ、多角形描画は描画エンジン２によって行われ、矩形描画は描画エンジン３によって行われる。アプリケーション１０からの指示によってディスプレイリストが作成される場合、ＤＬ作成モジュール３０によってＤＬ管理テーブル２１が参照され、各描画機能を実行する描画エンジンが判定される。
【００３１】
次に、描画コマンド列がＤＬ記憶部２２に書き込まれることでディスプレイリスト２２０が作成される。このディスプレイリスト２２０は、描画コマンド毎に、当該コマンドがどの描画エンジンで実行されるかの判別が可能になっており、上記ソフトウェアによる描画エンジン３，４によって実行される描画コマンドと、ハードウェアによる描画エンジン１，２によって実行される描画コマンドとが混在する。つまり、ディスプレイリスト２２０は全ての描画エンジン１，２，３，４，…によって解釈可能に統一されたディスプレイリストとして形成される。
【００３２】
図３には、図２に示される処理で作成されたディスプレイリストの実行例が示される。
【００３３】
ＤＬ実行モジュール４０では、ディスプレイリスト２２０におけるコマンドがフェッチされ（Ｓ１）、それが解釈される（Ｓ２）。そして、フェッチされたコマンドがディスプレイリスト（ＤＬ）であるか否かの判別が行われる（Ｓ３）。この判別において、フェッチされたコマンドがディスプレイリスト（ＤＬ）ではないと判断された場合には、ＤＬ実行モジュール４０での処理が終了される。上記ステップＳ３の判別において、フェッチされたコマンドがディスプレイリスト（ＤＬ）に含まれるものであると判断された場合には、ＤＬ管理テーブル２１が参照され（Ｓ２４）、描画エンジン判定が行われる（Ｓ６）。解釈された描画コマンドがソフトウェアによる描画コマンドである場合には、そのコマンドに対応するソフトウェア描画エンジンが起動される（Ｓ７）。例えば描画エンジン３又は４が起動された場合には、ソフトウェアによる描画処理が実行され、当該処理の終了後に上記ステップＳ１のコマンドフェッチ処理に移行される。
【００３４】
これに対して、解釈された描画コマンドがハードウェアによる描画コマンドである場合には、そのコマンドに対応するハードウェア描画エンジンが起動され（Ｓ８）、ＤＬ実行モジュール４０は待ち処理状態になる（Ｓ９）。例えば描画エンジン１が起動された場合には、コマンドフェッチが行われ（Ｓ１１）、フェッチされたコマンドが解釈され（Ｓ１２）、フェッチされたコマンドが自分のコマンドであるか否かの判別が行われる（Ｓ１３）。この判別において、フェッチされたコマンドが自分のコマンドであると判断された場合には描画処理が行われ（Ｓ１４）、上記ステップＳ１１のコマンドフェッチ処理に移行される。また、上記ステップＳ１３の判別において自分のコマンドではないと判断された場合には描画処理が終了され（Ｓ１５）、ＤＬ実行モジュール４０に対して、その旨の通知が行われる。ＤＬ実行モジュール４０では、この通知により待ち状態から復帰される。尚、描画エンジン２が起動された場合には、当該描画エンジン２において、上記描画エンジン１が起動された場合と同様の処理が行われる。
【００３５】
上記の例によれば、以下の作用効果を得ることができる。
【００３６】
（１）ＤＬ作成モジュール３０において、全ての描画エンジン１，２，３，４，…によって解釈可能に統一されたディスプレイリスト２２０が作成され、ＤＬ実行モジュール４０において、上記ディスプレイリストの実行により、描画処理に使用される描画エンジンが判定され、上記複数の描画エンジンの中から対応する描画エンジンが起動されるようになっているため、複数の描画エンジンを使用する描画処理装置１００に、ディスプレイリスト実行型ハードウェアアクセラレータ（描画エンジン）を適用した場合でも、ディスプレイリストを用いて効率的に描画処理を実行できる。
【００３７】
（２）ソフトウェア描画とハードウェア描画のインタフェースを即時実行型に統一すると、ハードウェア描画の際に、ディスプレイリスト実行型ハードウェアを即時実行的に用いる必要がある。そのため、ハードウェアにおいて、1つの図形を描画するたびにディスプレイリストを作成して実行しなければならず、ディスプレイリストの作成及び実行の回数が増加するため、ハードウェアのオーバヘッドが増大する。しかしながら、上記の例によれば、ソフトウェア描画とハードウェア描画のインタフェースを即時実行型に統一するものではないので、ハードウェアのオーバヘッドが増大することも無い。
【００３８】
（３）ハードウェア描画に対してのみ、複数の描画をまとめて1つのディスプレイリストとする機能をサポートすると、グラフィックスライブラリを使用するアプリケーション側が、使用する描画エンジンの種類を意識する必要がある。すなわち、ソフトウェアの描画は即時実行、ハードウェアの描画はディスプレイリスト実行であることを考慮してアプリケーションを作成しなければならず、アプリケーション作成が煩雑になる。しかしながら、上記の例によれば、ハードウェア描画のみならず、ソフトウェア描画の場合もディスプレイリストを作成し、それに従って描画処理を行うようにしているため、グラフィックスライブラリを使用するアプリケーション側が、使用する描画エンジンの種類を意識する必要がなくなり、アプリケーション作成が煩雑にならずに済む。
【００３９】
次に、別の構成例について説明する。
【００４０】
上記の例では、全ての描画エンジン１，２，３，４，…によって解釈可能に統一されたディスプレイリスト２２０が用いられたが、これに限定されない。例えば図４に示されるように、各描画コマンドを実行する描画エンジンのみが解釈できるディスプレイリスト２２０を用いることもできる。このディスプレイリスト２２０は、描画エンジンが切り替わる部分には、各描画エンジン専用のＤＬ終了コマンドが挿入されている。このコマンドによって、描画エンジン毎の専用ディスプレイリストが区切られる。つまり、上記ディスプレイリスト２２０は、描画コマンド列が描画エンジン毎にまとめられるとともに、終了コマンドによって区切られている。ＤＬ終了コマンドによって区切られた描画コマンド列は、描画エンジン毎に専用化されているため、他の描画エンジンでは実行することができない。このようなディスプレイリストは、ＤＬ作成モジュール３０においてＤＬ管理テーブル２１を参照して作成される。
【００４１】
図５には、図４に示される処理で作成されたディスプレイリストの実行例が示される。
【００４２】
図５に示される実行例が図３に示されるのと大きく相違するのは、各ハードウェア描画エンジン１，２において、フェッチされたコマンドが終了コマンドであるか否かの判別が行われる（Ｓ１６）点である。このステップＳ１６の判別において、フェッチされたコマンドが終了コマンドではない判断された場合には描画処理が行われるが（Ｓ１４）、フェッチされたコマンドが終了コマンドであると判断された場合には描画処理が終了される（Ｓ１５）。
【００４３】
このように各描画コマンドを実行する描画エンジンのみが解釈できるディスプレイリスト２２０を用いても、図２及び図３に示される場合と同様に、複数の描画エンジンを使用する描画処理装置１００に、ディスプレイリスト実行型ハードウェアアクセラレータを適用することが可能となり、ディスプレイリストを用いて効率的に描画処理を実行できる。
【００４４】
以上本発明者によってなされた発明を具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【００４５】
以上の説明では主として本発明者によってなされた発明をその背景となった利用分野であるマイクロプロセッサに搭載された描画処理装置に適用した場合について説明したが、本発明は、それに限定されるものではなく、各種描画処理装置に幅広く適用することができる。
【図面の簡単な説明】
【００４６】
【図１】本発明にかかる描画処理装置の構成例ブロック図である。
【図２】上記描画処理装置におけるディスプレイリスト作成時の動作例説明図である。
【図３】図２に示される処理で作成されたディスプレイリストの実行例を示すフローチャートである。
【図４】上記描画処理装置におけるディスプレイリスト作成時の別の動作例説明図である。
【図５】図４に示される処理で作成されたディスプレイリストの実行例を示すフローチャートである。
【符号の説明】
【００４７】
１，２，３，４  描画エンジン
１０  アプリケーション
２０  メモリ
２１  ＤＬ管理テーブル
２２  ＤＬ記憶部
２３  フレームメモリ
３０  ＤＬ作成モジュール
４０  ディスプレイリスト実行モジュール
１００  描画処理装置
２２０  ディスプレイリスト
【図１】
2009087279.tif 000003
【図２】
2009087279.tif 000004
【図３】
2009087279.tif 000005
【図４】
2009087279.tif 000006
【図５】
2009087279.tif 000007