JP4715435B2 - グラフィカルユーザインタフェース表示情報作成システムおよびプログラム - Google Patents
グラフィカルユーザインタフェース表示情報作成システムおよびプログラム Download PDFInfo
- Publication number
- JP4715435B2 JP4715435B2 JP2005292300A JP2005292300A JP4715435B2 JP 4715435 B2 JP4715435 B2 JP 4715435B2 JP 2005292300 A JP2005292300 A JP 2005292300A JP 2005292300 A JP2005292300 A JP 2005292300A JP 4715435 B2 JP4715435 B2 JP 4715435B2
- Authority
- JP
- Japan
- Prior art keywords
- state number
- drawing state
- user interface
- graphical user
- display information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Digital Computer Display Output (AREA)
- Controls And Circuits For Display Device (AREA)
Description
この発明は、ビットマップディスプレイの表示内容を作成する計算機において、グラフィカルユーザインタフェースを持つシステムを構築する技術分野に関する。
従来のエンジニアリングワークステーション、パソコンのウィンドウ管理システムにおいては、ウィンドウまたはその一部が露出することになったとき、その再描画に関してアプリケーションプログラムが責任を負うことになっている。ウィンドウまたはその一部の再描画が必要になったとき、ウィンドウ管理システムは特定のイベントを使ってアプリケーションプログラムにそれを通知する。例えば、Xウィンドウシステムにおいては、Exposeイベントを使ってアプリケーションにそれを通知する。このExposeイベントはアプリケーションプログラム自身、ウィンドウ管理システム、又は同じ計算機で動作している他のアプリケーションプログラムからのリクエストにより生成され、アプリケーションプログラムに対して描画すべきタイミングを知らせるものである(非特許文献1参照)。ここでウィンドウ管理システムとは、計算機に接続された表示装置上に表示するウィンドウの表示・非表示、表示内容等をユーザの操作、計算結果などに応じて変更するためのシステムである(非特許文献1)。
上記ウィンドウ管理システムにおけるグラフィカルユーザインタフェース(以下GUIと呼ぶ)部品の描画は、GUI部品の描画関数がウィンドウ管理システムの提供するグラフィックライブラリの描画命令関数(例えば、非特許文献1のX WindowにおけるXlib)を呼び出すことにより行われる。この描画命令関数はGUI部品の描画関数からの描画命令をウィンドウ管理システム(例えば、非特許文献1のXサーバ)に伝える。ウィンドウ管理システムは描画命令に基づきグラフィックプロセッサを制御して、GUI部品の関数が要求する描画をフレームバッファに対して表示情報を書き込むことにより行う。ここでGUIとはボタン、アイコン、メニューなど入力用表示対象であるGUI部品を画面に表示し、この表示されたGUI部品に対して操作することで計算機に入力を行うインタフェースである。また描画命令関数とは、線、円弧、及び矩形などの図形描画、並びに色などの表示属性(描画状態)の設定をウィンドウ管理システムにGUI部品の描画関数などからの描画命令として伝える関数である。フレームバッファとはビットマップディスプレイの表示画素に表示するための情報を表示画素単位で記憶する記憶装置をいう。ここで画面の表示画素とは、表示の最小単位でありピクセルと呼ばれるものに相当する。
他方、装置などを制御する組み込み型システムにおけるウィンドウ管理システム、GUIツールキットでは、1つのシステム向けに開発したアプリケーションプログラムを他のシステムに容易に変更できるように、種類の異なる複数のグラフィックプロセッサ上で動作するようにしている。組み込み型システムのグラフィックプロセッサを制御するサブルーチンやライブラリは、上記エンジニアリングワークステーション、パソコンのウィンドウ管理システムのものより低レベルであるため、GUI部品の描画処理を行う描画関数が直接グラフィックプロセッサのハードウェアを制御して、またはグラフィックプロセッサを使用するためのライブラリを用いて、適切なデータをフレームバッファに書き込む構成となっている。このようなシステムでは複数のGUI部品を描画する処理の実行順は、ウィンドウ管理システムが決める。このため、同じ描画状態を設定する複数のGUI部品を連続して描画する状況でも、GUI部品の描画関数の呼び出し毎に同じ描画状態を設定する処理を実行するため、ホストCPUのリソースを無駄に消費するという問題があった。
組み込み型システムのウィンドウ管理システム、GUIツールキットにおける上記グラフィックプロセッサのハードウェア制御が可能である特性を利用すると、上記問題の改良方式として以下の方式が考えられる。GUI部品を描画するGUI部品描画処理部での描画状態の設定命令と図形描画処理命令とを命令列として情報記憶装置上の適当なバッファに保存しておき、全てのGUI部品描画関数の実行が終了した後、バッファ内の命令列を描画状態の設定回数が最小になるように並び替えて実行する方式が考えられる。ここで描画状態とは、描画時に設定される状態をいう。この状態には、描画色、フォント、テクスチャ、シェーダプログラムなどの種類があり、この種類はシステムで定められる。描画状態は、一般にレンダリングステートとも呼ばれる。
Oliver Jones著、西村 亨監修、三浦明美・ドキュメントシステム訳「X Windowハンドブック」アスキー出版局(1990)(p.191 5.4 Exposeイベント)
上記エンジニアリングワークステーション、パソコンのウィンドウ管理システムを用いたGUI表示システムは、ウィンドウを描画するイベントを受け取ったときに複数のGUI部品を描画する処理の実行順序は、GUI部品を管理するウィンドウ管理システムが決定する。このため、同じ描画状態を設定する複数のGUI部品を連続して描画する状況でも、GUI部品の描画関数の呼び出し毎に同じ描画状態を設定する処理を実行するため、ホストCPUのリソースを無駄に消費するという問題があった。
上記で説明した組み込み型システムにおける「描画関数での描画状態の設定と描画処理を命令列として適当なバッファに保存しておき、全ウィンドウに存在する全GUI部品の描画関数の実行が終わってから、上記バッファ内の命令列を描画状態の設定回数が最少になるように並び替えて実行する」という実現方法は、バッファに格納できる命令列の最大長から、一度に描画できるGUI部品の最大数に制約を生じるという問題や、命令列の並び替えにホストCPUに負荷をかけるという問題がある。
本発明は、上記の問題点を解決するためになされたものであり、ホストCPUの資源を効率良く利用して処理が高速であり、かつ全てのウィンドウで描画するGUI部品の総数に制約が無い描画が可能なGUI表示システムを得ることを目的としている。
この発明に係るGUI表示システムは、ビットマップ表示情報を表示画素単位で記憶するフレームバッファと、描画状態を定める描画パラメータ群に付与した整数値の描画状態番号を表示画素毎に記憶する描画状態番号記憶手段と、GUI部品を表示する表示画素に対応する描画状態番号記憶手段の記憶領域に、前記描画状態番号を書き込むGUI部品描画処理手段と、描画時に前記GUI部品描画処理手段に対して描画処理命令を発行するウィンドウ管理手段と、前記描画状態番号記憶手段に記憶された前記描画状態番号に対応する前記描画パラメータを設定し前記フレームバッファの記憶領域に出力する描画実行手段とを備えたものである。
本発明は、以上説明したように構成されているので、以下に記載されるような効果を奏する。
描画状態番号記憶手段は固定長であるため、全ウィンドウに表示するGUI部品の最大数の制限がないという従来にない顕著な効果を奏するものである。
また、GUI部品描画処理手段の実行順とは無関係に、描画状態の設定回数が最小となる順序でフレームバッファへの描画を行えるため、ホストCPUの資源の消費を軽減した効率的な描画ができ、全体の描画処理を高速化できる。
実施の形態1.
図4は本発明の実施の形態ハードウェア構成図である。401は、主に演算処理を行うホストCPU、402はホストCPU401の演算処理の結果を受けて主に描画処理を行うグラフィックプロセッサ、405はホストCPU401及びグラフィックプロセッサ402で使用する情報を記憶する情報記憶装置である。
図4は本発明の実施の形態ハードウェア構成図である。401は、主に演算処理を行うホストCPU、402はホストCPU401の演算処理の結果を受けて主に描画処理を行うグラフィックプロセッサ、405はホストCPU401及びグラフィックプロセッサ402で使用する情報を記憶する情報記憶装置である。
図4は、ホストCPU401とグラフィックプロセッサ402で情報記憶装置405を共有するハードウェア構成図である。これは、PC、自動車用ナビゲーションシステム、携帯電話など多数がこの構成を採る。
図1は本発明の実施の形態1によるビットマップディスプレイ部を有する計算機上に構築されるGUI表示システムの構成図である。
102はビットマップ表示情報を表示画素単位で記憶するフレームバッファ、101は描画色、文字フォント、テクスチャなどの描画状態を定めるための設定値である描画パラメータ群に付与した描画状態番号(整数値)を表示画素毎に記憶する描画状態番号記憶手段、110は描画状態番号と前記描画パラメータとの関係を記憶する番号・描画状態対応記憶手段である。これら描画状態番号記憶手段101と番号・描画状態対応記憶手段110とは、計算機ハードウェアの情報記憶装置405上に構築される。ここで描画状態とは、描画時に設定される状態をいう。この状態には、描画色、フォント、テクスチャ、シェーダプログラムなどの種類があり、この種類はシステムで定められる。また描画状態は、一般にレンダリングステートとも呼ばれる。この描画状態は、1または複数の描画パラメータ(描画パラメータ群)により決まる。この描画パラメータとは、描画状態を決める状態の種類の1つについての設定値である。例えば、描画色であればR,G,Bの輝度、フォントであれば「細明朝体」などのフォント名称となる。この描画パラメータの種類として(描画状態の種類に同じ)、表示色、テクスチャ、フォント、シェーダプログラムなどがある。ここでシェーダプログラムとは、画面表示内容の表現力の向上をグラフィックプロセッサで行わせ、処理の高速化を図るプログラムであり、具体的には頂点などのジオメトリ処理を行う頂点シェーダ、領域の塗りつぶし処理を行うピクセルシェーダなどがある。また描画パラメータ群とは、ある時点までに設定された描画状態の各種類に対する描画パラメータの集合をいい、この描画パラメータ群により1つの描画状態が決まることになる。なお、ある描画状態について、描画パラメータが複数回設定された場合は、最後に設定された描画パラメータが有効となり、最後に設定された描画パラメータだけが描画状態として記憶されることになる。描画状態番号とは、描画パラメータ群が同じである描画状態を識別するために付与した1つの整数値のことである。
103は描画状態番号記憶手段101、フレームバッファ102の入出力を管理するウィンドウ管理手段、105,106,107はウィンドウ管理手段103からの描画処理命令を受けGUI部品に応じた描画内容を描画状態番号として描画状態番号記憶手段101へ記憶させるGUI部品描画処理手段、104は、ウィンドウ管理手段103からの描画実行指令を受け描画状態番号記憶手段101と番号・描画状態対応記憶手段110とに記憶されている情報を元にフレームバッファ102へ画面表示情報の出力を行う描画実行手段である。ウィンドウ管理手段103は上記記憶手段の入出力管理を行うとともに、GUI部品描画処理手段105,106,107に描画処理命令(プログラム上は描画イベント)を通知し、全てのGUI部品描画処理手段の描画処理が終了した後、描画実行手段104を実行するように構成する。
GUI部品描画処理手段105,106,107と、ウィンドウ管理手段103と描画実行手段104とは計算機のホストCPU401上に構築される。また、描画状態番号記憶手段101、フレームバッファ102、番号・描画状態対応記憶手段110は計算機の情報記憶部405上に構築される。このような構成とすることで、情報記憶装置405は、固定長である描画状態番号記憶手段101およびフレームバッファ102、並びに情報量が少ない番号・描画状態対応記憶手段110で構成されるので、GUI部品の数が増加しても記憶すべき情報量は大きくならず、実質上GUI部品の最大数に制限がなくなる。また、GUI部品描画処理手段105,106,107の実行順とは無関係に、描画状態の設定回数が最小となる順でフレームバッファ102へ書き込みができる。
上記の演算処理は全てホストCPUで実行するように説明したが、描画実行手段104、ウィンドウ管理手段103の全部または一部をグラフィックプロセッサ402上に構成することにより、演算処理を分散することができ、さらに総合的な実行速度を上げる効果がある。
以下、各構成部分について説明する。
フレームバッファ102は、描画実行手段104がウィンドウ管理手段103を通して読み書き可能な情報記憶装置上のバッファメモリであり、計算機接続された表示装置に出力する画面イメージが記憶される。
描画状態番号記憶手段101はウィンドウ管理手段103を通して読み書き可能な情報記憶装置上405のバッファメモリであり、フレームバッファの各表示画素に対応する整数値が記憶される記憶領域からなる。描画状態番号記憶手段101の1個の整数値記憶領域には、1個の描画状態番号が記憶される。描画状態番号は、同じ描画状態に対して割り当てられる整数値の番号である。描画状態番号記憶手段101における描画状態番号の並びにより、フレームバッファ上に書き込むGUI部品の形状が記憶される。
ウィンドウ管理手段103が有する描画状態番号記憶手段101およびフレームバッファ102を読み書きするための機能として、計算機を動作させるプログラムは、他のプログラムから呼び出すためのインタフェースを持つ。上記プログラムのうち、フレームバッファ102を読み書きするための機能として計算機を動作させるものは、グラフィックライブラリと呼び、描画パラメータで定まる描画状態を設定する描画状態設定関数、および描画状態に基づきフレームバッファにデータを書き込む描画命令関数から成る。
さらにウィンドウ管理手段103は指定された描画状態と描画状態番号記憶手段101とに保持された部品の形状に従いフレームバッファ102に部品の外観を描画する。ウィンドウ管理システム103は、画面の再描画が必要になったことを検知した上で、GUI部品描画処理手段105,106,107に描画処理命令(プログラム上は描画イベント)を通知し、描画実行手段104にフレームバッファ102へ表示情報を書き込む処理の実行を描画実行命令を通知することにより指示する。なお、計算機をウィンドウ管理手段103として機能させるためのプログラムのうち描画状態番号記憶手段101及びフレームバッファ102を読み書きするプログラムは、グラフィックプロセッサ上402で処理することもできる。
GUI部品描画処理手段105,106,107は、ウィンドウ管理手段103から描画処理命令(プログラム上は描画イベント)の通知を受けると、GUI部品の描画に使用する描画状態をあらわす描画状態番号を描画状態番号記憶手段101のGUI部品の形状に対応する記憶域に記憶させる。
描画実行手段104は、ウィンドウ管理手段103からの描画実行命令を受けると、描画状態番号記憶手段101に保持されている描画状態番号から1の描画状態番号を選択し、この描画状態番号に対応する描画パラメータを番号・描画状態対応記憶手段110から求め、求めた描画パラメータを描画状態として設定した後、描画状態番号記憶手段101に保持された上記描画状態番号を持つ表示画素に対応するフレームバッファ102の記憶域に上記設定された描画状態に応じた表示情報を書き込む。
番号・描画状態対応記憶手段110は、描画状態番号に対応する描画パラメータの情報を記憶する。
番号・描画状態対応記憶手段110は、描画状態番号に対応する描画パラメータの情報を記憶する。
図2は本発明の実施の形態1による番号・描画状態対応記憶手段に記憶される番号・描画状態対応表をより詳細に示す構成図である。
番号・描画状態対応表は、描画状態番号毎に描画状態を示す描画パラメータ群を対応付ける。描画状態は描画状態番号によって一意に識別される。ここでは描画パラメータ群として描画色、フォント、テクスチャ、シェーダプログラムをシステムが設定しているものとした。各描画状態番号に対応する描画状態を決定する描画パラメータ群の種類は、描画状態ごとに異なる場合もありうる(設定されていない場合もあり、この場合は「−」で表示されている)。左側の欄は描画状態番号欄である。左から2番目の欄は描画色欄であり、GUI部品の描画に使用する色を指定する。左から3番目の欄はフォント欄であり、GUI部品の描画に使用するフォントを指定する。左から4番目の欄はテクスチャ欄であり、GUI部品の描画に使用する画像データを指定する。左から5番目の欄はシェーダプログラム欄であり、GUI部品の描画に使用するシェーダプログラムを指定する。
図3は本発明の実施の形態1によるGUI表示システムの動作手順を示すフローチャートである。
ステップ301では、ウィンドウ管理手段103が画面の再描画が必要になったことを検知する。この検知する手段については、上記非特許文献1に記載がある。例えば、各描画アプリケーション(ここではGUI部品描画処理手段105,106,107)が、再描画が必要になったことをウィンドウ管理手段103に通知する関数を実行し、この通知を受けたウィンドウ管理手段103は、画面の再描画が必要になったことを検知することができる。
ステップ302では、ウィンドウ管理手段103がGUI部品描画処理手段105,106,107のうちの一つを任意の順番で選択し、描画処理命令を通知して、各GUI部品描画処理手段の描画処理を実行する。
ステップ303では、選択されたGUI部品描画処理手段105,106,107は、ウィンドウ管理手段103の機能を用いて、GUI部品の形状に相当する表示画素に対応する描画状態番号記憶手段101の記憶領域に、GUI部品のプロパティに設定された描画状態番号を書き込む。なお、表示画素と、その表示画素に対応する描画状態番号記憶手段101の記憶領域とは一対一に対応する。
ステップ304では全てのGUI部品について描画処理を実行したかどうかをウィンドウ管理手段103が判定する。未実行のGUI部品が残っている場合はステップ302に戻る。全てのGUI部品について処理の実行を完了した場合はステップ305に進む。
ステップ305では、全てのUI部品の上記判定で全てのGUI部品について描画処理を実行したと判定された場合に、ウィンドウ管理手段103が描画実行手段104へ描画実行命令を通知して描画実行手段104の処理を開始する。描画実行手段104は、描画状態番号記憶手段101に保持された描画状態番号の一つを注目描画状態番号とする。そして描画実行手段104は、注目描画状態番号をキーとして、番号・描画状態対応表110から1の描画状態の描画パラメータ群を取得する。
ステップ306では、描画実行手段104は取得した描画パラメータ群の各描画パラメータを現在の描画状態として設定する。具体的には、ステップ305で取得した各描画パラメータをウィンドウ管理手段103が設定する。このときプログラムとしては、グラフィックライブラリの描画状態設定関数が計算機をウィンドウ管理手段103として機能させ、描画状態を設定する。この設定により、以後描画される描画状態が定まる。
ステップ307では、描画実行手段104はウィンドウ管理手段103の機能を用いて設定された描画状態と、描画状態番号記憶手段101に保持された注目する描画状態番号が記憶された表示画素に対応する記憶領域とから、フレームバッファ102内の対応する記憶領域に表示情報を書き込むことにより、GUI部品外観を描画する。このときプログラムとしては、グラフィックライブラリの描画命令関数が、計算機をウィンドウ管理手段103として機能させ、フレームバッファ102に描画状態に対応した表示情報を書き込む。
ステップ308では、GUI部品描画処理手段105、106、107が描画状態番号記憶手段101への描画に使用した全ての描画状態番号について、描画状態の取得と部品外観のフレームバッファへの書き込みが完了したかを判定する。未処理の描画状態番号が残っている場合はステップ305に戻る。全ての描画状態番号の処理を完了した場合は、処理を終了する。
GUI部品描画処理手段105,106,107で、描画状態を設定して描画状態番号記憶手段101に書き込む前に、番号・描画状態対応記憶手段110に、同じ描画状態(同じ描画パラメータの組み合わせを持つもの)が無ければ、新たな描画状態番号を設定し、この番号と、当該描画状態の描画パラメータ群を関係付けて番号・描画状態対応記憶手段110に追加して記憶することができる。次に、上記同じ描画状態があった場合は、その描画状態番号を、また同じ描画状態が無く新たな描画状態番号を設定した場合は、その新たな描画状態番号をGUI部品のプロパティとして記憶する。
描画状態番号記憶手段は固定長であるため、画面に表示するGUI部品の最大数の制限がないという従来にない顕著な効果を奏するものである。
表示画素対応の記憶領域に描画状態を保存することで、GUI部品描画処理手段105,106,107の実行順とは無関係に、描画状態の設定回数が最小となる順序で描画を行えるため、ホストCPUの資源の消費を軽減でき、描画処理を高速化できる。
描画パラメータ群と描画状態との関係を記憶する番号・描画状態対応記憶手段110を用いることによって、表示画素対応の記憶領域に描画状態を書き出した番号から容易に描画パラメータ群を求めることができので、S/Wの開発工数を少なくできる。
また、フレームバッファの表示情報、および描画状態番号記憶手段の描画状態番号情報は、前記ウィンドウ管理手段を介して読み書きされる構成としたので、ウィンドウ管理手段の機能を使え、S/W開発工数を削減できる。
また、フレームバッファの表示情報、および描画状態番号記憶手段の描画状態番号情報は、前記ウィンドウ管理手段を介して読み書きされる構成としたので、ウィンドウ管理手段の機能を使え、S/W開発工数を削減できる。
メニュー、ボタン、アイコンなどGUI部品の数が多いアプリケーションに適用するとより効果を奏する。例えば、多数の監視設備対象をアイコン等で表示するとGUI部品の数が多くなるプラント監視システムなどである。また、CPUリソースが貧弱で、メモリ容量の少ない計算機に適用するとより効果を奏する。例えば、携帯電話、携帯端末などが考えられる。
実施の形態2.
上記の実施の形態は、フレームバッファ102への読み書き、および描画状態番号記憶手段101への読み書きをする機能をウィンドウ管理手段103が有し、これらの機能の実行はウィンドウ管理手段103を介して行っていたが、このどちらか一方または両方の機能をウィンドウ管理手段103が有していなくても、実現できる。以下、フレームバッファ102、描画状態番号記憶手段101への読み書きをGUI部品描画処理手段105,106,107、および描画実行手段104から直接指令する構成について説明する。
上記の実施の形態は、フレームバッファ102への読み書き、および描画状態番号記憶手段101への読み書きをする機能をウィンドウ管理手段103が有し、これらの機能の実行はウィンドウ管理手段103を介して行っていたが、このどちらか一方または両方の機能をウィンドウ管理手段103が有していなくても、実現できる。以下、フレームバッファ102、描画状態番号記憶手段101への読み書きをGUI部品描画処理手段105,106,107、および描画実行手段104から直接指令する構成について説明する。
図12は、フレームバッファ102への読み書き、および描画状態番号記憶手段101への読み書きをウィンドウ管理手段103を介さずに直接実行するGUI表示システム構成図である。以下、実施の形態1と異なる点を説明する。
103は描画時にGUI部品描画処理手段105,106,107に描画処理命令を発行し、描画処理完了後描画実行手段104に描画実行命令を発行するウィンドウ管理手段、105,106,107はウィンドウ管理手段103からの描画指令を受けGUI部品に応じた描画内容を描画状態番号として描画状態番号記憶手段101へ記憶させるGUI部品描画処理手段、104は、ウィンドウ管理手段103の指令を受け描画状態番号記憶手段101と番号・描画状態対応記憶手段110とに記憶されている情報を元にフレームバッファ102へ画面表示情報の出力を行う描画実行手段である。ウィンドウ管理手段103は、GUI部品描画処理手段105,106,107に描画イベントを通知し、全てのGUI部品描画処理手段の描画処理が終了した後、描画実行手段104を実行するように構成する。
フレームバッファ102は、描画実行手段104が読み書き可能な情報記憶装置上のバッファメモリであり、計算機接続された表示装置に出力する画面イメージが記憶される。
描画状態番号記憶手段101は情報記憶装置上405のバッファメモリであり、フレームバッファの各表示画素に対応する整数値が記憶される記憶領域からなる。
GUI部品描画処理手段105,106,107、および描画実行手段104が行う描画状態番号記憶手段101への読み書き機能は、計算機にこの読み書き機能を実行させるプログラムとして構成できる。
また、描画実行手段104が行うフレームバッファ102を読み書きするための機能として、計算機を動作させるプログラムは、実施の形態1と同じグラフィックライブラリと呼び、描画パラメータで定まる描画状態を設定する描画状態設定関数、および描画状態に基づきフレームバッファにデータを書き込む描画命令関数から成る。
また、描画実行手段104が行うフレームバッファ102を読み書きするための機能として、計算機を動作させるプログラムは、実施の形態1と同じグラフィックライブラリと呼び、描画パラメータで定まる描画状態を設定する描画状態設定関数、および描画状態に基づきフレームバッファにデータを書き込む描画命令関数から成る。
以上のように構成することで、ウィンドウ管理手段103が、描画状態番号記憶手段101、およびフレームバッファへの読み書きをする機能を持たない場合も、ホストCPUの資源の消費を軽減した効率的な描画ができ、全体の描画処理を高速化できる。
実施の形態3.
上記の実施の形態は、図4のハードウェア構成を前提に説明したが、他のハードウェア構成でも実現できる。実施の形態3では、グラフィック専用の情報記憶装置、すなわちグラフィックメモリを有するハードウェアによる実施の形態について説明する。
上記の実施の形態は、図4のハードウェア構成を前提に説明したが、他のハードウェア構成でも実現できる。実施の形態3では、グラフィック専用の情報記憶装置、すなわちグラフィックメモリを有するハードウェアによる実施の形態について説明する。
図5は、グラフィックプロセッサ402が、専用のグラフィックメモリを有するハードウェア構成図である。これは、高性能PC、ゲーム機なでで採用される構成である。この場合、描画処理以外の情報処理をホストCPU401で行うと考えられ、そのための記憶容量を情報記憶装置に多くとり、描画処理を行うグラフィックプロセッサ402からのアクセスが早いグラフィックメモリにフレームバッファ102、描画状態番号記憶手段101を構成することにより、実行速度が向上する効果がある。なお演算処理は、上記図4の場合と同様である。
実施の形態4.
上記の実施の形態とは別のハードウェア構成として、グラフィック専用のグラフィックメモリを有し、かつグラフィックプロセッサ402が情報記憶装置405をもワークエリアとして使用できるハードウェア構成がある。以下このハードウェア構成による実施の形態について説明する。
上記の実施の形態とは別のハードウェア構成として、グラフィック専用のグラフィックメモリを有し、かつグラフィックプロセッサ402が情報記憶装置405をもワークエリアとして使用できるハードウェア構成がある。以下このハードウェア構成による実施の形態について説明する。
図6は、上記グラフィックプロセッサ402が、専用のグラフィックメモリを有するパターンの派生版で、グラフィックプロセッサがワークエリアとして情報記憶装置を使用できるハードウェア構成図である。この場合、図6のように情報記憶装置405上にフレームバッファ102、グラフィックメモリ406上に描画状態番号記憶手段101を構成することができる。また逆に、情報記憶装置405上に描画状態番号記憶手段101、グラフィックメモリ406上にフレームバッファ102を構成することによって、実行速度が向上する効果がある。演算処理は、上記図4の場合と同様である。
実施の形態5.
以上は、描画状態番号記憶手段101を通常の記憶装置上に構築することを前提に説明したが、描画対象か否かを表示画素単位で制御するためのステンシルバッファを用いて描画状態番号記憶手段101を構築することができる。ここで、ステンシルバッファとは、物体の重ね合わせなどにより描画しなくても良い領域を効率よく判定するために用意された特殊なバッファ領域である。描画する際にステンシルバッファを参照し、表示画素単位で描画を禁止したり許可したりすることができるものである。ステンシルバッファは、各表示画素に対して数ビットで構成することが多いが、本発明の描画状態番号は整数値であるので、ステンシルバッファの表示画素に対応する記憶領域に記憶することができ、ステンシルバッファのメモリを有効活用することができる。
以上は、描画状態番号記憶手段101を通常の記憶装置上に構築することを前提に説明したが、描画対象か否かを表示画素単位で制御するためのステンシルバッファを用いて描画状態番号記憶手段101を構築することができる。ここで、ステンシルバッファとは、物体の重ね合わせなどにより描画しなくても良い領域を効率よく判定するために用意された特殊なバッファ領域である。描画する際にステンシルバッファを参照し、表示画素単位で描画を禁止したり許可したりすることができるものである。ステンシルバッファは、各表示画素に対して数ビットで構成することが多いが、本発明の描画状態番号は整数値であるので、ステンシルバッファの表示画素に対応する記憶領域に記憶することができ、ステンシルバッファのメモリを有効活用することができる。
以下、描画状態番号記憶手段101をステンシルバッファとして説明する。通常ステンシルバッファに記憶される数値をステンシル番号と呼ぶが、ここでは上記の説明との対応から、描画状態番号と呼ぶ。なお、情報記憶装置上に描画状態番号記憶手段101を構成する場合は、ステンシルバッファを描画状態番号記憶手段101、ステンシル番号を描画状態番号と読み替えることができる。
図7は、ステンシルバッファとフレームバッファの対応関係を説明した図である。ステンシルバッファに記憶される数値(ここでは描画状態番号と呼ぶ)は、フレームバッファに格納される各画素の色を表す値(カラーコード)と一対一に対応する。具体的には、ステンシルバッファの特定の行と列の位置にある数値は、フレームバッファの同じ行と列の位置にある画素に対応する。
以下、ステンシルバッファ内の情報とフレームバッファ内の情報を図で示しながら、図3のステップの処理を説明する。
図8は、ステップ303の第1処理の説明図である。ステンシルバッファおよびフレームバッファのGUI部品の描画対象に対応する記憶エリアをクリアする。例えば、ステンシルバッファは0でクリアし、フレームバッファは背景色でクリアする。図8はバッファをクリアした後の状態を示している。
図9は、ステップ303の第2処理の説明図である。GUI部品描画処理手段105,106,107はGUI部品に設定された描画状態番号を部品形状に相当する表示画素に対応するステンシルバッファの記憶領域に書き込む。図9は、描画状態番号3、4、5が、GUI部品形状に相当する表示画素に対応するステンシルバッファの記憶領域に書き込まれた状態を示している。
ステップ304において、全てのGUI部品描画処理手段105,106,107を実行し終えたら、次のステップに進むが、全てのGUI部品描画処理手段105,106,107の実行を完了したことを検出する方法として、以下が考えられる。
(1)計算機をウィンドウ管理手段103として機能させるプログラムが、全てのGUI部品の描画完了(画面が更新されたことの通知)をイベント等で通知する機構を有する場合は、その通知を受け取るイベントハンドラ内で描画実行手段104に描画開始を要求する。ここでイベントは、オブジェクト指向プログラミングにおいて、オブジェクトに特定の現象(この場合は全GUI部品の描画完了)が発生した時に発する信号であり、イベントハンドラとは、上記イベントが発生した時に実行するプログラムのことである。
(2)計算機をウィンドウ管理手段103として機能させるプログラムが、(1)の機構を有さない場合は、アプリケーションプログラム側の画面再描画イベントハンドラの末尾に、描画実行手段104に描画開始を要求する関数の呼び出しを追加する。(アプリケーション側の対応が必要)
図10は、ステップ307を最初に処理する時の説明図である。描画実行手段104はステンシルバッファに保持された情報から、フレームバッファに表示情報を書き込む。ここでは、ステンシル番号3に対応する描画状態での書き込みを完了した時点でのフレームバッファの状態を示している。
図10は、ステップ307を最初に処理する時の説明図である。描画実行手段104はステンシルバッファに保持された情報から、フレームバッファに表示情報を書き込む。ここでは、ステンシル番号3に対応する描画状態での書き込みを完了した時点でのフレームバッファの状態を示している。
図11は、全てのGUI部品描画処理手段105,106,107を実行した時のステップ306の処理の説明図である。全ての描画状態番号(3, 4, 5の3つ)に対する書き込みを完了した時のフレームバッファの状態を示している。
なお、GUI部品の形状が変化していない状態で再描画する場合に、図3のステップ303を省略する構成もありうる。この場合は描画状態番号記憶手段101(ステンシルバッファ)への描画処理がなくなるため、さらに効率的な描画ができる。
以上のように、描画状態番号記憶手段101をステンシルバッファにより実現すると、通常ステンシルバッファへの入出力を管理する機能をウィンドウ管理手段が有するため、この入出力管理を行うプログラムを新たに開発する必要がなく、開発上のメリットが発生する。なお、同じことは通常の情報記憶装置上でも同様の記憶領域を設定することで実現できる。
このような構成によれば、ウィンドウ管理手段103によるGUI部品105,106,107の描画命令関数の実行順序と、フレームバッファへのGUI部品外観の描画順序とを独立でき、フレームバッファへの書き込み順を最適化することができる。
このようにGUI部品の描画関数によるGUI部品形状のステンシルバッファへの描画処理と、描画部によるUI部品外観のフレームバッファへの描画処理を独立させたことにより、GUI部品描画処理手段105,106,107の実行順序とは無関係に、描画状態の設定回数が最少となる順序でフレームバッファへの描画を行えるため、ホストCPUの消費を軽減した効率的な描画ができ、かつメモリ容量によるGUI部品数の制限が無いGUI表示システムを実現できる。
描画状態番号記憶手段をステンシルバッファ上に構成したので、H/W資源メモリを有効利用できるとともに、メモリ管理に関する開発工数を削減できる。
また、再描画時において前回の描画時から前記GUI部品の状態が変化していない場合に描画状態番号記憶手段を更新しない構成としたので、再描画処理を高速化できる。
101 描画状態番号記憶手段、102 フレームバッファ、103 ウィンドウ管理手段、104 描画実行手段、105,106,107 GUI部品描画処理手段、110 番号・描画状態対応記憶手段。
Claims (12)
- 画面に表示する表示情報を表示画素単位で保持するフレームバッファと、
各描画状態を定める少なくとも1の描画パラメータで構成される描画パラメータ群に付与した整数値の描画状態番号を表示画素毎に描画状態番号情報として記憶する描画状態番号記憶手段と、
描画処理命令を受けて、グラフィカルユーザインタフェースの部品を表示する表示画素に対応する前記描画状態番号記憶手段の記憶領域に当該グラフィカルユーザインタフェース部品に応じた前記描画パラメータ群に付与された前記描画状態番号を書き込む少なくとも1のグラフィカルユーザインタフェース部品描画処理手段と、
描画実行命令を受けて、前記描画状態番号記憶手段に記憶された前記描画状態番号に対応する前記描画パラメータ群を構成する各描画パラメータを設定し、この設定に応じた表示情報を前記描画状態番号記憶手段で同じ描画状態番号の表示画素に対応する前記フレームバッファの記憶領域に一括して書き込む描画実行手段と、
描画時に前記グラフィカルユーザインタフェース部品描画処理手段に対して描画処理命令を発行し、その後、前記描画実行手段に描画実行命令を発行するウィンドウ管理手段と、
を有することを特徴とするグラフィカルユーザインタフェース表示情報作成システム。 - 前記描画状態番号と前記描画パラメータ群との対応関係を記憶する番号・描画状態対応記憶手段を有し、
前記グラフィカルユーザインタフェース部品描画処理手段は、同じ組み合わせの描画パラメータを持つ描画パラメータ群が前記番号・描画状態対応記憶手段になければ、新しい描画状態番号を採番し、この描画状態番号と前記描画パラメータ群との対応関係を前記番号・描画状態対応記憶手段に追加して書き込み、
前記描画実行手段は、前記番号・描画状態対応記憶手段の情報に基づき前記描画状態番号に対応する前記描画パラメータ群を抽出し、この描画パラメータ群の中の各描画パラメータを設定し、この設定に応じた表示情報を前記描画状態番号記憶手段で同じ描画状態番号の表示画素に対応する前記フレームバッファの記憶領域に書き込むことを特徴とする請求項1記載のグラフィカルユーザインタフェース表示情報作成システム。 - 前記描画状態番号記憶手段は、ある画素が描画対象か否かを表示画素単位で制御するために用意されるステンシルバッファ上に構築されることを特徴とする請求項2記載のグラフィカルユーザインタフェース表示システム。
- 前記グラフィカルユーザインタフェース部品描画処理手段は、再描画時において前回の描画時から前記グラフィカルユーザインタフェース部品の状態が変化していない場合に描画状態番号記憶手段を更新しないことを特徴とする請求項3記載のグラフィカルユーザインタフェース表示情報作成システム。
- 前記フレームバッファの表示情報は、前記ウィンドウ管理手段を介して読み書きされることを特徴とする請求項1ないし4のいずれかに記載のグラフィカルユーザインタフェース表示情報作成システム。
- 前記描画状態番号記憶手段の描画状態番号情報は、前記ウィンドウ管理手段を介して読み書きされることを特徴とする請求項1ないし5のいずれかに記載のグラフィカルユーザインタフェース表示情報作成システム。
- グラフィカルユーザインタフェースを有する計算機を、
画面に表示する表示情報を表示画素単位で保持するフレームバッファと、
各描画状態を定める少なくとも1の描画パラメータで構成される描画パラメータ群に付与した整数値の描画状態番号を表示画素毎に描画状態番号情報として記憶する描画状態番号記憶手段と、
描画処理命令を受けて、グラフィカルユーザインタフェースの部品を表示する表示画素に対応する前記描画状態番号記憶手段の記憶領域に当該グラフィカルユーザインタフェース部品に応じた前記描画パラメータ群に付与された前記描画状態番号を書き込む少なくとも1のグラフィカルユーザインタフェース部品描画処理手段と、
描画実行命令を受けて、前記描画状態番号記憶手段に記憶された前記描画状態番号に対応する前記描画パラメータ群を構成する各描画パラメータを設定し、この設定に応じた表示情報を前記描画状態番号記憶手段で同じ描画状態番号の表示画素に対応する前記フレームバッファの記憶領域に一括して書き込む描画実行手段と、
描画時に前記グラフィカルユーザインタフェース部品描画処理手段に対して描画処理命令を発行し、その後、前記描画実行手段に描画実行命令を発行するウィンドウ管理手段と、
として機能させるためのグラフィカルユーザインタフェース表示情報作成プログラム。 - 前記描画状態番号と前記描画パラメータ群との対応関係を記憶する番号・描画状態対応記憶手段を有し、
前記グラフィカルユーザインタフェース部品描画処理手段は、同じ組み合わせの描画パラメータを持つ描画パラメータ群が前記番号・描画状態対応記憶手段になければ、新しい描画状態番号を採番し、この描画状態番号と前記描画パラメータ群との対応関係を前記番号・描画状態対応記憶手段に追加して記憶し、
前記描画実行手段は、前記番号・描画状態対応記憶手段の前記対応関係情報に基づき前記描画状態番号に対応する前記描画パラメータ群を抽出し、この描画パラメータ群の中の各描画パラメータを設定し、この設定に応じた表示情報を前記描画状態番号記憶手段で同じ描画状態番号の表示画素に対応する前記フレームバッファの記憶領域に書き込むように機能させるための請求項7記載のグラフィカルユーザインタフェース表示情報作成プログラム。 - 前記描画状態番号記憶手段は、ある画素が描画対象か否かを表示画素単位で制御するために用意されるステンシルバッファ上に構築されることを特徴とする請求項8記載のグラフィカルユーザインタフェース表示情報作成プログラム。
- 前記グラフィカルユーザインタフェース部品描画処理手段は、再描画時において前回の描画時から前記グラフィカルユーザインタフェース部品の状態が変化していない場合に描画状態番号記憶手段を更新しないことを特徴とする請求項9記載のグラフィカルユーザインタフェース表示情報作成プログラム。
- 前記フレームバッファは、前記ウィンドウ管理手段を介して読み書きされることを特徴とする請求項7ないし10のいずれかに記載のグラフィカルユーザインタフェース表示情報作成プログラム。
- 前記描画状態番号記憶手段は、前記ウィンドウ管理手段を介して読み書きされることを特徴とする請求項7ないし11のいずれかに記載のグラフィカルユーザインタフェース表示情報作成プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005292300A JP4715435B2 (ja) | 2005-10-05 | 2005-10-05 | グラフィカルユーザインタフェース表示情報作成システムおよびプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005292300A JP4715435B2 (ja) | 2005-10-05 | 2005-10-05 | グラフィカルユーザインタフェース表示情報作成システムおよびプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2007101933A JP2007101933A (ja) | 2007-04-19 |
JP4715435B2 true JP4715435B2 (ja) | 2011-07-06 |
Family
ID=38028934
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005292300A Expired - Fee Related JP4715435B2 (ja) | 2005-10-05 | 2005-10-05 | グラフィカルユーザインタフェース表示情報作成システムおよびプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4715435B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010016299A1 (ja) * | 2008-08-07 | 2010-02-11 | 三菱電機株式会社 | 半導体集積回路装置、設備機器制御装置、及び機器状態表示装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6115188A (ja) * | 1984-06-30 | 1986-01-23 | 株式会社東芝 | 図形描画表示装置 |
JPH10161636A (ja) * | 1996-11-29 | 1998-06-19 | Hitachi Ltd | グラフィックス表示装置 |
-
2005
- 2005-10-05 JP JP2005292300A patent/JP4715435B2/ja not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6115188A (ja) * | 1984-06-30 | 1986-01-23 | 株式会社東芝 | 図形描画表示装置 |
JPH10161636A (ja) * | 1996-11-29 | 1998-06-19 | Hitachi Ltd | グラフィックス表示装置 |
Also Published As
Publication number | Publication date |
---|---|
JP2007101933A (ja) | 2007-04-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1399814B1 (en) | System and method for displaying current images of virtual machine environments | |
US6573913B1 (en) | Repositioning and displaying an object in a multiple monitor environment | |
JP5956770B2 (ja) | タイルベースのグラフィックスシステム及びこのようなシステムの動作方法 | |
WO2021248705A1 (zh) | 图像渲染方法、装置、计算机程序和可读介质 | |
KR102265126B1 (ko) | 사용자 인터페이스 요소 구성 기법 | |
JPH076015A (ja) | 大きさを調整できるウインドウエレメント | |
US5027291A (en) | Application exit for potentially pickable primitives in a graphics system | |
US20030210267A1 (en) | Systems and methods for providing asynchronous client rendering in a graphical user interface (GUI) environment | |
WO2018120992A1 (zh) | 一种窗口渲染方法及终端 | |
JP3862336B2 (ja) | 画像編集方法及び装置 | |
GB2574660A (en) | Graphics rendering | |
US8471870B2 (en) | Vector-based magnified pointer | |
JP2010175638A (ja) | 表示装置及び表示装置の表示方法 | |
JP2010015549A (ja) | 表示制御装置、表示制御方法及びプログラム | |
JP4715435B2 (ja) | グラフィカルユーザインタフェース表示情報作成システムおよびプログラム | |
JP2009252083A (ja) | 情報処理装置、ウィンドウ表示方法および表示制御プログラム | |
WO2010087132A1 (ja) | 状態表示装置及び状態表示装置の表示方法 | |
JP2008165408A (ja) | 情報処理装置、その制御方法及びプログラム | |
US10169902B2 (en) | Application launching animation for connecting a tile and surface | |
CN115033226A (zh) | 页面显示方法、装置、终端设备及计算机可读存储介质 | |
US20180143747A1 (en) | User interface device and method for displaying screen of user interface device | |
US20130198597A1 (en) | Systems and Methods for Displaying and Editing State-Specific Link Attributes | |
WO2014112060A1 (ja) | プログラマブルコントローラシステム、プログラマブル表示器、支援装置、プログラム | |
JP2009169548A (ja) | 情報処理装置、そのマルチウィンドウ表示方法及びプログラム | |
JP2012123742A (ja) | 情報処理装置およびその動作方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080204 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20110301 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110314 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140408 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |