(57)【特許請求の範囲】
【請求項１】
それぞれが同じ任意の形状の描画オブジェクトを統一して操作可能な任意の形状の複数のコンテナを用いて２次元描画座標系の描画データを処理する描画処理部と、
前記描画処理部が前記描画データの処理を行う際に、前記複数のコンテナの各コンテナの領域に占める前記同じ任意の形状の描画オブジェクトをクリッピング処理するクリッピング処理部と、
前記描画処理部で処理された描画データに対して、前記クリッピング処理された複数のコンテナを予め定めた任意の位置に配置して描画を行う描画実行部とを備えた描画装置。
【請求項２】
前記描画処理部は、ツリー構造で描画オブジェクトを管理し、前記複数のコンテナの各コンテナを前記ツリー構造のサブツリーの任意の位置に配置することを特徴とする請求項１記載の描画装置。
【請求項３】
前記複数のコンテナの各コンテナは、前記同じ描画オブジェクトを複数統一して操作することを特徴とする請求項１記載の描画装置。
【請求項４】
前記描画実行部は、前記同じ描画オブジェクトがコンテナの領域外に位置するとき、当該コンテナの描画処理を省略することを特徴とする請求項１記載の描画装置。
【請求項５】
前記描画処理部は、前記各コンテナの前記サブツリー内での位置を動的に変更することを特徴とする請求項２記載の描画装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディスプレイリストをツリー構造で管理する描画装置に関するものである。
【背景技術】
【０００２】
多くの描画処理系（例えば、ＯｐｅｎＧＬ（登録商標）やＡｄｏｂｅ  Ｆｌａｓｈ（登録商標）など）においては、描画オブジェクト・描画コマンドをディスプレイリストと呼ばれるデータ構造に保存し、まとめて描画処理を実行することで、高速な処理を実現する機能が備えられている。その中でも、２次元描画処理系においては、ディスプレイリストをツリー構造で管理している処理系が多く（例えばＡｄｏｂｅ  Ｆｌａｓｈ）、このツリーの構造によって描画オブジェクトの重なり順を制御している。【０００３】
図８にツリー構造で描画オブジェクトを管理する例を示す。この図では、角丸四角形、三角形、四角形がツリー８０１上に管理されており、ツリー８０１の左側が奥、右側が手前になるように設定されている場合、描画結果８０２が得られることを示している。
ここで、描画プログラムを作成する際には、Ａｄｏｂｅ  Ｆｌａｓｈなどの描画処理系のＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）経由で、所望の重なり順で描画オブジェクトが並ぶように、このツリー構造を操作することになる。また、各描画オブジェクトは、ディスプレイリストの仕組み上、ツリーの中のある一箇所にのみにしか存在することができないという制約がある。そのため、プログラム作成者はこのようなツリー構造とその制約を理解し、考慮に入れながらプログラムを作成しなければならない。【０００４】
例えば、従来、特許文献１では、描画オブジェクトの重なり順の制御について開示されている。また、特許文献２〜４では、ディスプレイリストがツリー構造で描画オブジェクトを管理していることを活かした描画の高速化に関する技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平０９−１２８５５６号公報
【特許文献２】特開２０１４−０１６８６９号公報
【特許文献３】特開２００２−０３２７５０号公報
【特許文献４】特開２０１０−２７４５３４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記特許文献１に記載されたような従来の装置では、ディスプレイリストのツリー構造を意識したものではなかった。また、特許文献２〜４に記載されている従来技術では、ツリー構造の特徴を活かした描画高速化手法が提供されているが、ツリー構造で重なり順を制御している都合上、ある描画オブジェクトがツリー構造中の異なるサブツリーの中間をすり抜けるような動きをするといった描画オブジェクトを配置することは非常に困難であった。【０００７】
例えば、図９では、三角形と四角形があるルールによって配置されており、それぞれの組がサブツリーを作るようなツリー構造９０１となっている。この状態で、描画結果９０２のように四角形と三角形の間をすり抜けるような動きのアニメーションが適用される描画オブジェクト９０３を追加したい場合、ツリー構造による重なり順制御を考慮すると、ツリー構造中の描画オブジェクト９０４を置くべき箇所を簡単には定めることができず、所望の動作を実装することは困難である。仮に三角形Ａと四角形Ａの間に描画オブジェクト９０４を置いた場合には、そのサブツリー内に描画オブジェクト９０４が置かれているときには問題ないが、Ｂの描画オブジェクトが含まれるサブツリー内に描画オブジェクト９０４が移動したときには三角形Ｂと四角形Ｂの後ろ側に描画オブジェクトが表示されてしまい、所望の結果は得られない。同様にＢのサブツリー内に描画オブジェクト９０４を置くことも考えられるが、そのときは常に三角形Ａと四角形Ａの手前に描画オブジェクト９０４が表示されてしまい、やはり所望の結果が得られない。【０００８】
この発明は、かかる問題を解決するためになされたもので、自由な表現が可能な描画装置を得ることを目的とする。
【課題を解決するための手段】
【０００９】
この発明に係る描画装置は、それぞれが同じ任意の形状の描画オブジェクトを統一して操作可能な任意の形状の複数のコンテナを用いて２次元描画座標系の描画データを処理する描画処理部と、描画処理部が描画データの処理を行う際に、複数のコンテナの各コンテナの領域に占める同じ描画オブジェクトをクリッピング処理するクリッピング処理部と、描画処理部で処理された描画データに対して、クリッピング処理された複数のコンテナを予め定めた任意の位置に配置して描画を行う描画実行部とを備えたものである。
【発明の効果】
【００１０】
この発明に係る描画装置は、それぞれが同じ任意の形状の描画オブジェクトを統一して操作可能な任意の形状の複数のコンテナを用い、これらコンテナ内の描画オブジェクトをクリッピング処理して予め定めた任意の位置に配置するようにしたものである。これにより、自由な表現が可能な描画装置を得ることができる。
【図面の簡単な説明】
【００１１】
【図１】この発明の実施の形態１の描画装置の構成図である。
【図２】この発明の実施の形態１の描画装置のハードウェア構成図である。
【図３】この発明の実施の形態１の描画装置の動作を示す説明図である。
【図４】この発明の実施の形態１の描画装置の描画オブジェクトコンテナの処理の流れを示す説明図である。
【図５】この発明の実施の形態１の描画装置の動作を示すフローチャートである。
【図６】この発明の実施の形態２の描画装置のＧＵＩ上のリスト部品を示す説明図である。
【図７】この発明の実施の形態２の描画装置のディスプレイリストのツリー構造を示す説明図である。
【図８】ツリー構造で描画オブジェクトを管理する例を示す説明図である。
【図９】四角形と三角形の間をすり抜けるような動きのアニメーションが適用される描画オブジェクトを追加する場合の例を示す説明図である。
【発明を実施するための形態】
【００１２】
以下、この発明をより詳細に説明するために、この発明を実施するための形態について、添付の図面に従って説明する。
実施の形態１．
図１は、本実施の形態による描画装置の構成図である。
図示のように、本実施の形態による描画装置は、描画処理部１、クリッピング処理部２、描画実行部３を備える。描画処理部１は、描画オブジェクトコンテナ４を用いて２次元描画座標系の描画データ５を処理し、その処理結果を描画実行部３に渡す処理部であり、描画処理系のＡＰＩを用いて構成されている。また、描画オブジェクトコンテナ４は、同じ描画オブジェクトのコピーを統一して操作可能なコンテナであり、複数個が設けられている。クリッピング処理部２は、描画処理部１が描画データ処理を行う際、描画オブジェクトコンテナ４内のコピーをクリッピング処理するための処理部である。描画実行部３は、描画処理部１で処理された描画データに対して、クリッピング処理部２でクリッピング処理された複数の描画オブジェクトコンテナ４を並べて配置して描画する処理部である。
【００１３】
図２に、実施の形態１の描画装置を実現するためのハードウェア構成図を示す。
この構成例では、計算機１０と入力装置２０と出力装置３０とを有している。計算機１０は、例えばパーソナルコンピュータからなり、処理装置１１と記憶装置１２を備える。処理装置１１は、ＣＰＵ（中央処理装置）を主体として構成され、記憶装置１２は、ＲＯＭやＲＡＭあるいはハードディスク装置からなる。入力装置２０は、キーボードやマウスといったユーザが入力操作を行うためのデバイスであり、出力装置３０は、ディスプレイやプリンタといった計算機１０の処理結果を出力するデバイスである。また、図１の描画データ５は記憶装置１２に格納され、描画処理部１、クリッピング処理部２及び描画実行部３は、それぞれの機能に対応したソフトウェアが記憶装置１２に格納され、これらのソフトウェアを処理装置１１が実行することにより実現されている。
【００１４】
本実施の形態の描画装置は、図９のような状況において、異なるサブツリーの中間をすり抜けるような動きをする描画オブジェクトを定義するための特殊コンテナを用意したものである。この特殊コンテナが描画オブジェクトコンテナ４であり、この描画オブジェクトコンテナ４は各サブツリーの任意の箇所にそれぞれ置くことができ、各描画オブジェクトコンテナ４が協調して動作することで、図９に示す描画オブジェクト９０３のような動きのアニメーションを実現することができる。以下、このような動作について詳細に説明する。
【００１５】
図３は、実施の形態１の描画装置の動作を示す説明図である。また、図４は、描画オブジェクトコンテナ４の処理の流れを示す説明図である。
本実施の形態の描画装置では、描画オブジェクトコンテナ４は、ツリー構造３０１のように、各サブツリーの任意の位置に配置することができるとする。図３においては、点線の角丸四角形が描画オブジェクトコンテナ４を表しており、図３中では描画オブジェクト３０２である。その状態で、描画オブジェクトコンテナ４（図４中では描画オブジェクト４１１）には同じ部品が対応しているが、実態としてはそれぞれが同じ部品のコピー（図４中の描画オブジェクト４１２）を持っており、そのコピーは全て統一して操作することができる（図４中の状態４０１）。ここで、統一して操作できるとは、例えば、アニメーション時の位置制御やサイズ制御などが同時になされることを指しており、描画オブジェクトに関する操作であれば他の操作でもよい。次に表示される際には、描画オブジェクトコンテナ４によって内部の部品は各描画オブジェクトコンテナ４の境界によってクリッピング表示される（図４中の状態４０２）。最後に、描画オブジェクトコンテナ４同士を並べて表示することで、あたかも単一の部品がそこに存在しているかのように見せることができる（図４中の状態４０３）。ここでは、分かりやすさのために、描画オブジェクトコンテナ４を隙間を空けずに水平方向に並べて表示しているが、描画オブジェクトコンテナ４間には任意の大きさの隙間があってもよく、また、その配置も整列の必要はなく任意の配置でよい。このように処理される描画オブジェクトコンテナ４をツリー構造３０１のように配置することで、描画結果３０４のように、異なるサブツリーに配置される描画オブジェクト間をすり抜けるような描画オブジェクト３０３を配置することができる。
【００１６】
図５は、実施の形態１の描画装置の動作を示すフローチャートである。
描画処理部１は、描画データ５に対して、描画オブジェクトコンテナ４を図３のツリー構造３０１のように配置し、データ処理を行う（ステップＳＴ１）。また、クリッピング処理部２は、図４の状態４０２に示すようなクリッピング処理を行う（ステップＳＴ２）。これにより、描画実行部３は、図４の状態４０３に示すように描画オブジェクトコンテナ４を連結して表示し（ステップＳＴ３）、図３の描画結果３０４を得る。
【００１７】
なお、上記説明では、一つの描画オブジェクトコンテナ４に含まれるコピーは一種類であったが、コピーは複数種類のものが含まれてもよい。
また、描画オブジェクトコンテナ４に含まれるコピーが描画オブジェクトコンテナ４の領域外にあるとき、描画実行部３は描画オブジェクトコンテナ４の描画処理そのものを省略することによって描画処理の高速化を行ってもよい。
【００１８】
このように、実施の形態１の描画装置では、描画オブジェクトコンテナ４という特殊コンテナを用いることによって、ディスプレイリストのツリー構造の各サブツリー間の各描画オブジェクトをすり抜けるような描画を簡単に実現することができる。さらに、状態４０２のクリッピング処理は一般的に高速に処理される描画処理であることと、描画実行部３による描画処理省略による高速化処理も可能であることを考慮すると、本発明を用いないときと比べて処理負荷もそれほどは大きくならない。
【００１９】
以上説明したように、実施の形態１の描画装置によれば、それぞれが同じ描画オブジェクトを統一して操作可能な複数のコンテナを用いて２次元描画座標系の描画データを処理する描画処理部と、描画処理部が描画データの処理を行う際に、複数のコンテナの各コンテナの領域に占める同じ描画オブジェクトをクリッピング処理するクリッピング処理部と、描画処理部で処理された描画データに対して、クリッピング処理された複数のコンテナを配置して描画を行う描画実行部とを備えたので、複数のコンテナが占める領域からのみ観察可能な単一の部品がそこに存在するように描画することができ、自由な表現が可能となる。
【００２０】
また、実施の形態１の描画装置によれば、描画処理部は、ツリー構造で描画オブジェクトを管理し、複数のコンテナの各コンテナをツリー構造のサブツリーの任意の位置に配置するようにしたので、例えば、サブツリーをまたがって他の描画オブジェクトの間をすり抜けるような描画オブジェクトを描画する、といった、ツリー構造の制約に縛られない自由な表現を行うことができる。
【００２１】
また、実施の形態１の描画装置によれば、複数のコンテナの各コンテナは、同じ描画オブジェクトを複数統一して操作するようにしたので、さらに自由な表現を可能とすることができる。
【００２２】
また、実施の形態１の描画装置によれば、描画実行部は、同じ描画オブジェクトがコンテナの領域外に位置するとき、コンテナの描画処理を省略するようにしたので、描画処理を高速化することができる。
【００２３】
実施の形態２．
実施の形態１では、描画装置として一般的な使用例について述べたが、実施の形態２では、Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ（ＧＵＩ）上のリスト部品に本発明の描画装置を適用した例を説明する。なお、実施の形態２における描画装置の構成は図１に示した実施の形態１の構成と同様であるため、ここでの説明は省略する。
【００２４】
図６は、ＧＵＩ上のリスト部品を示しており、リスト６０１の各アイテムは文字列（例えば部品６０２）と背景模様（例えば部品６０３）を含んでいる。また、このリスト６０１はリスト中の選択されているアイテムをグレーのカーソル６０４によって示す機能を持っており、カーソルキー操作などによってカーソル６０４は滑らかにアニメーションする（状態６１１→６１２→６１３のようなアニメーション）。ここで、デザインの都合上、カーソル６０４は各アイテムの文字列と背景模様の間をすり抜けるように移動することになっている。すなわち、カーソル６０４は各サブツリーの複数の描画オブジェクト間をすり抜ける描画オブジェクトとなっている。
【００２５】
また、３番目のアイテム６０５（ＣＣＣＣ表示のアイテム）は薄く表示されているが、これはアイテムが無効状態であることを示しており、この場合にはカーソル６０４は文字列よりさらに手前を通過するというデザインである（状態６１４→６１５→６１６のようなアニメーション）。すなわち、アイテム６０５と他のアイテムではサブツリー内でカーソル６０４がすり抜ける位置が異なるということである。
【００２６】
このようなデザインのリストを実現しようとしたとき、上述したように従来技術では実現することは非常に困難である。そこで、本発明の描画装置の特殊コンテナである描画オブジェクトコンテナ４を各サブツリーに配置し、通常は文字列と背景模様の間に、無効状態になったときには文字列より手前に特殊コンテナの位置を設定することで、所望の見た目を実現できる。
【００２７】
図７には、このときのディスプレイリストのツリー構造７０１を示している。図３と同様、描画オブジェクトコンテナ４は点線の角丸四角形で示している。図７に示す通り、サブツリー７０２、７０３、７０５、７０６、７０７では、カーソル６０４（図６参照）は文字列と背景模様の間をすり抜けなければならないため、描画オブジェクトコンテナ４はツリー構造７０１上の中間位置に配置されている。一方で、サブツリー７０４では、アイテム６０５は無効状態であり、カーソル６０４は文字列よりも手前をすり抜ける必要があるため、ツリー構造７０１上では描画オブジェクトコンテナ４は右位置（手前位置）に配置されている。
【００２８】
また、なんらかのきっかけによって無効状態が切り替わった際には、描画処理部１は、描画オブジェクトコンテナ４のツリー構造７０１上の位置を変えればよいことになる。
【００２９】
以上のように、サブツリーごとに、描画オブジェクトのすり抜ける位置が異なるデザインであっても、描画オブジェクトコンテナ４を置く位置を適切に設定することで簡単に所望の描画を実現することができる。さらに、描画オブジェクトコンテナ４のサブツリー内での位置を変更することによって、動的にすり抜ける描画オブジェクトのすり抜け方を変化させることも簡単に実現することができる。
【００３０】
以上説明したように、実施の形態２の描画装置によれば、描画処理部は、各コンテナのサブツリー内での位置を動的に変更するようにしたので、表示内容を動的に変更することができる。
【００３１】
なお、本願発明はその発明の範囲内において、各実施の形態の自由な組み合わせ、あるいは各実施の形態の任意の構成要素の変形、もしくは各実施の形態において任意の構成要素の省略が可能である。
【産業上の利用可能性】
【００３２】
以上のように、この発明に係る描画装置は、ディスプレイリストをツリー構造で管理し、描画オブジェクトの重なり順を管理する構成に関するものであり、２次元描画処理系で同じサブツリーに属するオブジェクト間の重なり順制御を行うのに適している。
【符号の説明】
【００３３】
１  描画処理部、２  クリッピング処理部、３  描画実行部、４  描画オブジェクトコンテナ、５  描画データ。
【要約】
描画処理部１は、描画オブジェクトコンテナ４を用いて描画データ５を処理する。描画オブジェクトコンテナ４は、同じ描画オブジェクトを統一して操作可能に構成されている。クリッピング処理部２は、描画処理部１が描画データの処理を行う際に、描画オブジェクトコンテナ４内の領域に占める同じ描画オブジェクトをクリッピング処理する。描画実行部３は、描画処理部１で処理された描画データに対して、クリッピング処理された描画オブジェクトコンテナ４を配置して描画を行う。【図１】
0005972509.tif 000002
【図２】
0005972509.tif 000003
【図３】
0005972509.tif 000004
【図４】
0005972509.tif 000005
【図５】
0005972509.tif 000006
【図６】
0005972509.tif 000007
【図７】
0005972509.tif 000008
【図８】
0005972509.tif 000009
【図９】
0005972509.tif 000010