JPH1139130A - マルチウィンドウ表示方法および装置 - Google Patents

マルチウィンドウ表示方法および装置

Info

Publication number
JPH1139130A
JPH1139130A JP19828597A JP19828597A JPH1139130A JP H1139130 A JPH1139130 A JP H1139130A JP 19828597 A JP19828597 A JP 19828597A JP 19828597 A JP19828597 A JP 19828597A JP H1139130 A JPH1139130 A JP H1139130A
Authority
JP
Japan
Prior art keywords
window
cell
mask pattern
frame memory
unit
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.)
Withdrawn
Application number
JP19828597A
Other languages
English (en)
Inventor
Tomohiro Kobayashi
智博 小林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP19828597A priority Critical patent/JPH1139130A/ja
Publication of JPH1139130A publication Critical patent/JPH1139130A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Digital Computer Display Output (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

(57)【要約】 【課題】 ウィンドウ数に応じた描画用フレームメモリ
の動的等分割を行なうことなく、描画用フレームメモリ
の領域をウィンドウのサイズに応じて適宜割り当てるこ
とができるようにして、描画用フレームメモリの利用効
率の向上をはかり、より多くのウィンドウの表示を実現
する。 【解決手段】 表示部1に表示すべき複数のウィンドウ
の画像を描画用フレームメモリ2上にそれぞれ描画して
から、描画用フレームメモリ2上の各ウィンドウの画像
を表示用フレームメモリ4上に転送して表示画像を作成
し、表示用フレームメモリ4上の画像を表示部2で表示
する際に、描画用フレームメモリ2の領域を複数のセル
に予め等分割しておき、ウィンドウのサイズに応じて複
数のセルの中から1以上のセルをそのウィンドウの描画
領域として割り当てる。

Description

【発明の詳細な説明】
【0001】(目次) 発明の属する技術分野 従来の技術(図24〜図28) 発明が解決しようとする課題 課題を解決するための手段(図1) 発明の実施の形態(図2〜図23) 発明の効果
【0002】
【発明の属する技術分野】本発明は、例えばワークステ
ーション等の表示画面上に複数のウィンドウを表示する
ためのマルチウィンドウ表示方法および装置に関する。
【0003】
【従来の技術】図24は一般的なマルチウィンドウ表示
装置の構成を示すブロック図であり、この図24に示す
ように、マルチウィンドウ表示装置100は、CRT
(表示部)200に複数のウィンドウを表示するもの
で、描画部110,描画用フレームメモリ120,画像
転送部130,表示用フレームメモリ140およびウィ
ンドウ管理部150から構成されている。
【0004】ここで、描画部110は、CRT200に
表示すべき各ウィンドウの全体画像を描画用フレームメ
モリ120上に描画するものであり、画像転送部130
は、描画用フレームメモリ120における各ウィンドウ
の画像を表示用フレームメモリ140に転送し、この表
示用フレームメモリ140上に、CRT200で実際に
表示されるべき画像(複数のウィンドウ画像を画面上の
所定位置に配置して重ね合わせた画像)を作成するもの
である。
【0005】ウィンドウ管理部150は、アプリケーシ
ョンからのウィンドウ獲得要求やリサイズ要求や解放要
求を受け、描画部110および画像転送部130を制御
することにより、CRT200でのウィンドウの表示状
態を制御するものである。また、このウィンドウ管理部
150は、図26〜図28にそれぞれ示す分割テーブル
151,状態テーブル152およびセルテーブル153
を有しており、これらのテーブル151〜153を用い
て、描画部110による描画用フレームメモリ120へ
の描画動作を制御している。なお、ウィンドウ管理部1
50による従来のウィンドウ管理手法の詳細について
は、図25〜図28を参照しながら後述する。
【0006】このような構成のマルチウィンドウ表示装
置100によりCRT200にウィンドウを表示する際
には、まず、アプリケーションは、ウィンドウ管理部1
50に対してウィンドウ獲得要求を出力する。このと
き、表示すべきウィンドウの幅(横)および高さ(縦)
が指定される。ウィンドウ管理部150は、指定された
幅および高さに応じ、後述するごとくテーブル151〜
153を用いて、描画用フレームメモリ120上にその
ウィンドウ用の領域を獲得し、そのウィンドウについて
の識別子をアプリケーションに通知する。
【0007】ついで、アプリケーションは、ウィンドウ
の識別子を含む図形データを描画部110に転送する。
描画部110は、指定された識別子に対応する描画用フ
レームメモリ120上の領域に、図形を描画する。そし
て、画像転送部130は、任意のタイミングで描画用フ
レームメモリ120上のウィンドウ描画領域を、表示用
フレームメモリ140上の所定領域(ウィンドウを表示
すべき位置)に転送・複写する。表示用フレームメモリ
140上の画像データはそのままCRT200で表示さ
れる。
【0008】次に、ウィンドウ管理部150による従来
のウィンドウ管理手法について説明する。従来、ウィン
ドウ管理部150は、アプリケーションからのウィンド
ウ獲得要求を受けたタイミングで、描画用フレームメモ
リ120の領域を、必要に応じて規則的に複数のセルに
分割し、そのセルのうちの1つを、新たなウィンドウを
描画するための領域として割り当てている。
【0009】図25〜図28を参照しながら、より具体
的に説明する。なお、描画用フレームメモリ120は、
図25(a)〜図25(d)に示すごとく、例えば横2
048×縦1024の画素(描画点)で構成されている
ものとする。また、この描画用フレームメモリ120の
左上角部の画素を原点(0,0)、左右方向をx方向、
上下方向をy方向とし、描画用フレームメモリ120上
の二次元位置を、原点位置から右方向への画素数をx座
標、原点位置から下方向への画素数をy座標として表現
する。例えば、描画用フレームメモリ120の右上角部
の画素の座標は(2047,0)、左下角部の画素の座
標は(0,1023)、右下角部の画素の座標は(20
47,1023)となる。
【0010】アプリケーションから最初のウィンドウの
獲得要求があった場合には、図25(a)に示すよう
に、描画用フレームメモリ120の領域は分割されるこ
となく(分割数=1)、その全領域を使用することがで
きる。2つ目のウィンドウの獲得要求があった場合に
は、描画用フレームメモリ120の領域は、例えば図2
5(b)に示すように、座標(1024,0)を通る縦
方向のラインにより左右の2つの領域(セル)に等分割
され、各セルに対してウィンドウの描画が行なわれる。
このとき、2つのウィンドウのサイズがいずれも各セル
のサイズ1024×1024以下であることが、分割・
割当を許可するための条件となる。
【0011】3つ目のウィンドウの獲得要求があった場
合には、描画用フレームメモリ120の領域は、例えば
図25(c)に示すように、座標(0,512)を通る
横方向のラインにより上下の領域に等分割され、4つの
同一サイズのセルに分割される。そして、新たに増えた
2つのセルのうちの一方が3つ目のウィンドウのための
描画領域として割り当てられる。このとき、3つのウィ
ンドウのサイズがいずれも各セルのサイズ1024×5
12以下であることが、分割を許可するための条件とな
る。
【0012】4つ目のウィンドウの獲得要求があった場
合には、そのサイズが1024×512以下であれば、
新たに増えた2つのセルのうちの残りの一つが4つ目の
ウィンドウのために割り当てられる。さらに、5つ目の
ウィンドウの獲得要求があった場合には、描画用フレー
ムメモリ120の領域は8つのセルに等分割され、以
下、同様に、9つ目のウィンドウの獲得要求があった場
合には、描画用フレームメモリ120の領域は16のセ
ルに等分割され、描画用フレームメモリ120の領域
は、図25(d)に示すように、最大32のセルに等分
割される。
【0013】ただし、いずれの場合も、既に描画用フレ
ームメモリ120の各セル内に描画されているウィンド
ウのサイズと新たに獲得要求のあったウィンドウのサイ
ズとの全てが分割後のセルサイズ以下であることが、新
たな分割を許可する条件である。なお、図25(a)〜
図25(d)において、描画用フレームメモリ120を
分割して得られた各セル内に記載された数字(0〜3
1)は、そのセルを割り当てられたウィンドウに付与さ
れる識別子を示している。
【0014】ウィンドウ管理部150は、上述のような
描画用フレームメモリ120の領域の分割処理および割
当処理を行なうべく、分割テーブル151,状態テーブ
ル152およびセルテーブル153を有している。分割
テーブル151には、図26に示すように、分割数とセ
ルサイズとの対応関係が保持され、状態テーブル152
には、図27に示すように、現在の分割数と使用されて
いるセルの数とが保持されている。この図27では、分
割数が1で且つ使用セル数が0の状態(即ち未だウィン
ドウ表示を行なっていない状態)が示されている。
【0015】また、セルテーブル153には、図28に
示すように、セルの識別子と、その識別子をもつセルに
割り当てられたウィンドウの実際のサイズ(アプリケー
ションから指定されたサイズ)と、その識別子をもつセ
ルの描画用フレームメモリ120上での位置(セルの右
上角部の画素の座標)とが対応付けられて保持されてい
る。
【0016】ウィンドウ管理部150は、これらのテー
ブル151〜153を用いて、次のように動作する。ま
ず、アプリケーションからウィンドウの獲得要求がある
と、ウィンドウ管理部150は、状態テーブル152を
参照して現在の分割数と使用セル数とを比較する。分割
数の方が大きい場合には、未だ使用されていないセルが
存在するので、そのセルを割り当てる。分割数と使用セ
ル数とが等しい場合には、次の分割を行なって未使用セ
ルを作成し、そのうちの一つを割り当てる。
【0017】このとき、前述した通り、新たなのウィン
ドウの指定サイズとともに現存する全てのウィンドウの
実サイズが次の分割で得られるセルのサイズ以下である
ことが、次の分割を許可する条件となる。そこで、ウィ
ンドウ管理部150は、次の分割数でのセルサイズを分
割テーブル151から得るとともに、セルテーブル15
3を参照して現存する全てのウィンドウの実サイズを得
て、これらの比較を行ない、前記条件を満たすか否かを
判断している。
【0018】一方、アプリケーションからウィンドウの
リサイズ要求(描画領域割当済のウィンドウのサイズを
変更する要求)があった場合、ウィンドウ管理部150
は、分割テーブル151から現在の分割数でのセルサイ
ズを参照し、そのセルサイズとアプリケーションの要求
サイズとを比較して、要求サイズがセルサイズ以下であ
ればリサイズを実行し、セルテーブル153において、
そのウィンドウ(セル)の識別子に対応するサイズをリ
サイズ後の新たなサイズに更新する。
【0019】
【発明が解決しようとする課題】しかしながら、上述し
た従来の従来のウィンドウ管理手法では、以下のような
課題があった。 〔1〕アプリケーションから最初に大きなサイズのウィ
ンドウの獲得要求があり、そのウィンドウに対して描画
用フレームメモリ120の領域を割り当ててしまうと、
それ以後の分割が制限され、どんなに小さなサイズのウ
ィンドウに対しても描画用フレームメモリ120の領域
を割り当てることができなくなる。例えば、図25
(a)に示す状態で、横のサイズが1024を超えるウ
ィンドウの獲得要求があり、そのウィンドウに描画用フ
レームメモリ120の領域を割り当ててしまうと、次の
分割(2分割)を行なえなくなる。従って、次にどんな
サイズのウィンドウの獲得要求があっても、描画用フレ
ームメモリ120の領域を割り当てることができず、2
つ目以降のウィンドウの表示を一切行なえず、描画用フ
レームメモリ120の利用効率が極めて悪い。
【0020】〔2〕描画用フレームメモリ120におい
て等分割されたセルのサイズよりも大きな領域を獲得す
ることができず、等分割されたセルのサイズよりも大き
なウィンドウを表示できない。例えば、実際には各セル
にそのセルサイズよりも小さなウィンドウが描画されて
おり、セル区画を無視すればセルサイズよりも大きな領
域を獲得できる場合であっても、セル区画を無視した領
域の獲得・割当を行なえないので、やはり描画用フレー
ムメモリ120の利用効率が極めて悪い。
【0021】〔3〕リサイズを行なう際も、その時点で
描画用フレームメモリ120において等分割されている
セルのサイズ以下のリサイズしか行なえず、そのセルサ
イズを超えるリサイズは一切行なうことができず、描画
用フレームメモリ120の利用効率が極めて悪い。本発
明は、このような課題に鑑み創案されたもので、ウィン
ドウ数に応じた描画用フレームメモリの動的等分割を行
なうことなく、描画用フレームメモリの領域をウィンド
ウのサイズに応じて適宜割り当てることができるように
して、描画用フレームメモリの利用効率の向上をはか
り、より多くのウィンドウの表示を実現した、マルチウ
ィンドウ表示方法および装置を提供することを目的とす
る。
【0022】
【課題を解決するための手段】上記目的を達成するため
に、本発明のマルチウィンドウ表示方法(請求項1)
は、表示部に表示すべき複数のウィンドウの画像を描画
用フレームメモリ上にそれぞれ描画してから、描画用フ
レームメモリ上の各ウィンドウの画像を表示用フレーム
メモリ上に転送して表示画像を作成し、表示用フレーム
メモリ上の画像を表示部で表示する際に、描画用フレー
ムメモリの領域を複数のセルに予め等分割しておき、ウ
ィンドウのサイズに応じて複数のセルの中から1以上の
セルをそのウィンドウの描画領域として割り当てること
を特徴としている。
【0023】このとき、複数のセルの割当状況を管理
し、ウィンドウの獲得要求を受けるとそのウィンドウの
サイズに応じたマスクパターン(セルサイズを最小単位
とするパターン)を生成し、前記割当状況を参照しなが
ら未割当のセルのパターンと生成されたマスクパターン
とのマッチングを行ない、マスクパターンとマッチする
未割当のセルのパターンが存在する場合、その未割当の
セルをウィンドウの描画領域として割り当てる(請求項
2)。
【0024】また、複数のセルの割当状況を管理し、描
画領域割当済のウィンドウに対するリサイズ要求を受け
るとリサイズ後のサイズに応じたマスクパターン(セル
サイズを最小単位とするパターン)を生成し、リサイズ
後のマスクパターンがリサイズ前よりも大きい場合、リ
サイズ前の複数のセルの割当状況を一時的に待避させて
おいてから、リサイズ前のウィンドウに割り当てられた
セルを未割当に書き換えた割当状況を参照しながら、未
割当のセルのパターンとリサイズ後のマスクパターンと
のマッチングを行ない、リサイズ後のマスクパターンと
マッチする未割当のセルのパターンが存在する場合、そ
の未割当のセルをリサイズ後の描画領域として割り当て
る一方、リサイズ後のマスクパターンとマッチする未割
当のセルのパターンが存在しない場合、一時的に待避さ
せておいたリサイズ前の割当状況に戻す(請求項3)。
【0025】一方、図1は本発明の原理ブロック図であ
り、この図1に示すように、本発明のマルチウィンドウ
表示装置は、表示部1,描画用フレームメモリ2,描画
部3,表示用フレームメモリ4,画像転送部5およびウ
ィンドウ管理部6から構成されている。ここで、表示部
1は、複数のウィンドウを表示するものであり、描画用
フレームメモリ2は、表示部1に表示すべき複数のウィ
ンドウの画像をそれぞれ描画されるもので、この描画用
フレームメモリ2には、描画部3により各ウィンドウの
全体画像が描画される。
【0026】また、表示用フレームメモリ4は、描画用
フレームメモリ2上の各ウィンドウの画像を転送されて
表示部1で実際に表示される表示画像を複写されるもの
で、この表示用フレームメモリ4には、画像転送部5に
より描画用フレームメモリ2上の各ウィンドウの画像が
所定位置に転送される。そして、ウィンドウ管理部6
は、描画部3および画像転送部5を制御することにより
表示部1での複数のウィンドウの表示状態を制御するも
ので、特に、本発明のウィンドウ管理部6は、描画用フ
レームメモリ2の領域を、複数のセルに予め等分割した
状態で管理し、ウィンドウのサイズに応じて、複数のセ
ルの中から1以上のセルをそのウィンドウの描画領域と
して割り当てるものである(請求項4)。
【0027】このとき、ウィンドウ管理部6を、複数の
セルの割当状況を登録されて保持する状態レジスタと、
ウィンドウのサイズに応じたマスクパターン(セルサイ
ズを最小単位とするパターン)を予め保持するパターン
テーブルと、ウィンドウの獲得要求を受けるとそのウィ
ンドウのサイズに応じたマスクパターンをパターンテー
ブルから読み出し状態レジスタにおける前記割当状況を
参照しながら未割当のセルのパターンとマスクパターン
とのマッチングを行なうマッチング処理部と、このマッ
チング処理部によるマッチングの結果、マスクパターン
とマッチする未割当のセルのパターンが存在する場合、
その未割当のセルをウィンドウの描画領域として割り当
て状態レジスタの割当状況を更新するセル割当部とから
構成してもよい(請求項5)。
【0028】また、ウィンドウ管理部6を、前述と同様
の状態レジスタおよびパターンテーブルのほか、以下の
ような待避用レジスタ,判定部,待避動作部,書換え
部,マッチング処理部,セル割当部および復元動作部を
そなえて構成してもよい(請求項6)。ここで、待避用
レジスタは、状態レジスタにおける前記割当状況を一時
的に保持するものである。
【0029】判定部は、描画領域割当済のウィンドウに
対するリサイズ要求を受けると、リサイズ後のサイズに
応じたマスクパターンをパターンテーブルから読み出
し、リサイズ後のマスクパターンがリサイズ前よりも大
きいか否かを判定するものである。待避動作部は、判定
部によりリサイズ後のマスクパターンがリサイズ前より
も大きいと判定された場合、状態レジスタに登録されて
いるリサイズ前の割当状況を待避用レジスタに一時的に
待避させるものである。
【0030】書換え部は、待避動作部による待避動作後
に、状態レジスタにおいて、リサイズ前のウィンドウに
割り当てられたセルを未割当に書き換えるものである。
マッチング処理部は、書換え部により書き換えられた状
態レジスタの割当状況を参照しながら、未割当のセルの
パターンとパターンテーブルから読み出されたリサイズ
後のマスクパターンとのマッチングを行なうものであ
る。
【0031】セル割当部は、マッチング処理部によるマ
ッチングの結果、リサイズ後のマスクパターンとマッチ
する未割当のセルのパターンが存在する場合、その未割
当のセルをウィンドウのリサイズ後の描画領域として割
り当て状態レジスタの割当状況を更新するものである。
復元動作部は、マッチング処理部によるマッチングの結
果、リサイズ後のマスクパターンとマッチする未割当の
セルのパターンが存在しない場合、待避用レジスタに一
時的に待避させておいたリサイズ前の割当状況を状態レ
ジスタに戻すものである。
【0032】上述した本発明のマルチウィンドウ表示方
法(請求項1)やマルチウィンドウ表示装置(請求項
4)では、描画用フレームメモリ2の領域を複数のセル
に静的に予め等分割しておくことにより、従来のような
ウィンドウ数に応じた描画用フレームメモリの動的等分
割を行なう必要がなくなり、描画用フレームメモリ2の
領域が、ウィンドウのサイズに応じて、適宜、セル単位
で割り当てられるようになる。
【0033】特に、ウィンドウの獲得要求があった場
合、本発明では従来のような分割許可条件による制限が
無くなるので、マスクパターンによる検索(マッチング
処理)の結果、描画用フレームメモリ2上に、ウィンド
ウのサイズに応じた未割当のセル(空き領域)が存在す
れば、ウィンドウの大小や獲得順序に関係なく常にウィ
ンドウの描画領域を獲得することができる(請求項2,
5)。
【0034】また、ウィンドウのサイズが大きくなるリ
サイズ要求があった場合でも、本発明では従来のごとく
リサイズ要求時点での分割セルサイズによる制限を受け
ることがなくなるので、描画用フレームメモリ2上に、
リサイズ後のウィンドウのサイズに応じた未割当のセル
(空き領域)が存在すれば、常にリサイズ後の描画領域
を獲得でき、リサイズを行なうことができる。なお、リ
サイズ後のウィンドウのサイズに応じた未割当のセル
(空き領域)が存在しない場合には、マスクパターンに
よる検索時(マッチング処理時)に書き換えられた割当
状況から元の割当状況に戻すことができる(請求項3,
6)。
【0035】
【発明の実施の形態】以下、図面を参照して本発明の実
施の形態を説明する。図1は本発明の一実施形態として
のマルチウィンドウ表示装置の構成を示すブロック図で
あり、この図1に示すように、本実施形態のマルチウィ
ンドウ表示装置10は、CRT(表示部)20に複数の
ウィンドウを表示するもので、従来とほぼ同様の描画部
11,描画用フレームメモリ12,画像転送部13,表
示用フレームメモリ14およびウィンドウ管理部15か
ら構成されている。
【0036】ここで、描画部11は、アプリケーション
からの図形データに基づいてCRT20に表示すべき各
ウィンドウの全体画像を描画用フレームメモリ12上に
描画するものであり、画像転送部13は、描画用フレー
ムメモリ12における各ウィンドウの画像を表示用フレ
ームメモリ14に転送し、この表示用フレームメモリ1
4上に、CRT20で実際に表示されるべき画像(複数
のウィンドウ画像を画面上の所定位置に重ね合わせて配
置した画像)を複写・生成するものである。
【0037】ウィンドウ管理部15は、アプリケーショ
ンからのウィンドウ獲得要求やリサイズ要求や解放要求
を受け、描画部11および画像転送部13を制御するこ
とにより、CRT20でのウィンドウの表示状態を制御
するもので、特に、本実施形態では、描画用フレームメ
モリ12の領域を、複数のセルに予め等分割した状態で
管理し、ウィンドウのサイズに応じて、複数のセルの中
から1以上のセルをそのウィンドウの描画領域として割
り当てるものである。
【0038】本実施形態の描画用フレームメモリ12
は、従来と同様、例えば横2048×縦1024の画素
(描画点)で構成され、その描画領域は、図4に示すよ
うに、横8×縦4の32個のセル(セルサイズは横25
6×縦256)に予め静的に等分割されている。また、
図4において、描画用フレームメモリ12を分割して得
られた各セル内に記載された数字(0〜31)は、その
セルの指標を示すもので、後述するごとく、描画用フレ
ームメモリ12上の領域を割り当てられたウィンドウの
識別子として用いられる。
【0039】なお、図4に示すように、最上段の8個の
セルには左方から順に“0”〜“7”のセル指標が付与
され、上から2段目の8個のセルには左方から順に
“8”〜“15”のセル指標が付与され、上から3段目
の8個のセルには左方から順に“16”〜“23”のセ
ル指標が付与され、最下段の8個のセルには左方から順
に“24”〜“31”のセル指標が付与されている。
【0040】次に、図3を参照しながら、本実施形態の
ウィンドウ管理部15の詳細な構成について説明する。
本実施形態のウィンドウ管理部15は、図3に示すよう
に、状態レジスタ15a,パターンテーブル15b,セ
ルテーブル15c,マッチング処理部15d,セル割当
部15e,待避用レジスタ15f,判定部15g,待避
動作部15h,書換え部15i,復元動作部15jおよ
びエラー通知部15kから構成されている。
【0041】状態レジスタ15aは、複数のセルの割当
状況を登録されて保持するもので、本実施形態では、図
5に示すごとく、ビット番号0〜31を付与された32
ビットのレジスタとして構成されている。この状態レジ
スタ15aにおいて、ビット番号0〜31を付与された
各ビットには、セル指標0〜31を付与された各セル
(図4参照)の使用/未使用が0/1情報で設定されて
いる。この状態レジスタ15aにより、描画用フレーム
メモリ12における各セルの割当状況(使用中か否か)
が管理されるようになっている。
【0042】つまり、指標iを付与されたセルが使用状
態(描画領域として割り当てられている状態)であれ
ば、状態レジスタ15aのビット番号iのビットには
“0”が設定される一方、指標jを付与されたセルが未
使用状態〔描画領域として未割当状態(空きの状態)〕
であれば、状態レジスタ15aのビット番号jのビット
には“1”が設定される。
【0043】パターンテーブル15bは、ウィンドウの
サイズに応じたマスクパターン(セルサイズを最小単位
とするパターン)を予め保持するもので、本実施形態で
は、図6に示すごとく、指定された横サイズおよび縦サ
イズに応じた32種類の矩形のマスクパターンMP0〜
MP31が、パターンテーブル15bに保持されてい
る。つまり、ウィンドウの横サイズおよび縦サイズを指
定することにより、このパターンテーブル15bから
は、そのウィンドウのサイズに応じたマスクパターンが
読み出されるようになっている。なお、本実施形態にお
いて、実際の各マスクパターンは、図13を参照しなが
ら後述するごとく、1〜32ビットの2進数の値で表現
される。
【0044】図6に示すように、例えばウィンドウの横
サイズが描画用フレームメモリ12の横サイズの1/8
以下(256画素以下のサイズ)で且つウィンドウの縦
サイズが描画用フレームメモリ12の縦サイズの1/4
以下(256画素以下のサイズ)である場合には、1×
1のセルパターン(256画素×256画素)が、マス
クパターンMP0としてパターンテーブル15bから読
み出される。
【0045】一般化して記述すると、ウィンドウの横サ
イズが描画用フレームメモリ12の横サイズのi/8以
下(256×i画素以下のサイズ)で且つウィンドウの
縦サイズが描画用フレームメモリ12の縦サイズのj/
4以下(256×j画素以下のサイズ)である場合に
は、i×jのセルパターン〔(256×i)画素×(2
56×j)画素〕が、マスクパターンMP〔(i−1)
+(j−1)・8〕=MP(i+8j−9)としてパタ
ーンテーブル15bから読み出される。ただし、iは1
〜8の自然数であり、jは1〜4の自然数である。
【0046】セルテーブル15cは、描画用フレームメ
モリ12上でウィンドウの描画領域が獲得された場合
に、そのウィンドウに割り当てられた描画領域に関する
情報、即ち、セル指標(アプリケーションにウィンドウ
識別子として通知される指標)とマスクパターンとを対
にして保持するもので、図7に示すように、最大、分割
数n(本実施形態ではn=32)分のセル指標とマスク
パターンとの対が保持されるようになっている。
【0047】ここで、より具体的に、描画用フレームメ
モリ12上に、例えば図8に示すような4種類のウィン
ドウ(Win)A〜Dのための描画領域が獲得された場合に
ついて説明する。図8に示す状態では、状態レジスタ1
5aにおいて、ビット番号0〜19および24〜27の
ビットには“0”が設定され、その他のビットには
“1”が設定される。また、ウィンドウA〜Dのマスク
パターンはそれぞれMP10,MP10,MP9,MP
11であり、ウィンドウA〜Dの識別子としては各ウィ
ンドウA〜Dを割り当てられたセルパターンにおける左
上セルの指標0,3,16,6が用いられる。さらに、
セルテーブル15cには、ウィンドウA〜Dについて、
それぞれ、セル指標0とマスクパターンMP10;セル
指標3とマスクパターンMP10;セル指標16とマス
クパターンMP11;セル指標6とマスクパターンMP
9の各対が保持されることになる。
【0048】さて、マッチング処理部15dは、アプリ
ケーションからウィンドウの獲得要求を受けるとそのウ
ィンドウのサイズに応じたマスクパターンをパターンテ
ーブル15bから読み出し、状態レジスタ15aにおけ
る割当状況を参照しながら未割当のセルのパターンとマ
スクパターンとのマッチングを行なうものである。セル
割当部15eは、マッチング処理部15dによるマッチ
ングの結果、マスクパターンとマッチする未割当のセル
のパターンが存在する場合、その未割当のセルをウィン
ドウの描画領域として割り当て、その描画領域の左上セ
ルの指標をそのウィンドウの識別子としてアプリケーシ
ョンに通知し、状態レジスタ15aの割当状況を更新す
るとともに、新たに割り当てられた描画領域の情報〔セ
ル指標(ウィンドウ識別子)およびマスクパターン〕を
セルテーブル15cに登録するものである。
【0049】待避用レジスタ15fは、リサイズ時に用
いられるもので、状態レジスタ15aにおける割当状況
を一時的に保持するものである。判定部15gは、描画
領域割当済のウィンドウに対するリサイズ要求を受ける
と、リサイズ後のサイズに応じたマスクパターンをパタ
ーンテーブル15bから読み出し、リサイズ後のマスク
パターンがリサイズ前(元のマスクパターン)と等しい
かを判定するとともに、リサイズ後のマスクパターンが
リサイズ前よりも大きいか否かを判定するものである。
【0050】待避動作部15hは、判定部15gにより
リサイズ後のマスクパターンがリサイズ前よりも大きい
と判定された場合、状態レジスタ15aに登録されてい
るリサイズ前の割当状況を待避用レジスタ15fに一時
的に待避させるものである。書換え部15iは、待避動
作部15hによる待避動作後に、状態レジスタ15aに
おいて、リサイズ前のウィンドウに割り当てられたセル
に対応するビットを未割当(“1”)に書き換えるもの
である。
【0051】そして、前述したマッチング処理部15d
は、リサイズ時には、書換え部15iにより書き換えら
れた状態レジスタ15aの割当状況を参照しながら、未
割当のセルのパターンとパターンテーブル15bから読
み出されたリサイズ後のマスクパターンとのマッチング
を行なうように機能する。また、前述したセル割当部1
5eは、リサイズ時には、マッチング処理部15dによ
るマッチングの結果、リサイズ後のマスクパターンとマ
ッチする未割当のセルのパターンが存在する場合、その
未割当のセルをウィンドウのリサイズ後の描画領域とし
て割り当て、その描画領域の左上セルの指標をそのウィ
ンドウの新たな識別子としてアプリケーションに通知
し、状態レジスタ15aの割当状況を更新するととも
に、リサイズ処理により割り当てられた描画領域の情報
〔セル指標(ウィンドウ識別子)およびマスクパター
ン〕をセルテーブル15cに登録するように機能する。
【0052】復元動作部15jは、リサイズ時のマッチ
ング処理部15dによるマッチングの結果、リサイズ後
のマスクパターンとマッチする未割当のセルのパターン
が存在しない場合、待避用レジスタ15fに一時的に待
避させておいたリサイズ前の割当状況を状態レジスタ1
5aに戻すものである。エラー通知部15kは、ウィン
ドウの獲得時やリサイズ時のマッチング処理部15dに
よるマッチングの結果、リサイズ後のマスクパターンと
マッチする未割当のセルのパターンが存在しなかった場
合つまり獲得やリサイズに失敗した場合に、アプリケー
ションに対して失敗した旨(エラー)を通知するもので
ある。
【0053】判定部15gによる判定の結果、リサイズ
後のマスクパターンと元のマスクパターンとが等しい場
合には、ウィンドウ管理部15は特に動作を行なうこと
なくリサイズを許可する。また、判定部15gによる判
定の結果、リサイズ後のマスクパターンが元のマスクパ
ターンよりも小さい場合には、セル割当部15eが、リ
サイズ対象のウィンドウの描画領域の左上セルの位置を
変えることなく、新たなマスクパターンに従って状態レ
ジスタ15aの割当状況を更新するとともに、セルテー
ブル15cにおいて、元のセル指標に対応するマスクパ
ターンを新たなものに書き換えるように機能する。
【0054】なお、ウィンドウ管理部15は、ウィンド
ウの解放要求を受けると、そのウィンドウに割り当てら
れた描画領域に相当する状態レジスタ15aのビットを
“1”(未使用)に初期化するとともに、セルテーブル
15cからそのウィンドウについての情報フィールドを
削除する機能も有している。この機能による動作につい
ては、図12を参照しながら後述する。
【0055】また、図8に示すごとく描画用フレームメ
モリ12上に割り当てられた描画領域に全体画像を描画
されたウィンドウA〜Dは、画像転送部13により表示
用フレームメモリ14へ転送され、図9に示すごとく、
表示用フレームメモリ14上で、CRT20での実際の
表示画像(ウィンドウA〜Dの画像を画面上の所定位置
に重ね合わて配置した画像)が複写・生成される。
【0056】次に、上述のごとく構成された本実施形態
のマルチウィンドウ表示装置10の動作について、図1
0〜図12に示すフローチャートに従って説明する。ま
ず、図10に示すフローチャート(ステップS11〜S
16)を参照しながら、本実施形態でのウィンドウ獲得
処理手順について説明する。ウィンドウ管理部15にお
いてアプリケーションからウィンドウの獲得要求を受け
ると、マッチング処理部15dにより、その要求と同時
に指定されるウィンドウのサイズ(幅×高さ)に応じた
マスクパターンをパターンテーブル15dから選択して
から(ステップS11)、状態レジスタ15a上に、そ
のマスクパターンとマッチするパターン〔即ち未割当
(未使用)のセルパターン〕が存在するか否かを検索・
確認する(ステップS12)。
【0057】マスクパターンとマッチする未割当のセル
パターン(“1”のパターン)が存在する場合(ステッ
プS12からYESルート)、セル割当部15eによ
り、その未割当のセルをウィンドウの描画領域として割
り当て、そのセルに対応する状態レジスタ15aのビッ
トを“0”として割当状況を更新し、そのセルが使用中
であることを示すようにする(ステップS13)。
【0058】そして、新たに割り当てられた描画領域の
情報〔セル指標(ウィンドウ識別子)とマスクパターン
との対〕をセルテーブル15cに登録し(ステップS1
4)、さらに、その描画領域の左上セルの指標(マスク
パターンと一致した状態レジスタ15aのビットグルー
プ中の最下位ビットの番号)をそのウィンドウの識別子
としてアプリケーションに通知する(ステップS1
5)。
【0059】なお、上述したステップS13〜S15の
実行順序は、この順序に限定されるものではなく、同時
に実行されてもよい。また、マスクパターンとマッチす
る未割当のセルパターン(“1”のパターン)が存在し
ない場合(ステップS12からNOルート)、ウィンド
ウの獲得に失敗したことになり、エラー通知部15kに
より、アプリケーションに対してウィンドウ獲得に失敗
した旨のエラー情報を通知する。
【0060】ついで、図11に示すフローチャート(ス
テップS21〜S29)を参照しながら、本実施形態で
のウィンドウリサイズ処理手順について説明する。ウィ
ンドウ管理部15においてアプリケーションから描画領
域割当済のウィンドウに対するリサイズ要求を受ける
と、判定部15gにより、その要求と同時に指定される
リサイズ後のサイズに応じたマスクパターンをパターン
テーブル15bから読み出し、そのマスクパターンがリ
サイズ前(元のマスクパターン)と等しいか否かを判定
する(ステップS21)。
【0061】判定部15gにより、リサイズ後のマスク
パターンと元のマスクパターンとが等しいと判定された
場合(ステップS21からYESルート)、リサイズ後
のウィンドウを、描画用フレームメモリ12上でリサイ
ズ前のウィンドウに現在割り当てられているセル内に描
画することができるので、ウィンドウ管理部15は、特
に動作を行なうことなくリサイズを許可し、リサイズ処
理を終了する。
【0062】リサイズ後のマスクパターンと元のマスク
パターンとが等しくない場合(ステップS21からNO
ルート)、判定部15gにより、リサイズ後のマスクパ
ターンが元のマスクパターンよりも大きいか否かを判定
する(ステップS22)。なお、マスクパターンの大き
さの判定は、図13に示すようなマスクパターンの値を
比較することにより行なわれる。マスクパターンの値の
大小関係は、そのままマスクパターン自体の大小関係に
対応している。
【0063】判定部15gにより、リサイズ後のマスク
パターンが元のマスクパターンよりも小さいと判定され
た場合(ステップS22からNOルート)、セル割当部
15eにより、リサイズ対象のウィンドウの描画領域の
左上セルの位置を変えることなく、新たなマスクパター
ンに従って状態レジスタ15aの割当状況を更新する
(ステップS23)。つまり、状態レジスタ15aにお
いて、リサイズ対象のウィンドウの識別子番目に相当す
るビット番号のビットを先頭にして、元のマスクパター
ンに相当するビットを一旦“1”(未使用)に書き換え
た後、同じビットを先頭にしてリサイズ後のマスクパタ
ーンに相当するビットを“0”(使用中)に書き換え
る。さらに、セルテーブル15cにおいて、元のセル指
標に対応するマスクパターンを、新たなマスクパターン
つまりリサイズ後のマスクパターンに書き換えて更新す
る(ステップS24)。
【0064】一方、判定部15gにより、リサイズ後の
マスクパターンが元のマスクパターンよりも大きいと判
定された場合(ステップS22からYESルート)、ま
ず、待避動作部15hにより、状態レジスタ15aの内
容(リサイズ前の割当状況)を待避用レジスタ15fに
一時的に待避させる(ステップS25)。状態レジスタ
15aの内容の待避後、書換え部15iにより、状態レ
ジスタ15aにおいて、リサイズ前のウィンドウに割り
当てられたセルに対応するビットを未割当状態に書き換
える。つまり、状態レジスタ15aにおいて、リサイズ
対象のウィンドウの識別子番目に相当するビット番号の
ビットを先頭にして、元のマスクパターンに相当するビ
ットを“1”(未使用)に書き換える初期化処理を行な
う(ステップS26)。
【0065】この後、ウィンドウ獲得時と同様、マッチ
ング処理部15dにより、書換え部15iにて書き換え
られた状態レジスタ15a上に、リサイズ後のマスクパ
ターンとマッチするセルパターンが存在するか否かを検
索・確認する(ステップS27)。マスクパターンとマ
ッチする未割当のセルパターン(“1”のパターン)が
存在する場合(ステップS27からYESルート)、セ
ル割当部15eにより、その未割当のセルをリサイズ後
のウィンドウの描画領域として割り当て、そのセルに対
応する状態レジスタ15aのビットを“0”として割当
状況を更新して新たな使用中セルを示すとともに、セル
テーブル15cにおいて、元のウィンドウについての描
画領域の情報を、リサイズ後のウィンドウに割り当てら
れた描画領域の情報に更新する(ステップS28)。ま
た、その描画領域の左上セルの指標(マスクパターンと
一致した状態レジスタ15aのビットグループ中の最下
位ビットの番号)をそのウィンドウのリサイズ後の識別
子としてアプリケーションに通知する。
【0066】これに対し、マスクパターンとマッチする
未割当のセルパターン(“1”のパターン)が存在しな
い場合(ステップS27からNOルート)、ウィンドウ
のリサイズに失敗したことになり、復元動作部15jに
より、待避用レジスタ15fに一時的に待避させておい
た内容(リサイズ前の割当状況)を状態レジスタ15a
に戻し、エラー通知部15kにより、アプリケーション
に対してリサイズに失敗した旨のエラー情報を通知する
(ステップS29)。
【0067】次に、図12に示すフローチャート(ステ
ップS31〜S33)を参照しながら、本実施形態での
ウィンドウ解放処理手順について説明する。ウィンドウ
管理部15においてアプリケーションからウィンドウの
解放要求を受けると、まず、そのウィンドウの識別子
(セル指標)に基づいてセルテーブル15cを検索し、
そのウィンドウに割り当てられた描画領域のマスクパタ
ーンを読み出す(ステップS31)。
【0068】そして、状態レジスタ15aにおいて、解
放対象のウィンドウの識別子番目に相当するビット番号
のビットを先頭にして、セルテーブル15cから読み出
したマスクパターンに相当するビットを“1”(未使
用)に書き換える初期化処理を行なってから(ステップ
S26)、セルテーブル15cから、そのウィンドウに
ついての情報フィールド(セル指標とマスクパターンと
の対)を削除する(ステップS33)。
【0069】さらに、図13〜図23を参照しながら、
本実施形態のマルチウィンドウ表示装置10の、より具
体的なウィンドウ管理動作について説明する。ここで
は、図4を参照しながら前述したように、描画用フレー
ムメモリ12を横2048×縦1024の画素(描画
点)で構成し、その描画領域を、横方向に8個で縦方向
に4個の合計32個のセル(セルサイズ横256×縦2
56)に等分割した場合の具体例について説明する。
【0070】このとき、パターンテーブル15bは、図
13に示すようなものとなる。図13は図6により説明
したパターンテーブル15bをより具体的に示したもの
で、この図13に示すように、ウィンドウのサイズに応
じた各マスクパターンは、1〜32ビットの2進数の値
で表現される。なお、図13では、マスクパターンの値
は16進数で示されている。また、図中、“0x”は、そ
れ以降の記述が16進数表記であることを示すC言語で
ある。
【0071】例えば、横サイズおよび縦サイズがいずれ
も256画素以下のウィンドウにはマスクパターン値と
して“0x1”〔=(1)2 ;1×1のセルパターン)
が与えられ、横サイズが257画素以上512画素以下
で且つ縦サイズが256画素以下のウィンドウにはマス
クパターン値として“0x3”〔=(11)2 ;2×1
のセルパターン〕が与えられ、横サイズが513画素以
上768画素以下で且つ縦サイズが256画素以下のウ
ィンドウにはマスクパターン値として“0x7”〔=
(111)2 ;3×1のセルパターン〕が与えられ、横
サイズが1793画素以上2048画素以下で且つ縦サ
イズが256画素以下のウィンドウにはマスクパターン
値として“0xff”〔=(11111111)2 ;8
×1のセルパターン〕が与えられる。
【0072】同様に、例えば、横サイズが256画素以
下で且つ縦サイズが257画素以上512画素以下のウ
ィンドウにはマスクパターン値として“0x101”
〔=(100000001)2 ;1×2のセルパター
ン〕が与えられ、横サイズが513画素以上768画素
以下で且つ縦サイズが257画素以上512画素以下の
ウィンドウにはマスクパターン値として“0x707”
〔=(11100000111)2 ;3×2のセルパタ
ーン〕が与えられ、横サイズが1537画素以上179
2画素以下で且つ縦サイズが769画素以上1024画
素以下のウィンドウにはマスクパターン値として“0x
7f7f7f7f”〔=(1111111011111
110111111101111111)2 ;7×4の
セルパターン〕が与えられる。
【0073】つまり、本実施形態のマスクパターン値
は、描画用フレームメモリ12上で指定サイズのウィン
ドウを覆いうるセルパターンの形状そのものを、2進数
(使用するセルを“1”として表記)で表現したものと
なっている。全ての横サイズと縦サイズとの組み合わせ
についてのマスクパターンについては説明しないが、図
13に示すごとく、パターンテーブル15bには、横サ
イズおよび縦サイズに応じた32種類の矩形のマスクパ
ターンを示す2進数値が予め設定されている。
【0074】さて、まだウィンドウを1つも表示してい
ない状態(初期状態)では、図14(a)に示すよう
に、描画用フレームメモリ13には何の描画領域も設定
されておらず、図14(b)に示すように、状態レジス
タ15aには、“0xffffffff”、即ち32ビ
ット全てに“1”が設定され、図14(c)に示すよう
に、セルテーブル15cには何の情報も登録されていな
い。
【0075】このような初期状態から、サイズ600×
400,400×300,200×100,700×6
00の4つのウィンドウA〜Dを順に獲得する際の状況
について、それぞれ図15〜図18を参照しながら説明
する。 ウィンドウA(サイズ600×400)の獲得 ウィンドウAのサイズ600×400に相当するマスク
パターンを、パターンテーブル15bから読み出す。そ
のマスクパターンは、図15(b)に示すように、“0
x707”〔=(11100000111)2 〕であ
る。
【0076】そして、状態レジスタ15a上にこのマス
クパターンが存在するか否かの判定は、状態レジスタ1
5aのビット番号0のビットから、マスクパターンを順
次シフトさせながら論理積をとり、マスクパターンの全
ての“1”について“1”の論理積結果が得られるか否
かを判定することによって行なうことができる。このよ
うな判定により、マスクパターンの全ての“1”につい
て“1”の論理積が得られれば、状態レジスタ15a
(つまりは描画用フレームメモリ12)上にこのマスク
パターンに対応する未使用(未割当,空き状態)の領域
(セルパターン)が存在することになる。
【0077】初期状態では、図14(b)に示すよう
に、状態レジスタ15aの各ビットは全て“1”である
ので、ビット番号0のビットから、図15(b)に示す
マスクパターンが有効となる。アプリケーションには、
ビット番号0に相当するセル指標0をウィンドウ識別子
として通知する。そして、図15(c)に示すように、
状態レジスタ15aにおいて、そのマスクパターンに相
当するビットを“0”にする。つまり、状態レジスタ1
5aには“0xfffff8f8”〔=(111111
1111111111111110001111100
0)2 〕が設定されて、“0”のビットに対応するセル
は使用中(割当済)であることが分かる。
【0078】これによって、図15(a)に示すよう
に、描画用フレームメモリ12にウィンドウAのための
描画領域が獲得される。また、図15(d)に示すよう
に、セルテーブル15cには、アプリケーションに通知
したセル指標0と使用したマスクパターン値“0x70
7”を登録する。 ウィンドウB(400×300)の獲得 ウィンドウBのサイズ400×300に相当するマスク
パターンを、パターンテーブル15bから読み出すと、
そのマスクパターンは、図16(b)に示すように、
“0x303”〔=(1100000011)2 〕であ
る。図15(c)に示す状態レジスタ15aの内容に対
して、このマスクパターンをシフトさせながら論理積を
とっていくと、ビット番号3のビットから、そのマスク
パターンが有効になることが分かる。よって、アプリケ
ーションには、ビット番号3に相当するセル指標3をウ
ィンドウ識別子として通知する。
【0079】そして、図16(c)に示すように、状態
レジスタ15aにおいて、そのマスクパターンに相当す
るビットを“0”にする。つまり、状態レジスタ15a
には“0xffffe0e0”〔=(11111111
111111111110000011100000)
2 〕が設定される。これによって、図16(a)に示す
ように、描画用フレームメモリ12にウィンドウAおよ
びBのための描画領域が獲得される。また、図16
(d)に示すように、セルテーブル15cには、アプリ
ケーションに通知したセル指標3と使用したマスクパタ
ーン値“0x303”を追加・登録する。
【0080】ウィンドウC(200×100)の獲得 ウィンドウCのサイズ200×100に相当するマスク
パターンを、パターンテーブル15bから読み出すと、
そのマスクパターンは、図17(b)に示すように、
“0x1”〔=(1)2 〕である。図16(c)に示す
状態レジスタ15aの内容に対して、このマスクパター
ンをシフトさせながら論理積をとっていくと、ビット番
号5のビットから、そのマスクパターンが有効になるこ
とが分かる。よって、アプリケーションには、ビット番
号5に相当するセル指標5をウィンドウ識別子として通
知する。
【0081】そして、図17(c)に示すように、状態
レジスタ15aにおいて、そのマスクパターンに相当す
るビットを“0”にする。つまり、状態レジスタ15a
には“0xffffe0c0”〔=(11111111
111111111110000011000000)
2 〕が設定される。これによって、図17(a)に示す
ように、描画用フレームメモリ12にウィンドウA〜C
のための描画領域が獲得される。また、図17(d)に
示すように、セルテーブル15cには、アプリケーショ
ンに通知したセル指標5と使用したマスクパターン値
“0x1”を追加・登録する。
【0082】ウィンドウD(700×600)の獲得 ウィンドウDのサイズ700×600に相当するマスク
パターンを、パターンテーブル15bから読み出すと、
そのマスクパターンは、図18(b)に示すように、
“0x70707”〔=(1110000011100
000111)2〕である。図17(c)に示す状態レ
ジスタ15aの内容に対して、このマスクパターンをシ
フトさせながら論理積をとっていくと、ビット番号13
のビットから、そのマスクパターンが有効になることが
分かる。よって、アプリケーションには、ビット番号1
3に相当するセル指標13をウィンドウ識別子として通
知する。
【0083】そして、図18(c)に示すように、状態
レジスタ15aにおいて、そのマスクパターンに相当す
るビットを“0”にする。つまり、状態レジスタ15a
には“0x1f1f00c0”〔=(00011111
000111110000000011000000)
2 〕が設定される。これによって、図18(a)に示す
ように、描画用フレームメモリ12にウィンドウA〜D
のための描画領域が獲得される。また、図18(d)に
示すように、セルテーブル15cには、アプリケーショ
ンに通知したセル指標13と使用したマスクパターン値
“0x70707”を追加・登録する。
【0084】次に、上述のようにしてウィンドウA〜D
を獲得した状態で、サイズ400×300のウィンドウ
Bをサイズ600×400にリサイズする場合につい
て、図19〜図23を参照しながら説明する。この場
合、リサイズ後のウィンドウBのサイズ600×400
に相当するマスクパターンを、パターンテーブル15b
から読み出すと、そのマスクパターンは、図22(b)
に示すように、“0x707”〔=(11100000
111) 2 〕であり、このマスクパターンは明らかに元
のパターン“0x303”よりも大きい。
【0085】そこで、まず、図19に示すように、図1
8(c)に示す状態レジスタ15aの内容を待避用レジ
スタ15fに待避させてから、図20に示すように、状
態レジスタ15aにおいて、ウィンドウBの元のマスク
パターンに相当するビットを“1”に初期化する。これ
により、状態レジスタ15aには“0x1f1f18d
8”〔=(00011111000111110001
100011011000)2 〕が設定され、図21に
示すように、描画用フレームメモリ12は、ウィンドウ
Bに対して割り当てられていた描画領域が、一旦、使用
可能な状態になる。このとき、セルテーブル15cから
ウィンドウBについての情報フィールドも削除してお
く。
【0086】このような状態で、前述と同様にして、サ
イズ600×400のウィンドウBの獲得処理を行な
う。即ち、リサイズ後のマスクパターンは、図22
(b)に示すように、“0x707”〔=(11100
000111)2 〕であり、図20の下側に示す状態レ
ジスタ15aの内容に対して、このマスクパターンをシ
フトさせながら論理積をとっていくと、ビット番号16
のビットから、そのマスクパターンが有効になることが
分かる。よって、アプリケーションには、ビット番号1
6に相当するセル指標16をウィンドウ識別子として通
知する。
【0087】そして、図22(c)および図23(a)
に示すように、状態レジスタ15aにおいて、そのマス
クパターンに相当するビットを“0”にする。つまり、
状態レジスタ15aには“0x181818d8”〔=
(000110000001100000011000
11011000)2 〕が設定される。これによって、
図22(a)に示すように、描画用フレームメモリ12
には、ウィンドウA,C,Dおよびリサイズされたウィ
ンドウBのための描画領域が獲得される。また、図22
(d)および図23(b)に示すように、セルテーブル
15cには、アプリケーションに通知したセル指標16
と使用したマスクパターン値“0x707”を新たに追
加・登録する。
【0088】このように、本発明の一実施形態としての
マルチウィンドウ表示装置10によれば、描画用フレー
ムメモリ12の領域を複数のセルに静的に予め等分割し
ておくことにより、従来のようなウィンドウ数に応じた
描画用フレームメモリの動的等分割を行なう必要がなく
なり、描画用フレームメモリ12の領域を、ウィンドウ
のサイズに応じて、適宜、セル単位で割り当てることが
できる。
【0089】また、ウィンドウの獲得要求があった場
合、従来のような分割許可条件による制限が無くなるの
で、マッチング処理の結果、描画用フレームメモリ12
上に、ウィンドウのサイズに応じた未割当のセル(空き
領域)が存在すれば、ウィンドウの大小や獲得順序に関
係なく常にウィンドウの描画領域を獲得できる。さら
に、ウィンドウのサイズが大きくなるリサイズ要求があ
った場合でも、従来のごとくリサイズ要求時点での分割
セルサイズによる制限を受けることがなくなるので、描
画用フレームメモリ12上に、リサイズ後のウィンドウ
のサイズに応じた未割当のセル(空き領域)が存在すれ
ば、常にリサイズ後の描画領域を獲得でき、リサイズを
行なうことができる。このとき、状態レジスタ15aに
保持されていた元の割当状況が待避用レジスタ15fに
保持されているので、リサイズに失敗しても、状態レジ
スタ15aを元の割当状況に戻すことができ、リサイズ
要求時の表示状態を直ちに復元できる。
【0090】従って、大小様々なサイズのウィンドウの
ための描画領域を描画用フレームメモリ12上で効率よ
く獲得でき、描画用フレームメモリ12の利用効率が大
幅に向上し、CRT20でより多くのウィンドウを表示
することができる。なお、上述した実施形態では、描画
用フレームメモリ12を予め32個のセルに等分割した
場合について説明したが、本発明は、これに限定される
ものではなく、より少ない数あるいはより多くの数のセ
ルに分割してもよい。分割数をより多くすれば、描画用
フレームメモリ12をより効率よく使用できるようにな
る。
【0091】また、本発明は上述した実施形態に限定さ
れるものではなく、本発明の趣旨を逸脱しない範囲で種
々変形して実施することができる。
【0092】
【発明の効果】以上詳述したように、本発明のマルチウ
ィンドウ表示方法(請求項1〜3)およびマルチウィン
ドウ表示装置(請求項4〜6)によれば、以下のような
効果ないし利点を得ることができる。 〔1〕描画用フレームメモリの領域を複数のセルに静的
に予め等分割しておくことにより、描画用フレームメモ
リの領域を、ウィンドウのサイズに応じて、適宜、セル
単位で割り当てることができる。従って、大小様々なサ
イズのウィンドウのための描画領域を描画用フレームメ
モリ上で効率よく獲得でき、描画用フレームメモリの利
用効率が大幅に向上し、表示部でより多くのウィンドウ
を表示することができる(請求項1,4)。
【0093】〔2〕ウィンドウの獲得要求があった場
合、描画用フレームメモリ上に、ウィンドウのサイズに
応じた未割当のセルが存在すれば、ウィンドウの大小や
獲得順序に関係なく常にウィンドウの描画領域を獲得で
きるので、描画用フレームメモリの利用効率の向上に寄
与する(請求項2,5)。 〔3〕ウィンドウのサイズが大きくなるリサイズ要求が
あった場合でも、描画用フレームメモリ上に、リサイズ
後のウィンドウのサイズに応じた未割当のセルが存在す
れば、常にリサイズ後の描画領域を獲得できリサイズを
行なえるので、描画用フレームメモリの利用効率の向上
に寄与する。
【0094】このとき、元の割当状況を待避させている
ので、リサイズ後のウィンドウのサイズに応じた未割当
のセルが存在しなければ、マスクパターンによる検索時
に書き換えられた割当状況から元の割当状況に戻すこと
ができ、リサイズ要求時の表示状態を直ちに復元できる
(請求項3,6)。
【図面の簡単な説明】
【図1】本発明の原理ブロック図である。
【図2】本発明の一実施形態としてのマルチウィンドウ
表示装置の構成を示すブロック図である。
【図3】本実施形態のウィンドウ管理部の詳細構成を示
す機能ブロック図である。
【図4】本実施形態の描画用フレームメモリの分割状態
およびセル指標(識別子)を示す図である。
【図5】本実施形態の状態レジスタを示す図である。
【図6】本実施形態のパターンテーブルを示す図であ
る。
【図7】本実施形態のセルテーブルを示す図である。
【図8】本実施形態の描画用フレームメモリ上でのウィ
ンドウ描画領域の獲得例を示す図である。
【図9】本実施形態の表示用フレームメモリ上での表示
画像の複写例を示す図である。
【図10】本実施形態のウィンドウ獲得処理手順を説明
するためのフローチャートである。
【図11】本実施形態のウィンドウリサイズ処理手順を
説明するためのフローチャートである。
【図12】本実施形態のウィンドウ解放処理手順を説明
するためのフローチャートである。
【図13】本実施形態のパターンテーブルの具体例を示
す図である。
【図14】(a)〜(c)はいずれも本実施形態の具体
的な動作(初期状態)を説明するための図である。
【図15】(a)〜(d)はいずれも本実施形態の具体
的な動作(ウィンドウ獲得動作)を説明するための図で
ある。
【図16】(a)〜(d)はいずれも本実施形態の具体
的な動作(ウィンドウ獲得動作)を説明するための図で
ある。
【図17】(a)〜(d)はいずれも本実施形態の具体
的な動作(ウィンドウ獲得動作)を説明するための図で
ある。
【図18】(a)〜(d)はいずれも本実施形態の具体
的な動作(ウィンドウ獲得動作)を説明するための図で
ある。
【図19】本実施形態の具体的な動作(リサイズ動作)
を説明するための図である。
【図20】本実施形態の具体的な動作(リサイズ動作)
を説明するための図である。
【図21】本実施形態の具体的な動作(リサイズ動作)
を説明するための図である。
【図22】(a)〜(d)はいずれも本実施形態の具体
的な動作(リサイズ動作)を説明するための図である。
【図23】(a),(b)はそれぞれ本実施形態の具体
的な動作(状態レジスタおよびセルテーブルの最終的な
状態)を説明するための図である。
【図24】一般的なマルチウィンドウ表示装置の構成を
示すブロック図である。
【図25】(a)〜(d)はウィンドウ数に応じた描画
用フレームメモリの動的等分割を説明するための図であ
る。
【図26】分割テーブルを示す図である。
【図27】状態テーブルを示す図である。
【図28】セルテーブルを示す図である。
【符号の説明】
1 表示部 2 描画用フレームメモリ 3 描画部 4 表示用フレームメモリ 5 画像転送部 6 ウィンドウ管理部 10 マルチウィンドウ表示装置 11 描画部 12 描画用フレームメモリ 13 画像転送部 14 表示用フレームメモリ 15 ウィンドウ管理部 15a 状態レジスタ 15b パターンテーブル 15c セルテーブル 15d マッチング処理部 15e セル割当部 15f 待避用レジスタ 15g 判定部 15h 待避動作部 15i 書換え部 15j 復元動作部 15k エラー通知部 20 CRT(表示部)

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 表示部に表示すべき複数のウィンドウの
    画像を描画用フレームメモリ上にそれぞれ描画してか
    ら、該描画用フレームメモリ上の各ウィンドウの画像を
    表示用フレームメモリ上に転送して表示画像を作成し、
    該表示用フレームメモリ上の画像を該表示部で表示する
    マルチウィンドウ表示方法において、 該描画用フレームメモリの領域を、複数のセルに予め等
    分割しておき、 ウィンドウのサイズに応じて、該複数のセルの中から1
    以上のセルを当該ウィンドウの描画領域として割り当て
    ることを特徴とする、マルチウィンドウ表示方法。
  2. 【請求項2】 該複数のセルの割当状況を管理し、 ウィンドウの獲得要求を受けると、当該ウィンドウのサ
    イズに応じた、前記セルのサイズを最小単位とするマス
    クパターンを生成し、 前記割当状況を参照しながら、未割当のセルのパターン
    と該マスクパターンとのマッチングを行ない、 該マスクパターンとマッチする未割当のセルのパターン
    が存在する場合、その未割当のセルを当該ウィンドウの
    描画領域として割り当てることを特徴とする、請求項1
    記載のマルチウィンドウ表示方法。
  3. 【請求項3】 該複数のセルの割当状況を管理し、 描画領域割当済のウィンドウに対するリサイズ要求を受
    けると、リサイズ後の当該ウィンドウのサイズに応じ
    た、前記セルのサイズを最小単位とするマスクパターン
    を生成し、 リサイズ後のマスクパターンがリサイズ前よりも大きい
    場合、リサイズ前の該複数のセルの割当状況を一時的に
    待避させておいてから、リサイズ前の当該ウィンドウに
    割り当てられたセルを未割当に書き換えた割当状況を参
    照しながら、未割当のセルのパターンとリサイズ後のマ
    スクパターンとのマッチングを行ない、 リサイズ後のマスクパターンとマッチする未割当のセル
    のパターンが存在する場合、その未割当のセルを当該ウ
    ィンドウのリサイズ後の描画領域として割り当てる一
    方、 リサイズ後のマスクパターンとマッチする未割当のセル
    のパターンが存在しない場合、一時的に待避させておい
    たリサイズ前の割当状況に戻すことを特徴とする、請求
    項1記載のマルチウィンドウ表示方法。
  4. 【請求項4】 複数のウィンドウを表示する表示部と、 該表示部に表示すべき該複数のウィンドウの画像をそれ
    ぞれ描画される描画用フレームメモリと、 該描画用フレームメモリに各ウィンドウの全体画像を描
    画する描画部と、 該描画用フレームメモリ上の各ウィンドウの画像を転送
    されて、該表示部で実際に表示される表示画像を複写さ
    れる表示用フレームメモリと、 該描画用フレームメモリ上の各ウィンドウの画像を該表
    示用フレームメモリ上の所定位置に転送する画像転送部
    と、 該描画部および該画像転送部を制御することにより、該
    表示部での該複数のウィンドウの表示状態を制御するウ
    ィンドウ管理部とをそなえてなるマルチウィンドウ表示
    装置において、 該ウィンドウ管理部が、該描画用フレームメモリの領域
    を、複数のセルに予め等分割した状態で管理し、ウィン
    ドウのサイズに応じて、該複数のセルの中から1以上の
    セルを当該ウィンドウの描画領域として割り当てること
    を特徴とする、マルチウィンドウ表示装置。
  5. 【請求項5】 該ウィンドウ管理部が、 該複数のセルの割当状況を登録されて保持する状態レジ
    スタと、 ウィンドウのサイズに応じた、前記セルのサイズを最小
    単位とするマスクパターンを予め保持するパターンテー
    ブルと、 ウィンドウの獲得要求を受けると、当該ウィンドウのサ
    イズに応じたマスクパターンを該パターンテーブルから
    読み出し、該状態レジスタにおける前記割当状況を参照
    しながら、未割当のセルのパターンと当該マスクパター
    ンとのマッチングを行なうマッチング処理部と、 該マッチング処理部によるマッチングの結果、該マスク
    パターンとマッチする未割当のセルのパターンが存在す
    る場合、その未割当のセルを当該ウィンドウの描画領域
    として割り当て、該状態レジスタの割当状況を更新する
    セル割当部とから構成されていることを特徴とする、請
    求項4記載のマルチウィンドウ表示装置。
  6. 【請求項6】 該ウィンドウ管理部が、 該複数のセルの割当状況を登録されて保持する状態レジ
    スタと、 ウィンドウのサイズに応じた、前記セルのサイズを最小
    単位とするマスクパターンを予め保持するパターンテー
    ブルと、 該状態レジスタにおける前記割当状況を一時的に保持す
    る待避用レジスタと、 描画領域割当済のウィンドウに対するリサイズ要求を受
    けると、リサイズ後の当該ウィンドウのサイズに応じた
    マスクパターンを該パターンテーブルから読み出し、リ
    サイズ後のマスクパターンがリサイズ前よりも大きいか
    否かを判定する判定部と、 該判定部によりリサイズ後のマスクパターンがリサイズ
    前よりも大きいと判定された場合、該状態レジスタに登
    録されているリサイズ前の割当状況を該待避用レジスタ
    に一時的に待避させる待避動作部と、 該待避動作部による待避動作後に、該状態レジスタにお
    いて、リサイズ前の当該ウィンドウに割り当てられたセ
    ルを未割当に書き換える書換え部と、 該書換え部により書き換えられた該状態レジスタの割当
    状況を参照しながら、未割当のセルのパターンと該パタ
    ーンテーブルから読み出されたリサイズ後のマスクパタ
    ーンとのマッチングを行なうマッチング処理部と、 該マッチング処理部によるマッチングの結果、リサイズ
    後のマスクパターンとマッチする未割当のセルのパター
    ンが存在する場合、その未割当のセルを当該ウィンドウ
    のリサイズ後の描画領域として割り当て、該状態レジス
    タの割当状況を更新するセル割当部と、 該マッチング処理部によるマッチングの結果、リサイズ
    後のマスクパターンとマッチする未割当のセルのパター
    ンが存在しない場合、該待避用レジスタに一時的に待避
    させておいたリサイズ前の割当状況を該状態レジスタに
    戻す復元動作部とから構成されていることを特徴とす
    る、請求項4記載のマルチウィンドウ表示装置。
JP19828597A 1997-07-24 1997-07-24 マルチウィンドウ表示方法および装置 Withdrawn JPH1139130A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP19828597A JPH1139130A (ja) 1997-07-24 1997-07-24 マルチウィンドウ表示方法および装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP19828597A JPH1139130A (ja) 1997-07-24 1997-07-24 マルチウィンドウ表示方法および装置

Publications (1)

Publication Number Publication Date
JPH1139130A true JPH1139130A (ja) 1999-02-12

Family

ID=16388586

Family Applications (1)

Application Number Title Priority Date Filing Date
JP19828597A Withdrawn JPH1139130A (ja) 1997-07-24 1997-07-24 マルチウィンドウ表示方法および装置

Country Status (1)

Country Link
JP (1) JPH1139130A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101049813B1 (ko) * 2008-12-31 2011-07-15 엔에이치엔(주) 이미지를 자동으로 배치하는 방법 및 장치

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101049813B1 (ko) * 2008-12-31 2011-07-15 엔에이치엔(주) 이미지를 자동으로 배치하는 방법 및 장치

Similar Documents

Publication Publication Date Title
US6911983B2 (en) Double-buffering of pixel data using copy-on-write semantics
US6911984B2 (en) Desktop compositor using copy-on-write semantics
CA2436517C (en) Method and apparatus for data processing
US6326969B1 (en) Emulating screen overlays by flip-mapping memory
KR100404555B1 (ko) 데이터 프로세서 제어형 데이터 저장 시스템, 동적 재동기화 방법, 및 컴퓨터 프로그램을 포함하는 컴퓨터 판독 가능한 기록 매체
JP4156033B2 (ja) 連続するメモリのバッファを獲得し、ページテーブルを構築する方法
EP3992790B1 (en) Information processing method, physical machine and pcie device
JPH04314124A (ja) 表示システム、xウィンドウサーバーシステム及び表示           方法
JPS59184935A (ja) 対話式デイスプレイシステム
JPH11167378A (ja) 画像をスケーリングする方法
JP5944001B2 (ja) ストレージシステム、管理計算機、ストレージ装置及びデータ管理方法
CN100589089C (zh) 处理直接存储器访问请求的设备和方法
JPH01210990A (ja) 表示装置
CN108062239A (zh) 一种加速器加载方法、系统和加速器加载装置
US20080084426A1 (en) Off-screen buffering management device and method
US20150058512A1 (en) Dynamically resizing direct memory access (dma) windows
JPH1139130A (ja) マルチウィンドウ表示方法および装置
JPH1195970A (ja) マルチウィンドウ表示方法および装置
US6710777B1 (en) Method and apparatus in a data processing system for installing appropriate WID values for a transparent region
CN111897612A (zh) 页面更新方法、装置、电子设备及存储介质
US10725908B2 (en) Fast initialization of complex in-memory data structures
JPH0869399A (ja) ファイル管理装置
JP2554876B2 (ja) アドレス変換装置
JP3616675B2 (ja) 文字描画システム
JPH07219863A (ja) 業務配布システム

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20041005