(57)【特許請求の範囲】
【請求項１】
ホストコンピュータのＣＰＵと、
複数の画像を構成する各要素の表示態様をそれぞれ規定する複数のディスプレイリストからなるディスプレイリスト群と、描画に用いる画像ごとのディスプレイリストを一意に識別するディスプレイリストＩＤがまとめられた複数のＩＤデータからなるＩＤデータ群と、前記ＩＤデータに含まれるディスプレイリストＩＤが設定されるＩＤテーブルとを格納するメモリを有し、前記ディスプレイリストを用いて画像の描画処理を行うグラフィックアクセラレータと、
前記グラフィックアクセラレータにより描画された画像を表示する表示部とを備え、
前記ＣＰＵは、表示順に描画を行う画像に対応するＩＤデータに含まれるディスプレイリストＩＤを前記ＩＤテーブルに設定させるＩＤデータ配置命令を、前記グラフィックアクセラレータに送信するとともに、該ＩＤデータ配置命令に従って前記ＩＤテーブルに設定されたＩＤデータに含まれるディスプレイリストＩＤを指定する描画実行命令を前記グラフィックアクセラレータに送信し、
前記グラフィックアクセラレータは、前記ＩＤデータ群のＩＤデータのうち、前記ＣＰＵからのＩＤデータ配置命令で指定された前記ＩＤデータに含まれるディスプレイリストＩＤを前記ＩＤテーブルに設定するとともに、該ＩＤテーブルにおけるディスプレイリストＩＤのうち、前記ＣＰＵからの描画実行命令で指定されたディスプレイリストＩＤにより前記ディスプレイリスト群から読み出したディスプレイリストを用いて、画像の描画処理を行い、
前記グラフィックアクセラレータは、前記表示部に表示される画像の中で異なる２つの時刻で変更されない画像に対しては該画像に対応する前記ＩＤデータを設定した前記ＩＤテーブル内のＩＤ領域を維持し、前記表示部に表示される画像の中で該２つの時刻で変更される画像に対しては該変更前の画像に対応する前記ＩＤデータを設定した前記ＩＤテーブル内のＩＤ領域を解放して該変更後の画像に対応する前記ＩＤデータを該ＩＤ領域に設定する
ことを特徴とする表示装置。
【請求項２】
前記ＩＤデータ群は、前記ディスプレイリスト群の階層関係に従って、ディスプレイリストＩＤが割り当てられることを特徴とする請求項１記載の表示装置。
【請求項３】
前記グラフィックアクセラレータは、前記ＣＰＵからの前記ＩＤデータ配置命令で指定されたＩＤデータに含まれるディスプレイリストＩＤを、ｂｉｔｂｌｔ転送で前記ＩＤテーブルに設定することを特徴とする請求項１記載の表示装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ディスプレイリストを用いて描画処理を行うグラフィックアクセラレータを備えた表示装置に関する。
【背景技術】
【０００２】
従来の表示装置には、描画処理を高速化するために、ホストコンピュータのＣＰＵが、描画対象の画像を構成する各要素の表示態様を規定するディスプレイリストを、事前にグラフィックアクセラレータのメモリに登録しておくものがある。
この表示装置において、グラフィックアクセラレータは、メモリに登録されたディスプレイリストを指定する識別情報を生成してホストコンピュータのＣＰＵに転送する。ホストコンピュータのＣＰＵは、描画処理を行うときに、上記識別情報が設定された描画実行命令をグラフィックアクセラレータに転送する。
グラフィックアクセラレータは、描画実行命令に設定された識別情報に対応するディスプレイリストを用いて描画処理を実行し、得られた画像情報をフレームバッファに書き込むことにより、描画対象の画像がディスプレイ画面上に表示される（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０００−２９３１５１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来の表示装置では、複数のディスプレイリストを用いて複数の画像の描画処理を行う場合、描画対象の画像を構成する要素ごとの表示順および描画対象の画像ごとの表示順に関する階層関係によらず、描画を行う複数の画像に対応する全てのディスプレイリストの識別情報をまとめて指定する必要があった。すなわち、ディスプレイリストを一意に識別する識別情報を、描画を行う複数の画像に対応するディスプレイリストの数分あらかじめ用意しておかなければならない。【０００５】
ここで、グラフィックアクセラレータなどの描画処理を実行するハードウェアが一意なＩＤを設定できる数には上限があるため、アプリケーション開発時など、大量のディスプレイリストが生成され、複数の画像を描画する場合には、重複なくＩＤを割り当てることができない可能性があった。例えば、１６ビットの整数データで演算処理を行うハードウェアの場合は、０から６５５３５＝２１６−１までをＩＤに設定できるが、上限値である６５５３５を超えるＩＤは設定できない。【０００６】
この発明は、上記のような課題を解決するためになされたもので、ディスプレイリストを識別するＩＤの割当不足を防止することができる表示装置を得ることを目的とする。
【課題を解決するための手段】
【０００７】
この発明に係る表示装置は、ホストコンピュータのＣＰＵと、複数の画像を構成する各要素の表示態様をそれぞれ規定する複数のディスプレイリストからなるディスプレイリスト群と、描画に用いる画像ごとのディスプレイリストを一意に識別するディスプレイリストＩＤがまとめられた複数のＩＤデータからなるＩＤデータ群と、前記ＩＤデータに含まれるディスプレイリストＩＤが設定されるＩＤテーブルとを格納するメモリを有し、前記ディスプレイリストを用いて画像の描画処理を行うグラフィックアクセラレータと、前記グラフィックアクセラレータにより描画された画像を表示する表示部とを備え、前記ＣＰＵは、表示順に描画を行う画像に対応するＩＤデータに含まれるディスプレイリストＩＤを前記ＩＤテーブルに設定させるＩＤデータ配置命令を、前記グラフィックアクセラレータに送信するとともに、該ＩＤデータ配置命令に従って前記ＩＤテーブルに設定されたＩＤデータに含まれるディスプレイリストＩＤを指定する描画実行命令を前記グラフィックアクセラレータに送信し、前記グラフィックアクセラレータは、前記ＩＤデータ群のＩＤデータのうち、前記ＣＰＵからのＩＤデータ配置命令で指定された前記ＩＤデータに含まれるディスプレイリストＩＤを前記ＩＤテーブルに設定するとともに、該ＩＤテーブルにおけるディスプレイリストＩＤのうち、前記ＣＰＵからの描画実行命令で指定されたディスプレイリストＩＤにより前記ディスプレイリスト群から読み出したディスプレイリストを用いて、画像の描画処理を行い、前記グラフィックアクセラレータは、前記表示部に表示される画像の中で異なる２つの時刻で変更されない画像に対しては該画像に対応する前記ＩＤデータを設定した前記ＩＤテーブル内のＩＤ領域を維持し、前記表示部に表示される画像の中で該２つの時刻で変更される画像に対しては該変更前の画像に対応する前記ＩＤデータを設定した前記ＩＤテーブル内のＩＤ領域を解放して該変更後の画像に対応する前記ＩＤデータを該ＩＤ領域に設定することを特徴とする。
【発明の効果】
【０００８】
この発明によれば、ディスプレイリストを識別するＩＤの割当不足を防止することができるという効果がある。
【図面の簡単な説明】
【０００９】
【図１】この発明の実施の形態１に係る表示装置の構成を示すブロック図である。
【図２】実施の形態１に係る表示装置によるＩＤデータの動的な割当動作の概要を示す図である。
【図３】メニュー画像の表示内容とＩＤテーブルにおけるＩＤデータの配置状況との関係を示す図である。
【図４】ディスプレイリスト群のメニュー描画に関する階層構造に応じたＩＤデータ作成の概要を示す図である。
【発明を実施するための形態】
【００１０】
以下、この発明をより詳細に説明するため、この発明を実施するための形態について、添付の図面に従って説明する。
実施の形態１．
図１は、この発明の実施の形態１に係る表示装置の構成を示すブロック図である。図１に示す表示装置１は、ホストコンピュータ２、アプリケーションプログラム３、グラフィックアクセラレータ４およびディスプレイ５を備える。
ホストコンピュータ２のＣＰＵ２０は、内部のメモリ（図１において不図示）に展開されたアプリケーションプログラム３を実行する。また、ＣＰＵ２０は、アプリケーションプログラム３を実行して描画処理を行う場合、描画実行命令をグラフィックアクセラレータ４に転送する。
なお、実施の形態１に係る表示装置１では、アプリケーションプログラム３を実行して描画されるメニュー画像に関するディスプレイリスト群２００およびＩＤデータ群２０１の内容が、ＣＰＵ２０によって描画処理前にグラフィックアクセラレータ４のメモリ４０に登録される。
【００１１】
ディスプレイリスト群２００は、複数のメニュー画像に関する複数のディスプレイリストからなり、複数のディスプレイリストには、メニュー画像ごとの表示順およびメニュー画像を構成する要素ごとの表示順に関する階層関係が規定されている。
例えば、メニュー画像を構成する要素ごとの表示順に関する階層関係として、メニュー１の画像がメニュー１（１）の画像上に、メニュー１（２）の画像、メニュー１（３）の画像の順に重畳して表示される場合、メニュー１（１）の画像の表示態様を規定する情報が上位階層に位置し、メニュー１（２）の情報、メニュー１（３）の情報が順に下位階層に位置する。
【００１２】
ＩＤデータ群２０１は、ディスプレイリスト群２００のディスプレイリストに対応する複数のＩＤデータからなる。ＩＤデータとは、メニュー画像の描画に必要なディスプレイリストのディスプレイリストＩＤをまとめたデータである。また、ディスプレイリストＩＤは、ディスプレイリストを一意に識別するＩＤであり、後述するＩＤテーブル４０３上のＩＤである。すなわち、ディスプレイリストＩＤは、ＩＤテーブル４０３で割り当てられるＩＤ番号となる。
【００１３】
図１に示す例において、メニュー１の画像の描画には、メニュー１（１）の画像の描画に必要なディスプレイリストのディスプレイリストＩＤがまとめられたＩＤデータ（１）、メニュー１（２）の画像の描画に必要なディスプレイリストのディスプレイリストＩＤがまとめられたＩＤデータ（２）、メニュー１（３）の画像の描画に必要なディスプレイリストのディスプレイリストＩＤがまとめられたＩＤデータ（３）が利用される。
また、メニュー２の画像の描画には、メニュー２（４）の画像の描画に必要なディスプレイリストのディスプレイリストＩＤがまとめられたＩＤデータ（４）、メニュー２（５）の画像の描画に必要なディスプレイリストのディスプレイリストＩＤがまとめられたＩＤデータ（５）、メニュー２（６）の画像の描画に必要なディスプレイリストのディスプレイリストＩＤがまとめられたＩＤデータ（６）が利用される。
【００１４】
メニューテーブル２０２は、メニュー画像のメニューＩＤが登録されたテーブルデータである。ここで、メニューＩＤとは、描画を起動（描画を開始）するメニュー画像を指定するためのＩＤであり、このメニュー画像の描画に利用されるＩＤデータに対応付けられている。ＣＰＵ２０は、アプリケーションプログラム３を実行してメニュー画像を描画する場合、メニューテーブル２０２に格納されるメニューＩＤから当該メニュー画像の描画に利用するＩＤデータを特定し、当該ＩＤデータに含まれるメニュー画像の描画に必要なディスプレイリストのディスプレイリストＩＤを特定して、グラフィックアクセラレータ４に対し、特定したＩＤデータに含まれるディスプレイリストＩＤをＩＤテーブル４０３に設定するＩＤデータ配置命令と、特定したディスプレイリストＩＤを引数として指定する描画実行命令を送信する。
【００１５】
図１において、メニュー１（１）ＩＤは、メニュー１（１）画像の描画を指示する描画起動用ＩＤであり、メニュー１（２）ＩＤは、メニュー１（２）画像の描画を指示する描画起動用ＩＤ、メニュー１（３）ＩＤは、メニュー１（３）画像の描画を指示する描画起動用ＩＤである。また、メニュー２（４）ＩＤは、メニュー２（４）画像の描画を指示する描画起動用ＩＤであり、メニュー２（５）ＩＤは、メニュー２（５）画像の描画を指示する描画起動用ＩＤ、メニュー２（６）ＩＤは、メニュー２（６）画像の描画を指示する描画起動用ＩＤである。
【００１６】
以降では、３つの要素（メニュー１（１）、メニュー１（２）、メニュー１（３））で構成されるメニュー画像（メニュー１）、および、３つの要素（メニュー２（４）、メニュー２（５）、メニュー２（６））で構成されるメニュー画像（メニュー２）の描画に必要なディスプレイリストおよびＩＤデータを、グラフィックアクセラレータ４のメモリ４０に登録する場合について説明する。
なお、実際のアプリケーション開発においては、アプリケーションプログラム３を実行して得られる全てのメニューの情報（ディスプレイリストおよびＩＤデータ）が、グラフィックアクセラレータ４に登録される。
【００１７】
グラフィックアクセラレータ４は、ホストコンピュータ２から入力した演算結果の画像データをディスプレイ５に表示するグラフィックハードウェアであり、メモリ４０およびフレームバッファ４１を備える。
メモリ４０は、ディスプレイリスト群４０１およびＩＤデータ群４０２からなるメニューテーブル４００と、ＩＤテーブル４０３を格納する記憶部である。ディスプレイリスト群４０１には、ＣＰＵ２０によりディスプレイリスト群２００の内容が登録され、同様にＩＤデータ群４０２には、ＣＰＵ２０によりＩＤデータ群２０１の内容が登録される。
【００１８】
ＩＤテーブル４０３は、グラフィックアクセラレータ４の描画処理で利用されるＩＤデータが配置されるテーブルデータである。ＩＤデータには、各種類のディスプレイリストのディスプレイリストＩＤが格納されている。
ここで、ディスプレイリストの種類には、ディスプレイリストＩＤで指定される任意数のディスプレイリストを格納するコンテナ、文字列の描画に利用されるテキスト情報、フォントを指定するフォント情報、ベクター図形の描画に利用されるベクター図形描画データ、画像の描画に利用されるビットマップ情報、および、動画の描画に利用されるアニメーション情報がある。
なお、コンテナには、他のコンテナを格納することができ、階層構造を規定できる。
すなわち、ディスプレイリストは、ディスプレイリストＩＤで指定される、コンテナや他の種類のディスプレイリストをコンテナに格納してデータを構成することにより、階層構造を規定することができる。
【００１９】
フレームバッファ４１は、ディスプレイ５に表示する画像の情報（ビットマップデータ）を書き込むフレームバッファである。グラフィックアクセラレータ４が、ＩＤデータで指定されたディスプレイリストの情報を用いて描画処理を実行し、得られたメニュー画像の情報をフレームバッファ４１に書き込む。ディスプレイ５は、フレームバッファ４１に書き込まれた画像情報を読み出して画像を表示する表示部である。
【００２０】
次に動作について説明する。
図２は、実施の形態１に係る表示装置によるＩＤデータの動的な割当動作の概要を示す図である。また、図３は、メニュー画像の表示内容とＩＤテーブルにおけるＩＤデータの配置状況との関係を示す図である。図２に示すＩＤテーブル４０３は、０から６５５３５までをディスプレイリストＩＤとして設定可能であり、ＩＤ＝０から所定の範囲までにシステム領域４０４が規定され、続いて共通部品領域４０５が規定されており、共通部品領域４０５以降のＩＤ領域が空き領域４０６となっている。
【００２１】
ここで、システム領域４０４には、グラフィックアクセラレータ４が現在実施している描画処理に利用されているディスプレイリストＩＤや、ホストコンピュータ２およびグラフィックアクセラレータ４からなるシステム全体で利用されるフォントのＩＤ、もしくは当該システムが独自に利用するディスプレイリストのディスプレイリストＩＤが設定される。共通部品領域４０５は、描画処理で共通に使用される表示部品の表示態様を規定するディスプレイリストＩＤが割り当てられるＩＤ領域である。
また、ＩＤデータにまとめられるディスプレイリストＩＤには、ＩＤテーブル４０３で割当可能な数値（０〜６５５３５）が割り当てられる。
なお、本発明でいう“ＩＤデータをＩＤテーブル４０３に配置する”とは、ＩＤデータに含まれるディスプレイリストＩＤが、ＩＤテーブル４０３で設定可能ないずれの数値であるのかを設定する処理に相当する。
【００２２】
図２および図３は、メニュー１（１）、メニュー１（２）、メニュー１（３）の各要素で構成されるメニュー１の画像、および、メニュー２（４）、メニュー２（５）、メニュー２（６）の各要素で構成されるメニュー２の画像を描画する場合を示している。なお、表示順の階層関係から、メニュー１の画像とメニュー２の画像は、ディスプレイ５に同時に表示されないものとする。
以下、ＩＤデータをＩＤテーブル４０３へ動的に配置してメニュー１の画像とメニュー２の画像を描画する処理を、図１、図２および図３を用いて説明する。
【００２３】
（Ａ）ＩＤデータのＩＤテーブルへの動的な配置による描画処理
まず、事前に用意されたメニュー１の画像の描画に用いられるディスプレイリストと、メニュー２の画像の描画に用いられるディスプレイリストと、メニュー１およびメニュー２に関する各ディスプレイリストのディスプレイリストＩＤをまとめたＩＤデータが、ＣＰＵ２０によりグラフィックアクセラレータ４のメニューテーブル４００に登録される。
【００２４】
ディスプレイリストに規定される表示順の階層関係から、最初にメニュー１（１）の画像が描画される。まず、図１に示すように、ＣＰＵ２０が、メニューテーブル２０２からメニュー１（１）ＩＤを読み出して、このメニュー１（１）ＩＤからメニュー１（１）の画像の描画に利用するＩＤデータ（１）を特定し、グラフィックアクセラレータ４に対してＩＤデータ（１）をＩＤテーブル４０３に配置させるＩＤデータ配置命令を送信する。
【００２５】
グラフィックアクセラレータ４は、ＣＰＵ２０からのＩＤデータ配置命令を受けると、図２に示すように、ＩＤデータ群４０２に登録されているＩＤデータのうち、ＩＤデータ配置命令で指定されたＩＤデータ（１）を動的にＩＤテーブル４０３に配置する。
すなわち、メニュー１（１）の画像を描画する際に、ＩＤデータ（１）に含まれるディスプレイリストＩＤがＩＤテーブル４０３の空き領域４０６で設定可能ないずれの数値であるのかが設定される。このときのＩＤテーブル４０３の内容は、図３におけるメニュー１（１）画像の表示時（ａ）のようになる。
【００２６】
グラフィックアクセラレータ４が、ＩＤデータ配置命令に従いＩＤデータ（１）をＩＤテーブル４０３に配置すると、ＣＰＵ２０は、ＩＤデータ（１）に含まれるメニュー１（１）の画像の描画に必要なディスプレイリストのディスプレイリストＩＤを引数とする描画命令を、グラフィックアクセラレータ４に送信する。
グラフィックアクセラレータ４は、ＩＤテーブル４０３に配置したＩＤデータ（１）のディスプレイリストＩＤのうち、ＣＰＵ２０からの上記描画実行命令で指定されたディスプレイリストＩＤにより一意に識別されるディスプレイリストを用いてメニュー１（１）の画像の描画処理を実行し、得られたメニュー１（１）の画像情報をフレームバッファ４１に書き込む。これにより、ディスプレイ５は、フレームバッファ４１に書き込まれた画像情報を読み出して、メニュー１（１）の画像を表示する。
【００２７】
ディスプレイリストに規定される表示順の階層関係から、次にメニュー１（２）の画像が描画される。この場合、ＣＰＵ２０が、メニューテーブル２０２からメニュー１（２）ＩＤを読み出して、このメニュー１（２）ＩＤからメニュー１（２）の画像の描画に利用するＩＤデータ（２）を特定し、グラフィックアクセラレータ４に対してＩＤデータ（２）をＩＤテーブル４０３に配置させるＩＤデータ配置命令を送信する。
【００２８】
グラフィックアクセラレータ４は、ＣＰＵ２０からのＩＤデータ配置命令を受けると、図２に示すように、ＩＤデータ群４０２に登録されたＩＤデータのうち、ＩＤデータ配置命令で指定されたＩＤデータ（２）を動的にＩＤテーブル４０３に配置する。すなわち、メニュー１（２）の画像を描画する際に、ＩＤデータ（２）に含まれるディスプレイリストＩＤがＩＤテーブル４０３の空き領域４０６で設定可能ないずれの数値であるのかが設定される。このときのＩＤテーブル４０３の内容は、図３のメニュー１（１）の画像＋メニュー１（２）画像の表示時（ｂ）のようになる。
【００２９】
グラフィックアクセラレータ４が、ＩＤデータ配置命令に従いＩＤデータ（２）をＩＤテーブル４０３に配置すると、ＣＰＵ２０は、ＩＤデータ（２）からメニュー１（２）の画像の描画に必要なディスプレイリストのディスプレイリストＩＤを特定し、グラフィックアクセラレータ４に対して、特定したディスプレイリストＩＤを引数とする描画実行命令を送信する。
グラフィックアクセラレータ４は、ＩＤテーブル４０３に配置したＩＤデータ（２）のディスプレイリストＩＤのうち、ＣＰＵ２０からの上記描画実行命令で指定されたディスプレイリストＩＤにより一意に識別されるディスプレイリストを用いてメニュー１（２）の画像の描画処理を実行し、得られたメニュー１（２）の画像情報を、メニュー１（１）の画像情報が書き込まれているフレームバッファ４１に上書きする。これにより、ディスプレイ５は、フレームバッファ４１に書き込まれた画像情報を読み出して、メニュー１（１）の画像上にメニュー１（２）の画像を重畳して表示する。
【００３０】
ディスプレイリストに規定される表示順の階層関係から、次にメニュー１（３）の画像が描画される。この場合、ＣＰＵ２０が、メニューテーブル２０２からメニュー１（３）ＩＤを読み出して、このメニュー１（３）ＩＤからメニュー１（３）の画像の描画に利用するＩＤデータ（３）を特定し、グラフィックアクセラレータ４に対してＩＤデータ（３）をＩＤテーブル４０３に配置させるＩＤデータ配置命令を送信する。
【００３１】
グラフィックアクセラレータ４は、ＣＰＵ２０からのＩＤデータ配置命令を受けると、図２に示すように、ＩＤデータ群４０２に登録されたＩＤデータのうち、ＩＤデータ配置命令で指定されたＩＤデータ（３）を動的にＩＤテーブル４０３に配置する。すなわち、メニュー１（３）の画像を描画する際に、ＩＤデータ（３）に含まれるディスプレイリストＩＤがＩＤテーブル４０３の空き領域４０７で設定可能ないずれの数値であるのかが設定される。このときのＩＤテーブル４０３の内容は、図３におけるメニュー１（１）の画像＋メニュー１（２）画像＋メニュー１（３）画像の表示時（ｃ）のようになる。
【００３２】
グラフィックアクセラレータ４が、ＩＤデータ配置命令に従いＩＤデータ（３）をＩＤテーブル４０３に配置すると、ＣＰＵ２０は、ＩＤデータ（３）からメニュー１（３）の画像の描画に必要なディスプレイリストのディスプレイリストＩＤを特定し、グラフィックアクセラレータ４に対して、特定したディスプレイリストＩＤを引数とする描画実行命令を送信する。
グラフィックアクセラレータ４は、ＩＤテーブル４０３に配置したＩＤデータ（３）のディスプレイリストＩＤのうち、ＣＰＵ２０からの上記描画実行命令で指定されたディスプレイリストＩＤにより一意に識別されるディスプレイリストを用いてメニュー１（３）の画像の描画処理を実行し、得られたメニュー１（３）の画像情報を、メニュー１（１）の画像情報とメニュー１（２）の画像情報が書き込まれたフレームバッファ４１に上書きする。これにより、ディスプレイ５は、フレームバッファ４１に書き込まれた画像情報を読み出して、メニュー１（２）の画像が重畳されたメニュー１（１）の画像上にメニュー１（３）の画像をさらに重畳して表示する。
【００３３】
ディスプレイリストに規定される表示順の階層関係から、メニュー１の画像とメニュー２の画像がディスプレイ５に同時に表示されないため、続いてメニュー２（４）の画像が描画される。この場合、ＣＰＵ２０が、メニューテーブル２０２からメニュー２（４）ＩＤを読み出し、このメニュー２（４）ＩＤからメニュー２（４）の画像の描画に利用するＩＤデータ（４）を特定し、グラフィックアクセラレータ４に対してＩＤデータ（４）をＩＤテーブル４０３に配置させるＩＤデータ配置命令を送信する。
【００３４】
グラフィックアクセラレータ４は、ＣＰＵ２０からのＩＤデータ配置命令を受けると、図２に示すように、ＩＤデータ群４０２に登録されたＩＤデータのうち、ＩＤデータ配置命令で指定されたＩＤデータ（４）を動的にＩＤテーブル４０３に配置する。
ここで、メニュー１の画像とメニュー２の画像は、ディスプレイ５に同時に表示されないため、メニュー１の画像に関するＩＤデータ（１）、ＩＤデータ（２）、ＩＤデータ（３）の配置が解かれて、このＩＤ領域がメニュー２の画像に関するＩＤデータを配置するために再利用される。
すなわち、メニュー画像の表示順序が前後して、ディスプレイ５に同時に表示されないメニュー画像に関するＩＤデータのディスプレイリストＩＤについては、ＩＤテーブル４０３の空き領域４０６で設定可能な数値の重複した割当が許容される。
これにより、メニュー２（４）の画像を描画する際、ＩＤデータ（４）のディスプレイリストＩＤが、ＩＤテーブル４０３の空き領域４０６で設定可能ないずれの数値であるか（メニュー１に関するディスプレイリストＩＤに割り当てられていた数値のいずれであるか）が設定される。このときのＩＤテーブル４０３の内容は、図３におけるメニュー２（４）画像の表示時（ｄ）のようになる。
【００３５】
グラフィックアクセラレータ４が、ＩＤデータ配置命令に従いＩＤデータ（４）をＩＤテーブル４０３に配置すると、ＣＰＵ２０は、ＩＤデータ（４）からメニュー２（４）の画像の描画に必要なディスプレイリストのディスプレイリストＩＤを特定し、グラフィックアクセラレータ４に対して、特定したディスプレイリストＩＤを引数とする描画実行命令を送信する。
グラフィックアクセラレータ４は、ＩＤテーブル４０３に配置したＩＤデータ（４）のディスプレイリストＩＤのうち、ＣＰＵ２０からの上記描画実行命令で指定されたディスプレイリストＩＤにより一意に識別されるディスプレイリストを用いてメニュー２（４）の画像の描画処理を実行する。なお、メニュー１の画像とメニュー２の画像は、ディスプレイ５に同時に表示しないため、フレームバッファ４１におけるメニュー１の画像情報は消去されている。グラフィックアクセラレータ４は、描画処理により得られたメニュー２（４）の画像情報をフレームバッファ４１に書き込む。これにより、ディスプレイ５は、フレームバッファ４１に書き込まれた画像情報を読み出してメニュー２（４）の画像を表示する。
【００３６】
ディスプレイリストに規定される表示順の階層関係から、次にメニュー２（５）の画像が描画される。この場合、ＣＰＵ２０が、メニューテーブル２０２からメニュー２（５）ＩＤを読み出して、このメニュー２（５）ＩＤからメニュー２（５）の画像の描画に利用するＩＤデータ（５）を特定し、グラフィックアクセラレータ４に対してＩＤデータ（５）をＩＤテーブル４０３に配置させるＩＤデータ配置命令を送信する。
【００３７】
グラフィックアクセラレータ４は、ＣＰＵ２０からのＩＤデータ配置命令を受けると、図２に示すように、ＩＤデータ群４０２に登録されたＩＤデータのうち、ＩＤデータ配置命令で指定されたＩＤデータ（５）を動的にＩＤテーブル４０３に配置する。すなわち、メニュー２（５）の画像を描画する際に、ＩＤデータ（５）のディスプレイリストＩＤがＩＤテーブル４０３の空き領域４０６で設定可能ないずれの数値であるのかが設定される。このときのＩＤテーブル４０３の内容は、図３におけるメニュー２（４）の画像＋メニュー２（５）画像の表示時（ｅ）のようになる。
【００３８】
グラフィックアクセラレータ４が、ＩＤデータ配置命令に従いＩＤデータ（５）をＩＤテーブル４０３に配置すると、ＣＰＵ２０は、ＩＤデータ（５）からメニュー２（５）の画像の描画に必要なディスプレイリストのディスプレイリストＩＤを特定し、グラフィックアクセラレータ４に対して、特定したディスプレイリストＩＤを引数とする描画実行命令を送信する。
グラフィックアクセラレータ４は、ＩＤテーブル４０３に配置したＩＤデータ（５）のディスプレイリストＩＤのうち、ＣＰＵ２０からの上記描画実行命令で指定されたディスプレイリストＩＤにより一意に識別されるディスプレイリストを用いてメニュー２（５）の画像の描画処理を実行し、得られたメニュー２（５）の画像情報を、メニュー２（４）の画像情報が書き込まれているフレームバッファ４１に上書きする。これにより、ディスプレイ５は、フレームバッファ４１に書き込まれた画像情報を読み出して、メニュー２（４）の画像上にメニュー２（５）の画像を重畳して表示する。
【００３９】
ディスプレイリストに規定される表示順の階層関係から、次にメニュー２（６）の画像が描画される。この場合、ＣＰＵ２０が、メニューテーブル２０２からメニュー２（６）ＩＤを読み出して、このメニュー２（６）ＩＤからメニュー２（６）の画像の描画に利用するＩＤデータ（６）を特定し、グラフィックアクセラレータ４に対してＩＤデータ（６）をＩＤテーブル４０３に配置させるＩＤデータ配置命令を送信する。
【００４０】
グラフィックアクセラレータ４は、ＣＰＵ２０からのＩＤデータ配置命令を受けると、図２に示すように、ＩＤデータ群４０２に登録されたＩＤデータのうち、ＩＤデータ配置命令で指定されたＩＤデータ（６）を動的にＩＤテーブル４０３に配置する。すなわち、メニュー２（６）の画像を描画する際、ＩＤデータ（６）のディスプレイリストＩＤがＩＤテーブル４０３の空き領域４０６で設定可能ないずれの数値であるのかが設定される。このときのＩＤテーブル４０３の内容は、図３におけるメニュー２（４）の画像＋メニュー２（５）画像＋メニュー２（６）画像の表示時（ｆ）のようになる。
【００４１】
グラフィックアクセラレータ４が、ＩＤデータ配置命令に従いＩＤデータ（６）をＩＤテーブル４０３に配置すると、ＣＰＵ２０は、ＩＤデータ（６）からメニュー２（６）の画像の描画に必要なディスプレイリストのディスプレイリストＩＤを特定し、グラフィックアクセラレータ４に対して、特定したディスプレイリストＩＤを引数とする描画実行命令を送信する。
グラフィックアクセラレータ４は、ＩＤテーブル４０３に配置したＩＤデータ（６）のディスプレイリストＩＤのうち、ＣＰＵ２０からの上記描画実行命令で指定されたディスプレイリストＩＤにより一意に識別されるディスプレイリストを用いてメニュー２（６）の画像の描画処理を実行し、得られたメニュー２（６）の画像情報を、メニュー２（４）の画像情報とメニュー２（５）の画像情報が書き込まれたフレームバッファ４１に上書きする。これにより、ディスプレイ５は、フレームバッファ４１に書き込まれた画像情報を読み出して、メニュー２（５）の画像が重畳されたメニュー２（４）の画像上にメニュー２（６）の画像をさらに重畳して表示する。
【００４２】
従来の表示装置では、前述のように複数のディスプレイリストを用いて描画処理を行う場合に、複数のディスプレイリストに対応する全てのＩＤデータをまとめた描画実行命令を行い、これらのＩＤデータの全てがＩＤテーブル４０３の空き領域にまとめて配置されていた（静的な配置）。例えば、メニュー１の画像とメニュー２の画像を表示する場合、描画処理の際に、ＩＤテーブル４０３の空き領域にＩＤデータ（１）からＩＤデータ（６）までの全てのディスプレイリストＩＤが一度に設定される。このため、描画するメニュー画像が多い場合、ディスプレイリストＩＤを割り当てられなくなる可能性がある。
【００４３】
これに対して、本発明では、描画するメニュー画像が多い場合であっても、ディスプレイリストの階層関係に基づいて個々のメニュー画像の描画を行う際にその描画処理に利用されるＩＤデータのディスプレイリストＩＤのみをＩＤテーブル４０３の空き領域に設定する。これにより、ディスプレイリストＩＤを割り当てられなくなることを防止できる。
なお、ＩＤデータのＩＤテーブル４０３への配置は、グラフィックアクセラレータ４が一般的に有するｂｉｔｂｌｔ機能を利用してもよい。
すなわち、グラフィックアクセラレータ４が、ＣＰＵ２０から発行されたＩＤデータ配置命令に従って、ＩＤデータのディスプレイリストＩＤを、ｂｉｔｂｌｔ転送でＩＤテーブル４０３に設定する。このようにすることで、より高速なＩＤデータの配置が可能である。
【００４４】
（Ｂ）ディスプレイリスト群の階層構造に応じたＩＤデータ作成
図４は、ディスプレイリスト群のメニュー描画に関する階層構造に応じたＩＤデータ作成の概要を示す図である。図４において、メニュー１、メニュー２、メニュー３、・・・は、メニュー画像の描画に利用される、表示順の階層関係を持たせたディスプレイリスト群を示している。
メニュー１、メニュー２、メニュー３、・・・の画像は、アプリケーションプログラム３を実行して表示されるメニュー画像である。なお、上位のメニュー１、メニュー２、メニュー３、・・・の画像は、ディスプレイ５に同時に表示されない。
【００４５】
また、メニュー１の画像は、次に子メニュー１の画像と子メニュー２の画像のいずれかが表示される。子メニュー１の画像が次に表示された場合、続いて子メニュー１サブ１の画像、子メニュー１サブ２の画像、子メニュー１サブ３の画像のいずれかが表示される。
子メニュー２の画像が次に表示された場合は、続いて子メニュー２サブ１の画像および子メニュー２サブ２の画像のいずれかが表示され、子メニュー２サブ２の画像が表示されると、次に子メニュー２サブ２サブ１の画像が表示される。
【００４６】
各メニュー画像の描画処理に用いるディスプレイリストには、上述の表示順の階層関係が規定されている。以降では、メニュー１の画像→子メニュー２の画像→子メニューサブ２の画像→子メニューサブ２サブ１の画像を順に表示するためのＩＤデータの作成動作について説明する。なお、上述のディスプレイリストおよびＩＤデータは、アプリケーションプログラム３の開発時に作成され、本発明に係る表示装置１の起動時にＣＰＵ２０からグラフィックアクセラレータ４のメモリ４０に登録される。
【００４７】
メニュー１の画像の描画に利用するＩＤデータ５００を作成する場合、ＩＤテーブル４０３の共通部品領域４０５の終端に続く数値をオフセット１として、このオフセット１を始端とするＩＤ領域４０７からＩＤデータ５００のディスプレイリストＩＤを割り当てる。このとき、ＩＤデータ５００に必要なＩＤの数、すなわちメニュー１の画像の描画に用いるディスプレイリストの数分をオフセット１に加算してＩＤ領域４０７を指定し、このＩＤ領域４０７の始端（オフセット１）から、メニュー１の画像の描画に用いるディスプレイリストＩＤを割り当てる。
【００４８】
子メニュー２の画像の描画に利用するＩＤデータ５０１を作成する場合には、ＩＤ領域４０７の終端に続く数値をオフセット２として、このオフセット２を始端とするＩＤ領域４０８からＩＤデータ５０１のディスプレイリストＩＤを割り当てる。このとき、ＩＤデータ５０１に必要なＩＤの数、すなわち子メニュー２の画像の描画に用いるディスプレイリストの数分をオフセット２に加算してＩＤ領域４０８を指定し、このＩＤ領域４０８から子メニュー２の画像の描画に用いるディスプレイリストＩＤを割り当てる。
【００４９】
子メニュー２サブ２の画像の描画に利用するＩＤデータ５０２を作成する場合、ＩＤ領域４０８の終端に続く数値をオフセット３として、このオフセット３を始端とするＩＤ領域４０９からＩＤデータ５０２のディスプレイリストＩＤを割り当てる。このとき、ＩＤデータ５０２に必要なＩＤの数、すなわち子メニュー２サブ２の画像の描画に用いるディスプレイリストの数分をオフセット３に加算してＩＤ領域４０９を指定し、このＩＤ領域４０９から子メニュー２サブ２の画像の描画に用いるディスプレイリストＩＤを割り当てる。
【００５０】
子メニュー２サブ２サブ１の画像の描画に利用するＩＤデータ５０３を作成する場合、ＩＤ領域４０９の終端に続く数値をオフセット４として、このオフセット４を始端とするＩＤ領域４１０からＩＤデータ５０３のディスプレイリストＩＤを割り当てる。このとき、ＩＤデータ５０３に必要なＩＤの数、すなわち子メニュー２サブ２サブ１の画像の描画に用いるディスプレイリストの数分をオフセット４に加算してＩＤ領域４１０を指定し、このＩＤ領域４１０から子メニュー２サブ２サブ１の画像の描画に用いるディスプレイリストＩＤを割り当てる。
この後、子メニュー２サブ２サブ１の画像の次に表示されるメニュー画像に関するＩＤデータについては、ＩＤ領域４１０の終端に続く数値である、オフセット５を始端とするＩＤ領域からディスプレイリストＩＤが割り当てられる。
【００５１】
この手順を全てのメニュー画像の表示順に関する階層において繰り返して、各メニュー画像に関するＩＤデータを作成することで、同時に描画されるメニュー画像において重複しないＩＤデータの生成が可能となる。
上述のように、ディスプレイ５により同時に表示される画像については、ディスプレイリストの階層関係に従って重複なくＩＤデータのディスプレイリストＩＤが割り当てられ、ディスプレイ５により同時に表示されない画像については重複を許容してＩＤデータのディスプレイリストＩＤを割り当てる。これにより、全てのメニューに対して、描画時にＩＤデータをＩＤテーブル４０３に動的に配置することができ、同時に表示されないメニュー画像については、ＩＤテーブル４０３上の同一のＩＤ領域を使い回すことが可能である。従って、ディスプレイリストＩＤの割当不足を防止することができる。
【００５２】
また、上述のように階層関係に応じてＩＤデータを作成することにより、上記（Ａ）で説明した描画処理において、一つ前のメニューに戻る場合、例えばメニュー１の画像、子メニュー２の画像を順に表示してから、子メニュー２ではなく、子メニュー１の画像を表示する場合、子メニュー２の画像に対応するＩＤデータ５０１を設定したＩＤテーブル４０３のＩＤ領域５０１を解放して、子メニュー１の画像に対応するＩＤデータを設定すればよい。これにより、ＩＤデータのＩＤテーブル４０３の効率的な利用が可能である。
【００５３】
以上のように、この実施の形態１によれば、ホストコンピュータ２のＣＰＵ２０と、複数の画像を構成する各要素の表示態様をそれぞれ規定する複数のディスプレイリストからなるディスプレイリスト群４０１と、描画に用いる画像ごとのディスプレイリストを一意に識別するディスプレイリストＩＤがまとめられた複数のＩＤデータからなるＩＤデータ群４０２と、ＩＤデータに含まれるディスプレイリストＩＤが設定されるＩＤテーブル４０３とを格納するメモリ４０を有し、ディスプレイリストを用いて画像の描画処理を行うグラフィックアクセラレータ４と、グラフィックアクセラレータ４により描画された画像を表示するディスプレイ５とを備え、ＣＰＵ２０が、表示順に描画を行う画像に対応するＩＤデータに含まれるディスプレイリストＩＤをＩＤテーブル４０３に設定させるＩＤデータ配置命令を、グラフィックアクセラレータ４に送信するとともに、当該ＩＤデータ配置命令に従ってＩＤテーブル４０３に設定されたＩＤデータに含まれるディスプレイリストＩＤを指定する描画実行命令をグラフィックアクセラレータ４に送信し、グラフィックアクセラレータ４が、ＩＤデータ群４０２のＩＤデータのうち、ＣＰＵ２０からのＩＤデータ配置命令で指定されたＩＤデータに含まれるディスプレイリストＩＤをＩＤテーブル４０３に設定するとともに、当該ＩＤテーブル４０３におけるディスプレイリストＩＤのうち、ＣＰＵ２０からの描画実行命令で指定されたディスプレイリストＩＤによりディスプレイリスト群４０１から読み出したディスプレイリストを用いて、画像の描画処理を行う。このようにすることで、ディスプレイリストに割り当てたＩＤデータを効率よく利用して高速な描画処理が可能である。
【００５４】
また、この実施の形態１によれば、グラフィックアクセラレータ４が、ＣＰＵ２０からのＩＤデータ配置命令で指定されたＩＤデータに含まれるディスプレイリストＩＤを、ｂｉｔｂｌｔ転送でＩＤテーブル４０３に設定する。このようにすることで、高速なＩＤデータの設定が可能である。
【００５５】
さらに、この実施の形態１によれば、ＩＤデータ群４０２が、ディスプレイ５に同時に表示される画像については、ディスプレイリスト群４０２の階層関係に従って、重複なくディスプレイリストＩＤが割り当てられ、ディスプレイ５に同時に表示されない画像については重複を許容してディスプレイリストＩＤが割り当てられる。
このようにすることで、描画時に動的にＩＤデータをＩＤテーブル４０３に設定することができ、同時に表示されないメニュー画像についてはＩＤテーブル４０３上の同一のＩＤ領域を使い回すことが可能である。従って、ディスプレイリストに割り当てたＩＤデータを効率よく利用して高速な描画処理が可能であり、かつＩＤデータの割当不足を防止することができる。
【００５６】
なお、本発明はその発明の範囲内において、実施の形態の任意の構成要素の変形、もしくは実施の形態の任意の構成要素の省略が可能である。
【産業上の利用可能性】
【００５７】
この発明に係る表示装置は、ディスプレイリストを識別するＩＤの割当不足を防止することができるので、車載用のナビゲーション装置などの表示装置に好適である。
【符号の説明】
【００５８】
１  表示装置、２  ホストコンピュータ、３  アプリケーションプログラム、４  グラフィックアクセラレータ、５  ディスプレイ、２０  ＣＰＵ、４０  メモリ、４１  フレームバッファ、２００，４０１  ディスプレイリスト群、２０１，４０２，５００〜５０３  ＩＤデータ、２０２，４００  メニューテーブル、４０３  ＩＤテーブル、４０４  システム領域、４０５  共通部品領域、４０６  空き領域、４０７〜４１０  ＩＤ領域。
【図１】
0005933601.tif 000002
【図２】
0005933601.tif 000003
【図３】
0005933601.tif 000004
【図４】
0005933601.tif 000005