JP3357368B2 - オブジェクト指向ビデオ・フレームワーク・システム - Google Patents
オブジェクト指向ビデオ・フレームワーク・システムInfo
- Publication number
- JP3357368B2 JP3357368B2 JP50578595A JP50578595A JP3357368B2 JP 3357368 B2 JP3357368 B2 JP 3357368B2 JP 50578595 A JP50578595 A JP 50578595A JP 50578595 A JP50578595 A JP 50578595A JP 3357368 B2 JP3357368 B2 JP 3357368B2
- Authority
- JP
- Japan
- Prior art keywords
- video device
- class
- subclass
- video
- handle
- 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
- 239000000872 buffer Substances 0.000 claims description 48
- 238000000034 method Methods 0.000 claims description 46
- 230000008859 change Effects 0.000 claims description 25
- 230000006870 function Effects 0.000 claims description 23
- 238000012545 processing Methods 0.000 claims description 14
- 230000004044 response Effects 0.000 claims description 11
- 230000008569 process Effects 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 15
- 238000009877 rendering Methods 0.000 description 5
- 239000003086 colorant Substances 0.000 description 4
- 230000000007 visual effect Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000012937 correction Methods 0.000 description 2
- 238000005538 encapsulation Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- KJLPSBMDOIVXSN-UHFFFAOYSA-N 4-[4-[2-[4-(3,4-dicarboxyphenoxy)phenyl]propan-2-yl]phenoxy]phthalic acid Chemical compound C=1C=C(OC=2C=C(C(C(O)=O)=CC=2)C(O)=O)C=CC=1C(C)(C)C(C=C1)=CC=C1OC1=CC=C(C(O)=O)C(C(O)=O)=C1 KJLPSBMDOIVXSN-UHFFFAOYSA-N 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000009125 cardiac resynchronization therapy Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000011022 operating instruction Methods 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 230000008929 regeneration Effects 0.000 description 1
- 238000011069 regeneration method Methods 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
- G06F8/24—Object-oriented
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Controls And Circuits For Display Device (AREA)
- Digital Computer Display Output (AREA)
- Image Generation (AREA)
- User Interface Of Digital Computer (AREA)
Description
【発明の詳細な説明】 発明の背景 発明の分野 本発明は、一般的には、出力デバイスをもつコンピュ
ータ・システムに関し、より具体的には、異種タイプ
の、異なる台数のディスプレイ・デバイスと接続可能で
あり、相互の互換性を達成し、パフォーマンスの均一性
とユーザの便利性を向上することを目的としたコンピュ
ータ・システムに関する。
ータ・システムに関し、より具体的には、異種タイプ
の、異なる台数のディスプレイ・デバイスと接続可能で
あり、相互の互換性を達成し、パフォーマンスの均一性
とユーザの便利性を向上することを目的としたコンピュ
ータ・システムに関する。
従来技術の説明 ディスプレイ・デバイスは、以前から、ユーザとやり
とりし、ユーザとのインタフェースとなる目的のため
に、あらゆる種類のコンピュータやデータ処理システム
の出力デバイスとして好まれている。ディスプレイは急
速に変化しており、大量の情報をユーザに表示する能力
を備えている。そのような情報としては、データ処理シ
ステムとそのシステム上で稼働しているアプリケーショ
ンのオペレーションに関するものや、処理されるデータ
とユーザによって入力されたデータに関するものがあ
る。
とりし、ユーザとのインタフェースとなる目的のため
に、あらゆる種類のコンピュータやデータ処理システム
の出力デバイスとして好まれている。ディスプレイは急
速に変化しており、大量の情報をユーザに表示する能力
を備えている。そのような情報としては、データ処理シ
ステムとそのシステム上で稼働しているアプリケーショ
ンのオペレーションに関するものや、処理されるデータ
とユーザによって入力されたデータに関するものがあ
る。
かかる情報をユーザに見やすくし、取り入れやすくす
るために、比較的高解像度のカラー・ディスプレイが普
及しており、多数のメーカから提供されている。いくつ
かの標準が業界で採用されるようになった一方で、パフ
ォーマンス均一性、さらには、データ・プロセッサと、
そのプロセッサ上で実行できるアプリケーションと、そ
のプロセッサに接続可能な出力デバイスとの間の互換性
さえも、種々の出力デバイスから得られないことがよく
ある。例えば、プリンタの場合は、互換性とパフォーマ
ンス均一性を達成するために、ソフトウェア開発者や提
供メーカが現在よく行っていることは、多数のプリンタ
用にソフトウェア・プリンタ・ドライバを提供し、アプ
リケーションで処理可能なファイルの内容でプリンタを
制御するようにしていることである。しかし、理解され
るように、プリンタ間で許容し得る程度の均一性を達成
することは、多くのプリンタがモノクロであり、独自の
常駐フォントを内蔵し、多くの場合、これらのフォント
は標準化されているので、ディスプレイ・デバイスの場
合よりもはるかに容易である。さらに、プリンタでは、
大部分のアプリケーションと、作成できる個々のイメー
ジ・ドットの解像パターンやイメージ・パターンとの間
ではやりとりがほとんどないのに対し、ディスプレイで
は、アプリケーションは情報を正しく正確にユーザに伝
えるために、イメージの生成を制御しなければならない
ことがよくある。また、単一ドキュメントを作成するた
めに2台以上のプリンタが使用されることはほとんどな
く、絶対的なパフォーマンス均一性が期待されることも
ほとんどない。
るために、比較的高解像度のカラー・ディスプレイが普
及しており、多数のメーカから提供されている。いくつ
かの標準が業界で採用されるようになった一方で、パフ
ォーマンス均一性、さらには、データ・プロセッサと、
そのプロセッサ上で実行できるアプリケーションと、そ
のプロセッサに接続可能な出力デバイスとの間の互換性
さえも、種々の出力デバイスから得られないことがよく
ある。例えば、プリンタの場合は、互換性とパフォーマ
ンス均一性を達成するために、ソフトウェア開発者や提
供メーカが現在よく行っていることは、多数のプリンタ
用にソフトウェア・プリンタ・ドライバを提供し、アプ
リケーションで処理可能なファイルの内容でプリンタを
制御するようにしていることである。しかし、理解され
るように、プリンタ間で許容し得る程度の均一性を達成
することは、多くのプリンタがモノクロであり、独自の
常駐フォントを内蔵し、多くの場合、これらのフォント
は標準化されているので、ディスプレイ・デバイスの場
合よりもはるかに容易である。さらに、プリンタでは、
大部分のアプリケーションと、作成できる個々のイメー
ジ・ドットの解像パターンやイメージ・パターンとの間
ではやりとりがほとんどないのに対し、ディスプレイで
は、アプリケーションは情報を正しく正確にユーザに伝
えるために、イメージの生成を制御しなければならない
ことがよくある。また、単一ドキュメントを作成するた
めに2台以上のプリンタが使用されることはほとんどな
く、絶対的なパフォーマンス均一性が期待されることも
ほとんどない。
これに対して、今日のワークステーションやその他の
データ・プロセッサ・システムで比較的よく行っている
ことは、複数のディスプレイを同時に使用することであ
る。また、システムのアップグレードに合わせて、ある
いはある種のアプリケーションを受け入れるために、あ
るタイプのディスプレイを別タイプのディスプレイに自
由に置き換えることも、よく行われている。モニタの修
理の必要上、ユーザがあるディスプレイを別のディプレ
イに置き換える場合もある。また、ディスプレイはプリ
ンタよりも変化に富んでいる。例えば、表示画面のアス
ペクト比(aspect ratio)は、様々なテレビジョン信号
形式のデータや、いわゆる「ランドスケープ」(横長
軸)型または「ポートレート」(縦長軸)型ディスプレ
イの場合のように、変化する場合がある。後者のディス
プレイの方が、ドキュメント・イメージを表示するため
によく使用されている。また、アスペクト比は、ディス
プレイの寸法によっては、これらのディスプレイ・タイ
プの一方が他方よりも微妙に変化する場合もある。水平
方向と垂直方向のそれぞれの解像度は、各座標方向にア
ドレス可能なピクセル数と同様に、ディスプレイだけで
なく、アプリケーション、さらにはオペレーティング・
システムにも付随して変化する場合がある。
データ・プロセッサ・システムで比較的よく行っている
ことは、複数のディスプレイを同時に使用することであ
る。また、システムのアップグレードに合わせて、ある
いはある種のアプリケーションを受け入れるために、あ
るタイプのディスプレイを別タイプのディスプレイに自
由に置き換えることも、よく行われている。モニタの修
理の必要上、ユーザがあるディスプレイを別のディプレ
イに置き換える場合もある。また、ディスプレイはプリ
ンタよりも変化に富んでいる。例えば、表示画面のアス
ペクト比(aspect ratio)は、様々なテレビジョン信号
形式のデータや、いわゆる「ランドスケープ」(横長
軸)型または「ポートレート」(縦長軸)型ディスプレ
イの場合のように、変化する場合がある。後者のディス
プレイの方が、ドキュメント・イメージを表示するため
によく使用されている。また、アスペクト比は、ディス
プレイの寸法によっては、これらのディスプレイ・タイ
プの一方が他方よりも微妙に変化する場合もある。水平
方向と垂直方向のそれぞれの解像度は、各座標方向にア
ドレス可能なピクセル数と同様に、ディスプレイだけで
なく、アプリケーション、さらにはオペレーティング・
システムにも付随して変化する場合がある。
さらに、カラー再現は、同一タイプのディスプレイや
同一メーカ製のディスプレイ間でも正確に統一している
ことはほとんどない。これと同時に、より多くのカラー
がアプリケーションで使用できるようにするために、色
域(color gamut)が拡大化する傾向にある。そのため
に、カラー、色相(hue)、明るさ(intensities)およ
びコントラストを正確にレンダリング(rendering)す
ることは、ユーザにとってますます重要になっており、
またユーザが種々のアプリケーションと正しくやりとり
するためにも不可欠になっている。
同一メーカ製のディスプレイ間でも正確に統一している
ことはほとんどない。これと同時に、より多くのカラー
がアプリケーションで使用できるようにするために、色
域(color gamut)が拡大化する傾向にある。そのため
に、カラー、色相(hue)、明るさ(intensities)およ
びコントラストを正確にレンダリング(rendering)す
ることは、ユーザにとってますます重要になっており、
またユーザが種々のアプリケーションと正しくやりとり
するためにも不可欠になっている。
プリンタの場合と同様に、単純なデバイスではハード
ウェア・ディスプレイ・ドライバが珍しくないとはい
え、ディスプレイ・ドライバは、コントロールとセット
アップを容易にするために少なくとも一部がソフトウェ
アで提供されているのが普通である。これには、少なく
とも3タイプの問題がある。
ウェア・ディスプレイ・ドライバが珍しくないとはい
え、ディスプレイ・ドライバは、コントロールとセット
アップを容易にするために少なくとも一部がソフトウェ
アで提供されているのが普通である。これには、少なく
とも3タイプの問題がある。
最初のタイプで最も重要な問題は、エラー・メッセー
ジとシステム操作指示(system operating instruction
s)を表示するために、ディスプレイを使用することを
慣行にしていることから起こっている。ディスプレイ・
ドライバ・カードが特定のソフトウェアと一緒に使用さ
れるような場合には、カードが導入され、システムがブ
ートされてからそのカードのためのソフトウェアが導入
されている。ブート・プロシージャの過程で、プロセッ
サまたはバス・マネージャ(bus manager)はビデオ・
カードを見つけ、対応するソフトウェア・ファイルを探
し出してディスプレイ・ドライバとビデオ・カード・オ
ブジェクトをインスタンス化(instantiate−インスタ
ンスを生成すること)している。これらのファイル(例
えば、ライブラリ・ファイル)が見つからないと、シス
テムはディスプレイに描画することができないので、デ
ィスプレイ・カードを実行するために必要なファイルの
導入を指示するプロンプトさえも出せなくなる。プリン
タは出力デバイスとして存在しているとは限らないの
で、行えることは単純な診断通知を行うために十分な構
文内容をもつ、ある種の音を発生させることだけであ
る。このシナリオに対してとり得る妥当な方法として
は、低レベルの代替ディスプレイを用意するか、VGAカ
ードで行っているようにカードでエミュレーションを行
うか(この方法によると、費用が増加する)、ビデオ・
ドライバを収めているブート可能なフロッピ・ディスク
を用意するか(これも費用発生要因となる)、ボードの
導入前に説明書やその他の方法によってユーザにソフト
ウェアを導入させるしかない。しかし、このような問題
に遭遇すると、ユーザのシステムに対する信頼が損なわ
れることになる。
ジとシステム操作指示(system operating instruction
s)を表示するために、ディスプレイを使用することを
慣行にしていることから起こっている。ディスプレイ・
ドライバ・カードが特定のソフトウェアと一緒に使用さ
れるような場合には、カードが導入され、システムがブ
ートされてからそのカードのためのソフトウェアが導入
されている。ブート・プロシージャの過程で、プロセッ
サまたはバス・マネージャ(bus manager)はビデオ・
カードを見つけ、対応するソフトウェア・ファイルを探
し出してディスプレイ・ドライバとビデオ・カード・オ
ブジェクトをインスタンス化(instantiate−インスタ
ンスを生成すること)している。これらのファイル(例
えば、ライブラリ・ファイル)が見つからないと、シス
テムはディスプレイに描画することができないので、デ
ィスプレイ・カードを実行するために必要なファイルの
導入を指示するプロンプトさえも出せなくなる。プリン
タは出力デバイスとして存在しているとは限らないの
で、行えることは単純な診断通知を行うために十分な構
文内容をもつ、ある種の音を発生させることだけであ
る。このシナリオに対してとり得る妥当な方法として
は、低レベルの代替ディスプレイを用意するか、VGAカ
ードで行っているようにカードでエミュレーションを行
うか(この方法によると、費用が増加する)、ビデオ・
ドライバを収めているブート可能なフロッピ・ディスク
を用意するか(これも費用発生要因となる)、ボードの
導入前に説明書やその他の方法によってユーザにソフト
ウェアを導入させるしかない。しかし、このような問題
に遭遇すると、ユーザのシステムに対する信頼が損なわ
れることになる。
二番目のタイプの問題はシステム・オペレーションに
はそれ程重要ではないが、それでも、ディスプレイから
提示されるユーザ・インタフェースには極めて重要であ
る。特に、2つまたはそれ以上のアプリケーションが同
時に稼働している場合や、2台またはそれ以上のディス
プレイ・デバイスがシステムに接続されている場合がそ
うである。どの時点でも1つのアプリケーションだけが
稼働している場合には、ディスプレイ・プレゼンテーシ
ョンにおいては、一般的に妥当とされるカラーをどの程
度まで用意して、ユーザに識別可能で、明確に認識でき
るだけの十分なカラー差やグレースケール(grey−scal
e)差を開発する点が重要である。正確なカラーは、グ
ラフィック・アプリケーションに対してはある程度重要
であるが、操作の対象となっているグラフィックに対し
て指定されたカラーをユーザが識別できるかぎり、ある
程度の変化は許容し得るものである。さらに、そのよう
な場合、オペレータは、表示の類似色相を区別するため
に不正確なカラーを指定することがある。同様に、アド
レスされるピクセル数やイメージのアスペクト比のある
程度の変化も、許容し得るものである。
はそれ程重要ではないが、それでも、ディスプレイから
提示されるユーザ・インタフェースには極めて重要であ
る。特に、2つまたはそれ以上のアプリケーションが同
時に稼働している場合や、2台またはそれ以上のディス
プレイ・デバイスがシステムに接続されている場合がそ
うである。どの時点でも1つのアプリケーションだけが
稼働している場合には、ディスプレイ・プレゼンテーシ
ョンにおいては、一般的に妥当とされるカラーをどの程
度まで用意して、ユーザに識別可能で、明確に認識でき
るだけの十分なカラー差やグレースケール(grey−scal
e)差を開発する点が重要である。正確なカラーは、グ
ラフィック・アプリケーションに対してはある程度重要
であるが、操作の対象となっているグラフィックに対し
て指定されたカラーをユーザが識別できるかぎり、ある
程度の変化は許容し得るものである。さらに、そのよう
な場合、オペレータは、表示の類似色相を区別するため
に不正確なカラーを指定することがある。同様に、アド
レスされるピクセル数やイメージのアスペクト比のある
程度の変化も、許容し得るものである。
しかし、複数のディスプレイが複数のアプリケーショ
ンによって異なるウィンドウに生成されるときは、カラ
ーを統一的に表示することと、アプリケーション間でカ
ラーをマッチング(matching)して、アプリケーション
がディスプレイ・ドライバとやりとりできるようにする
ことがますます重要になっている。従って、異なるアプ
リケーションがディスプレイとのインタフェースを独自
にもっている場合には、なんらかのメカニズムを用意し
てアプリケーション間の調整を行う必要がある。この問
題は、複数のディスプレイが用意されていて、望ましい
ことであるが、種々のウィンドウがディスプレイ間で自
由に移動可能であり、さらには、モニタ間で分割される
ようになっているときは(例えば、液晶ディスプレイや
光ファイバ・スクリーンCRTによく見られるように、別
々にアドレス可能なデバイス上に形成された隣接表示
域)、さらに複雑化する。この場合には、アプリケーシ
ョンは各々が、ディスプレイの各々のデバイス・ドライ
バをアクセスできることと、ディスプレイ生成をディス
プレイ間で同期化できることが必要である。
ンによって異なるウィンドウに生成されるときは、カラ
ーを統一的に表示することと、アプリケーション間でカ
ラーをマッチング(matching)して、アプリケーション
がディスプレイ・ドライバとやりとりできるようにする
ことがますます重要になっている。従って、異なるアプ
リケーションがディスプレイとのインタフェースを独自
にもっている場合には、なんらかのメカニズムを用意し
てアプリケーション間の調整を行う必要がある。この問
題は、複数のディスプレイが用意されていて、望ましい
ことであるが、種々のウィンドウがディスプレイ間で自
由に移動可能であり、さらには、モニタ間で分割される
ようになっているときは(例えば、液晶ディスプレイや
光ファイバ・スクリーンCRTによく見られるように、別
々にアドレス可能なデバイス上に形成された隣接表示
域)、さらに複雑化する。この場合には、アプリケーシ
ョンは各々が、ディスプレイの各々のデバイス・ドライ
バをアクセスできることと、ディスプレイ生成をディス
プレイ間で同期化できることが必要である。
三番目のタイプの問題は、二番目の問題の特殊ケース
と考えることができる。上述したように、システムはブ
ート・オペレーション期間に構成されるのが普通であ
り、利用できるディスプレイはすべてそのときに認識さ
れる。しかし、複数のディスプレイが用意されていると
きは、システムの構成は、例えば、特定のモニタがオ
ン、オフされるときや、モニタが別のプロセッサまたは
ユーザ・アプリケーションによって占有(seize)され
るときなどに、変化する場合がある。後者の機能は、複
数のディスプレイ・デバイスをもつワークステーション
が複数のユーザによって使用され、一部のディスプレイ
・デバイスが共有されたり、ある特定ユーザに排他的に
割り振られるような場合に用意されていることがある。
どちらの場合も、オペレーション期間にシステムの再構
成のためだけでなく、ウィンドウのような、あるユーザ
に割り振られたすべてのユーザ・ディスプレイを、これ
らのディスプレイで利用できるディスプレイ・デバイス
の数が突然に変更されたとき、残しておけるようにする
措置を講じておかなければならない。
と考えることができる。上述したように、システムはブ
ート・オペレーション期間に構成されるのが普通であ
り、利用できるディスプレイはすべてそのときに認識さ
れる。しかし、複数のディスプレイが用意されていると
きは、システムの構成は、例えば、特定のモニタがオ
ン、オフされるときや、モニタが別のプロセッサまたは
ユーザ・アプリケーションによって占有(seize)され
るときなどに、変化する場合がある。後者の機能は、複
数のディスプレイ・デバイスをもつワークステーション
が複数のユーザによって使用され、一部のディスプレイ
・デバイスが共有されたり、ある特定ユーザに排他的に
割り振られるような場合に用意されていることがある。
どちらの場合も、オペレーション期間にシステムの再構
成のためだけでなく、ウィンドウのような、あるユーザ
に割り振られたすべてのユーザ・ディスプレイを、これ
らのディスプレイで利用できるディスプレイ・デバイス
の数が突然に変更されたとき、残しておけるようにする
措置を講じておかなければならない。
これらの問題のいくつかは、変更が行われたとき呼び
出される特殊なサブルーチンやオブジェクトによって個
別的に扱うことができるが、これらの問題を同時に取り
扱うアプローチは、現在までのところまだ提案されてい
ない。
出される特殊なサブルーチンやオブジェクトによって個
別的に扱うことができるが、これらの問題を同時に取り
扱うアプローチは、現在までのところまだ提案されてい
ない。
発明の概要 従って、本発明の目的は、ビデオ・デバイスを導入
し、構成し、利用するために、ドローイング、アニメー
ションおよびビデオ構成サービスを提供するビデオ・フ
レームワーク・アーキテクチャを提供することである。
し、構成し、利用するために、ドローイング、アニメー
ションおよびビデオ構成サービスを提供するビデオ・フ
レームワーク・アーキテクチャを提供することである。
本発明の別の目的は、アプリケーションおよびディス
プレイ・ドライバとのインタフェースとなって、マシン
だけでなく、ディスプレイ・デバイスからも独立してデ
ィスプレイ・プレゼンテーション(display presentati
on)のコントロールを正確に、統一的に行うことを実現
する概念化されたアーキテクチャを提供することであ
る。
プレイ・ドライバとのインタフェースとなって、マシン
だけでなく、ディスプレイ・デバイスからも独立してデ
ィスプレイ・プレゼンテーション(display presentati
on)のコントロールを正確に、統一的に行うことを実現
する概念化されたアーキテクチャを提供することであ
る。
さらに、本発明の目的は、ディスプレイ特徴を統一的
および系統的に取り入れるときの柔軟性と容易性を向上
するビデオ・フレームワークを、特にアプリケーション
開発者のために提供することである。
および系統的に取り入れるときの柔軟性と容易性を向上
するビデオ・フレームワークを、特にアプリケーション
開発者のために提供することである。
本発明のさらに別の目的は、ユーザの要求条件に合致
するようにシステムの柔軟性を向上するためにディスプ
レイ要件の変更が行われたとき、データ処理システムの
動的再構成を可能にするビデオ・フレームワークを提供
することである。
するようにシステムの柔軟性を向上するためにディスプ
レイ要件の変更が行われたとき、データ処理システムの
動的再構成を可能にするビデオ・フレームワークを提供
することである。
本発明の上記および他の目的を達成するために、本発
明により提供されるビデオ・フレームワークは、それか
らサブクラス化された少なくとも1つのサブクラスをも
つビデオ・デバイス・ドライバのクラスと、そのビデオ
・デバイス・ドライバのクラスのオブジェクトによって
包含されているビデオ・デバイス・ハンドルのクラスで
あって、そのビデオ・デバイス・ハンドルのクラスは、
ビデオ・デバイス・ドライバのクラスからサブクラス化
された各サブクラスに対応するようにそれからサブクラ
ス化され、ビデオ・デバイス・ドライバのクラスからサ
ブクラス化された各サブクラスのそれぞれのオブジェク
トによって包含されているサブクラスをもつものと、そ
れからサブクラス化され、ビデオ・デバイス・ハンドル
のクラスからサブクラス化されたサブクラスのオブジェ
クトによって包含されている少なくとも1つのビデオ・
データ・エンカプセレータ・サブクラスをもつデータ・
エンカプセレータのクラスとを備えている。
明により提供されるビデオ・フレームワークは、それか
らサブクラス化された少なくとも1つのサブクラスをも
つビデオ・デバイス・ドライバのクラスと、そのビデオ
・デバイス・ドライバのクラスのオブジェクトによって
包含されているビデオ・デバイス・ハンドルのクラスで
あって、そのビデオ・デバイス・ハンドルのクラスは、
ビデオ・デバイス・ドライバのクラスからサブクラス化
された各サブクラスに対応するようにそれからサブクラ
ス化され、ビデオ・デバイス・ドライバのクラスからサ
ブクラス化された各サブクラスのそれぞれのオブジェク
トによって包含されているサブクラスをもつものと、そ
れからサブクラス化され、ビデオ・デバイス・ハンドル
のクラスからサブクラス化されたサブクラスのオブジェ
クトによって包含されている少なくとも1つのビデオ・
データ・エンカプセレータ・サブクラスをもつデータ・
エンカプセレータのクラスとを備えている。
本発明の別の側面によれば、ビデオ・フレームワーク
方法が提供され、この方法は、構成アクセス・マネージ
ャ・オブジェクトからビデオ・デバイス・ドライバ・オ
ブジェクトを作成し、ビデオ・デバイス・ドライバ・オ
ブジェクトからビデオ・デバイス・ハンドル・オブジェ
クトを作成し、ビデオ・デバイス・ハンドル・オブジェ
クトからビデオ・デバイス・データ・エンカプセレータ
・オブジェクトを作成し、ビデオ・デバイス・ハンドル
・オブジェクトのパラメータをレイヤ(層)サーバへ送
り、ビデオ・デバイス・データ・エンカプセレータのパ
ラメータをハードウェア構成サーバへ送るステップから
なっている。
方法が提供され、この方法は、構成アクセス・マネージ
ャ・オブジェクトからビデオ・デバイス・ドライバ・オ
ブジェクトを作成し、ビデオ・デバイス・ドライバ・オ
ブジェクトからビデオ・デバイス・ハンドル・オブジェ
クトを作成し、ビデオ・デバイス・ハンドル・オブジェ
クトからビデオ・デバイス・データ・エンカプセレータ
・オブジェクトを作成し、ビデオ・デバイス・ハンドル
・オブジェクトのパラメータをレイヤ(層)サーバへ送
り、ビデオ・デバイス・データ・エンカプセレータのパ
ラメータをハードウェア構成サーバへ送るステップから
なっている。
本発明の別の側面によれば、そこに接続された少なく
とも1つのディスプレイ・デバイスをもつデータ処理シ
ステムを操作する方法が提供され、この方法は、構成変
更の少なくとも1つが検出され、該データ処理システム
の構成変更の要求を受けると、それに応答してビデオ・
デバイス・データ・エンカプセレータ・オブジェクトを
作成し、構成変更のパラメータを、ビデオ・デバイス・
データ・エンカプセレータ・オブジェクトを包含してい
るビデオ・デバイス・ハンドル・オブジェクトへ送り、
ビデオ・デバイス・ハンドル・オブジェクトによって生
成された信号に応答して、ディスプレイ・デバイス上の
ドローイング・タスクをロックダウンし、ビデオ・デバ
イス・ハンドルを変更または作成することによってデー
タ処理システムの構成を変更し、ロックされたドローイ
ング・タスクに対応するディスプレイを再生成し、また
はその再生成を要求するコマンドをビデオ・デバイス・
ハンドルに対して出してドローイング・タスクのロッキ
ングを解除するステップからなっている。
とも1つのディスプレイ・デバイスをもつデータ処理シ
ステムを操作する方法が提供され、この方法は、構成変
更の少なくとも1つが検出され、該データ処理システム
の構成変更の要求を受けると、それに応答してビデオ・
デバイス・データ・エンカプセレータ・オブジェクトを
作成し、構成変更のパラメータを、ビデオ・デバイス・
データ・エンカプセレータ・オブジェクトを包含してい
るビデオ・デバイス・ハンドル・オブジェクトへ送り、
ビデオ・デバイス・ハンドル・オブジェクトによって生
成された信号に応答して、ディスプレイ・デバイス上の
ドローイング・タスクをロックダウンし、ビデオ・デバ
イス・ハンドルを変更または作成することによってデー
タ処理システムの構成を変更し、ロックされたドローイ
ング・タスクに対応するディスプレイを再生成し、また
はその再生成を要求するコマンドをビデオ・デバイス・
ハンドルに対して出してドローイング・タスクのロッキ
ングを解除するステップからなっている。
図面の簡単な説明 上記およびその他の目的、側面および利点をもっと理
解しやすくするために、以下では、添付図面を参照して
本発明の好適実施例について詳しく説明する。なお、図
面において、第1A図は、本発明が実行される従来のコン
ピュータのブロックダイヤグラムを示す図である。第1B
図は、本発明によるオブジェクトのクラスの編成を示す
Booch図である。
解しやすくするために、以下では、添付図面を参照して
本発明の好適実施例について詳しく説明する。なお、図
面において、第1A図は、本発明が実行される従来のコン
ピュータのブロックダイヤグラムを示す図である。第1B
図は、本発明によるオブジェクトのクラスの編成を示す
Booch図である。
第2図は、第1B図のそれぞれのクラスにおけるオブジ
ェクトの作成と協力関係を示すBooch図である。
ェクトの作成と協力関係を示すBooch図である。
第3図および第4図は、NuBus(登録商標)を採用す
るデータ・プロセッサを実装した本発明の実施例を示す
概略図である。
るデータ・プロセッサを実装した本発明の実施例を示す
概略図である。
第5図は、本発明を縮小命令セット(RISC)コンピュ
ータに応用した実施例を示す概略図である。
ータに応用した実施例を示す概略図である。
第6図は、本発明をスモール・コンピュータ・インタ
フェース・システム(SCSI)ビデオ・コントローラに応
用した実施例を示す概略図である。
フェース・システム(SCSI)ビデオ・コントローラに応
用した実施例を示す概略図である。
第7図は、本発明に従って複数のオブジェクトのクラ
スによってグラフィック・デバイスを作成する様子を示
す図である。
スによってグラフィック・デバイスを作成する様子を示
す図である。
第8図は、本発明によるビデオ・フレームワームのシ
ステム依存関係を示す図である。
ステム依存関係を示す図である。
第9図は、本発明によるウィンドウ・サーバの好まし
い作用を示す図である。
い作用を示す図である。
発明の好適実施例の詳しい説明 以下、図面を参照して説明する。特に第1B図に示すよ
うに、本発明の好適実施例の基本的構成を示すBooch図
が示されている。この種の図で通例となっているよう
に、破線で形成された「雲形」はオブジェクトのクラス
またはサブクラス(オブジェクト指向プログラミングで
用いている用語の意味において)を示し、矢印に従って
その階層構造を表している。各矢印は階層構造の次の上
位レベルを指し、“is a"関係を表している(なお、破
線はオブジェクトのクラスを単数のオブジェクトと区別
するための約束であって、そのように描写されたクラス
が従来のものであることを意図しているものではない。
例えば、Booch図の破線の「雲形」の代わりに実線のボ
ックスを使用して、ほぼ同じ内容の概略図を作ることが
可能である)。「雲形」を結ぶ2重ラインはクラスとサ
ブクラス間の“has a"関係または包含(containment)
関係を表している。2重ラインの終端の隣の数字は、そ
れぞれのクラス間の、数字関係を表した対応関係、つま
り、その対応関係の「基数」(cardinality)を示して
いる。この関係は“uses"(使用する)関係とも呼ば
れ、2重ラインの終端のドットは、どのような使われ方
がされるかを示している。2重ラインの終端の黒く塗り
つぶしたドットは、示されている他のクラスの内部イン
プリメンテーションとなるクラスを示し、従って、イン
タフェースが不要であることを示している。逆に、明る
いドット、つまり、中空のドットは、インタフェースが
用意されていることが好ましいことを示している。Booc
h図のその他の約束(規則)については、以下の説明の
中で記号が現れたときに説明することにする。なお、Bo
och図とそこで用いられている表記を詳しく説明したも
のとして、Grady Booch著「オブジェクト指向設計−そ
のアプリケーション」(Object Oriented Design−With
Applications)Benjamin/Cummings Publishing Compan
y,Inc.発行、1991年がある。
うに、本発明の好適実施例の基本的構成を示すBooch図
が示されている。この種の図で通例となっているよう
に、破線で形成された「雲形」はオブジェクトのクラス
またはサブクラス(オブジェクト指向プログラミングで
用いている用語の意味において)を示し、矢印に従って
その階層構造を表している。各矢印は階層構造の次の上
位レベルを指し、“is a"関係を表している(なお、破
線はオブジェクトのクラスを単数のオブジェクトと区別
するための約束であって、そのように描写されたクラス
が従来のものであることを意図しているものではない。
例えば、Booch図の破線の「雲形」の代わりに実線のボ
ックスを使用して、ほぼ同じ内容の概略図を作ることが
可能である)。「雲形」を結ぶ2重ラインはクラスとサ
ブクラス間の“has a"関係または包含(containment)
関係を表している。2重ラインの終端の隣の数字は、そ
れぞれのクラス間の、数字関係を表した対応関係、つま
り、その対応関係の「基数」(cardinality)を示して
いる。この関係は“uses"(使用する)関係とも呼ば
れ、2重ラインの終端のドットは、どのような使われ方
がされるかを示している。2重ラインの終端の黒く塗り
つぶしたドットは、示されている他のクラスの内部イン
プリメンテーションとなるクラスを示し、従って、イン
タフェースが不要であることを示している。逆に、明る
いドット、つまり、中空のドットは、インタフェースが
用意されていることが好ましいことを示している。Booc
h図のその他の約束(規則)については、以下の説明の
中で記号が現れたときに説明することにする。なお、Bo
och図とそこで用いられている表記を詳しく説明したも
のとして、Grady Booch著「オブジェクト指向設計−そ
のアプリケーション」(Object Oriented Design−With
Applications)Benjamin/Cummings Publishing Compan
y,Inc.発行、1991年がある。
本発明の好適実施例は、オブジェクト指向プログラミ
ング(object oriented programming)と呼ばれるもの
から開発されたオブジェクト・テクノロジとして知られ
るようになったもので具現化することが好ましいと考え
られている。オブジェクト指向プログラミングに対する
関心は、データ処理テクノロジが提供する多種類のタス
クの並列または同時処理のサポートが強化されるに伴っ
て高まっている。オブジェクト・テクノロジでは、プロ
グラム式汎用コンピュータ(programmed general purpo
se computer)とエミュレートされていることが好まし
いが、特殊目的データ・プロセッサとみなすこともでき
るが、実際には特殊目的データ・プロセッサとして実現
できるオブジェクトが、必要とする種々の関数を実行す
るために用意されている。各オブジェクトによって実行
できるメソッド(method)またはプロシージャ(proced
ure)が比較的少数のときは、必要になるデータはその
オブジェクト自体と密接に関連づけられている。メソッ
ドはカプセル化(encapsulate)されている。つまり、
そのオブジェクトによって実行される特定のメソッドを
要求できる他のオブジェクトから見えないようになって
いる。
ング(object oriented programming)と呼ばれるもの
から開発されたオブジェクト・テクノロジとして知られ
るようになったもので具現化することが好ましいと考え
られている。オブジェクト指向プログラミングに対する
関心は、データ処理テクノロジが提供する多種類のタス
クの並列または同時処理のサポートが強化されるに伴っ
て高まっている。オブジェクト・テクノロジでは、プロ
グラム式汎用コンピュータ(programmed general purpo
se computer)とエミュレートされていることが好まし
いが、特殊目的データ・プロセッサとみなすこともでき
るが、実際には特殊目的データ・プロセッサとして実現
できるオブジェクトが、必要とする種々の関数を実行す
るために用意されている。各オブジェクトによって実行
できるメソッド(method)またはプロシージャ(proced
ure)が比較的少数のときは、必要になるデータはその
オブジェクト自体と密接に関連づけられている。メソッ
ドはカプセル化(encapsulate)されている。つまり、
そのオブジェクトによって実行される特定のメソッドを
要求できる他のオブジェクトから見えないようになって
いる。
さらに、オブジェクトは類似の特性別にクラスまたは
サブクラスに分類することができ、クラスの特性(デー
タまたはメソッドのどちらか)はサブクラスによって継
承できるので、別に指定する必要がない。そのほかに、
継承された特性は、サブクラス内のオブジェクトによっ
てオーバライド(override)することができる。結果と
して、多態(polymorphism)と呼ばれるプロパティ(特
性:property)が得られる(オーバライドは実行される
メソッドと一緒に行われるので、実行時バインディング
(run time binding)とも呼ばれている)。
サブクラスに分類することができ、クラスの特性(デー
タまたはメソッドのどちらか)はサブクラスによって継
承できるので、別に指定する必要がない。そのほかに、
継承された特性は、サブクラス内のオブジェクトによっ
てオーバライド(override)することができる。結果と
して、多態(polymorphism)と呼ばれるプロパティ(特
性:property)が得られる(オーバライドは実行される
メソッドと一緒に行われるので、実行時バインディング
(run time binding)とも呼ばれている)。
従って、本発明の好適実施例の好ましいインプリメン
テーションの文脈内では、オブジェクトとそのクラスは
基本的にシステム全体の機能要素(functional element
s)である。これらの要素間の機能関係は、責任分担
(例えば、他のオブジェクトの作成を含むが、これに限
定されないメソッドまたはオペレーション)およびオブ
ジェクトとオブジェクトのクラスとを関係づける階層依
存関係(hierarchical dependencies)を明確化したも
のとして定義されている。オブジェクトの階層と継承を
定義することは、一般に「サブクラス化(subclassin
g)」と呼ばれている。従って、本発明の好適実施例
は、この分野に精通した当業者ならば容易に理解される
ように、クラスとサブクラスの編成の責任分担と依存関
係からとらえて説明されている。
テーションの文脈内では、オブジェクトとそのクラスは
基本的にシステム全体の機能要素(functional element
s)である。これらの要素間の機能関係は、責任分担
(例えば、他のオブジェクトの作成を含むが、これに限
定されないメソッドまたはオペレーション)およびオブ
ジェクトとオブジェクトのクラスとを関係づける階層依
存関係(hierarchical dependencies)を明確化したも
のとして定義されている。オブジェクトの階層と継承を
定義することは、一般に「サブクラス化(subclassin
g)」と呼ばれている。従って、本発明の好適実施例
は、この分野に精通した当業者ならば容易に理解される
ように、クラスとサブクラスの編成の責任分担と依存関
係からとらえて説明されている。
ほとんどどのデータ処理システムも、ディスプレイ・
デバイスまたはディスプレイ・デバイス・ドライバを少
なくとも1つ含んでいる。システムがブートされると
き、内部コードはシステムに含まれる(例えば、システ
ムに接続されている)ディスプレイ・デバイスやドライ
バなどの種々のデバイスをアクセスし、各デバイスと中
央プロセッサが内部システム・バス上で相互に通信でき
るようにする。広い意味では、本発明の好適実施例によ
るビデオ・フレームワークは、この時点でアクティベー
トされ、1つまたは2つ以上の構成アクセス・マネージ
ャが連続的にまたは周期的にバスを通過または「ウォー
キング(walking)−バス上を調べること」すると、そ
れを受けてディスプレイ・デバイスとドライバをインス
タンス化または削除し、必要なときは、ディスプレイ・
プレゼンテーションのコントロールを変更して、システ
ムの現在状態を反映するようにする。
デバイスまたはディスプレイ・デバイス・ドライバを少
なくとも1つ含んでいる。システムがブートされると
き、内部コードはシステムに含まれる(例えば、システ
ムに接続されている)ディスプレイ・デバイスやドライ
バなどの種々のデバイスをアクセスし、各デバイスと中
央プロセッサが内部システム・バス上で相互に通信でき
るようにする。広い意味では、本発明の好適実施例によ
るビデオ・フレームワークは、この時点でアクティベー
トされ、1つまたは2つ以上の構成アクセス・マネージ
ャが連続的にまたは周期的にバスを通過または「ウォー
キング(walking)−バス上を調べること」すると、そ
れを受けてディスプレイ・デバイスとドライバをインス
タンス化または削除し、必要なときは、ディスプレイ・
プレゼンテーションのコントロールを変更して、システ
ムの現在状態を反映するようにする。
本発明の好適実施例の本質を知る上で重要なことは
「フレームワーク」の概念と、フレームワークと「オブ
ジェクト」および「オブジェクト指向プログラミング」
との関係を理解することである。フレームワークとそこ
に具現化されている基本概念を説明した初期の論文とし
て、Kurl A.Schmucker著「MACAPP:アプリケーション・
フレームワーク」(MACAPP:An Application Framewor
k)(Bytemagazine,August 1986)がある。なお、この
論文は、参照により全文が本明細書の一部を構成するも
のである。オブジェクトの重要なプロパティは、オブジ
ェクトが責任分担するデータとメソッドをカプセル化で
きることである。つまり、汎用コマンド(generic comm
and)をあるオブジェクトに出したとき、そのオブジェ
クトがコマンドをどのように実行するかの内部詳細を、
他のどのオブジェクトにも知らせる必要がない。同じ意
味で、コマンド、データ・ファイル名などはグローバル
な互換性をもつ必要がないので、オブジェクト相互間を
自由に関連づけることができる。また、オブジェクトは
階層内でクラスおよびサブクラスとして関連づけること
ができ、そのオブジェクトが階層内で派生するオブジェ
クトの属性を継承することができる。継承した属性はオ
ブジェクトがメソッドを実行するとき、必要に応じてオ
ーバライドできるので、「多態」と呼ばれる別のプロパ
ティが得られる。
「フレームワーク」の概念と、フレームワークと「オブ
ジェクト」および「オブジェクト指向プログラミング」
との関係を理解することである。フレームワークとそこ
に具現化されている基本概念を説明した初期の論文とし
て、Kurl A.Schmucker著「MACAPP:アプリケーション・
フレームワーク」(MACAPP:An Application Framewor
k)(Bytemagazine,August 1986)がある。なお、この
論文は、参照により全文が本明細書の一部を構成するも
のである。オブジェクトの重要なプロパティは、オブジ
ェクトが責任分担するデータとメソッドをカプセル化で
きることである。つまり、汎用コマンド(generic comm
and)をあるオブジェクトに出したとき、そのオブジェ
クトがコマンドをどのように実行するかの内部詳細を、
他のどのオブジェクトにも知らせる必要がない。同じ意
味で、コマンド、データ・ファイル名などはグローバル
な互換性をもつ必要がないので、オブジェクト相互間を
自由に関連づけることができる。また、オブジェクトは
階層内でクラスおよびサブクラスとして関連づけること
ができ、そのオブジェクトが階層内で派生するオブジェ
クトの属性を継承することができる。継承した属性はオ
ブジェクトがメソッドを実行するとき、必要に応じてオ
ーバライドできるので、「多態」と呼ばれる別のプロパ
ティが得られる。
フレームワークは、本質的には、オブジェクトのクラ
スの関連づけからなる汎用的(generic)アプリケーシ
ョンであり、そのオブジェクトを必要に応じて他のオブ
ジェクトと関連づけると、より具体的なアプリケーショ
ンが得られる。フレームワークは、オブジェクトのクラ
スを関連づけると共に、オブジェクトのクラス間の機能
関係がそこに定義されているので、必要とするどの程度
の汎用的または具体的機能でも得ることができ、フレー
ムワークと関連づけることができる追加オブジェクトを
正しく機能させることができる。
スの関連づけからなる汎用的(generic)アプリケーシ
ョンであり、そのオブジェクトを必要に応じて他のオブ
ジェクトと関連づけると、より具体的なアプリケーショ
ンが得られる。フレームワークは、オブジェクトのクラ
スを関連づけると共に、オブジェクトのクラス間の機能
関係がそこに定義されているので、必要とするどの程度
の汎用的または具体的機能でも得ることができ、フレー
ムワークと関連づけることができる追加オブジェクトを
正しく機能させることができる。
従って、フレームワークは、オブジェクト間の責任分
担を黙示的にネットワーク化し、オブジェクトのクラス
間で継承を行う機能を備え(例えば、オブジェクトのク
ラスの上位階層レベルにあるサブクラスのデータとメソ
ッド)、イベント(事象)が起こったときライブラリを
コールする機能を備えたシステムと考えることができ
る。フレームワークとして構築されたシステムは、より
特定的な関数を実行し、フレームワークに用意された関
数をオーバライドすることもできるオブジェクトを追加
することにより、カストマイズすることも可能である。
フレームワークの種々のクラスおよびサブクラスにおけ
るマシン特有およびデバイス特有のオブジェクトを使用
すると、フレームワーク自体をマシン独立およびデバイ
ス独立にし、応用性を汎用化することができる。さら
に、特定のフレームワークは、責任分担と継承からとら
えてそのフレームワークがオブジェクトとオブジェクト
のクラス間に設定する相互関係と、そのフレームワーク
から得られる機能とによって特徴づけられている。フレ
ームワーク自体は、カストマイゼーションと関数のオー
バライドがフレームワーク内に具体的オブジェクトとし
て用意されているような、具体的アプリケーションを開
発するときのテンプレート(template)として利用する
ことも可能である。
担を黙示的にネットワーク化し、オブジェクトのクラス
間で継承を行う機能を備え(例えば、オブジェクトのク
ラスの上位階層レベルにあるサブクラスのデータとメソ
ッド)、イベント(事象)が起こったときライブラリを
コールする機能を備えたシステムと考えることができ
る。フレームワークとして構築されたシステムは、より
特定的な関数を実行し、フレームワークに用意された関
数をオーバライドすることもできるオブジェクトを追加
することにより、カストマイズすることも可能である。
フレームワークの種々のクラスおよびサブクラスにおけ
るマシン特有およびデバイス特有のオブジェクトを使用
すると、フレームワーク自体をマシン独立およびデバイ
ス独立にし、応用性を汎用化することができる。さら
に、特定のフレームワークは、責任分担と継承からとら
えてそのフレームワークがオブジェクトとオブジェクト
のクラス間に設定する相互関係と、そのフレームワーク
から得られる機能とによって特徴づけられている。フレ
ームワーク自体は、カストマイゼーションと関数のオー
バライドがフレームワーク内に具体的オブジェクトとし
て用意されているような、具体的アプリケーションを開
発するときのテンプレート(template)として利用する
ことも可能である。
具体的に説明すると、第1B図に示すように、本発明の
本好適実施例の基本構成100はデバイス/ドライバのク
ラスとサブクラスが階層化された構造110′になってい
る。デバイス/ドライバは、好ましくは、降順に列挙す
ると、ビデオ・デバイス/ビデオ・デバイス・ドライバ
110(これらはそこでは並列にサブクラス化されてい
る)、フレーム・バッファ・ビデオ・デバイス・ドライ
バ120およびカラー・ルックアップ・テーブル(color l
ook up table−CLUT)フレーム・バッファ・ビデオ・デ
バイス・ドライバ130を含んでいる。ハンドルの並列階
層140′も示されているが、これは、好ましくは、降順
に列挙すると、ビデオ・デバイス・ハンドル・オブジェ
クトのクラス140、フレーム・バッファ・ビデオ・デバ
イス・ハンドル・オブジェクトのサブクラス150およびC
LUTフレーム・バッファ・ビデオ・デバイス・ハンドル
・オブジェクトのサブクラス160を含んでいる。ハンド
ル階層内のクラスの各々は複数のオブジェクト・タイプ
・クラスを含んでおり、これらはドライバ階層110′の
それぞれのクラスとサブクラス内の対応するドライバ・
オブジェクトの代用となるものである。ハンドル階層は
レベル化されているので、クライアント(例えば、アプ
リケーション)は、複数の継承レベルでドライバをアク
セスすることができる。各ドライバ・クラスとサブクラ
スに複数のハンドル・クラスとサブクラスを用意する
と、複数のクライアント特有オブジェクトがドライバ階
層の任意のレベルをアクセスすることが可能になる。
本好適実施例の基本構成100はデバイス/ドライバのク
ラスとサブクラスが階層化された構造110′になってい
る。デバイス/ドライバは、好ましくは、降順に列挙す
ると、ビデオ・デバイス/ビデオ・デバイス・ドライバ
110(これらはそこでは並列にサブクラス化されてい
る)、フレーム・バッファ・ビデオ・デバイス・ドライ
バ120およびカラー・ルックアップ・テーブル(color l
ook up table−CLUT)フレーム・バッファ・ビデオ・デ
バイス・ドライバ130を含んでいる。ハンドルの並列階
層140′も示されているが、これは、好ましくは、降順
に列挙すると、ビデオ・デバイス・ハンドル・オブジェ
クトのクラス140、フレーム・バッファ・ビデオ・デバ
イス・ハンドル・オブジェクトのサブクラス150およびC
LUTフレーム・バッファ・ビデオ・デバイス・ハンドル
・オブジェクトのサブクラス160を含んでいる。ハンド
ル階層内のクラスの各々は複数のオブジェクト・タイプ
・クラスを含んでおり、これらはドライバ階層110′の
それぞれのクラスとサブクラス内の対応するドライバ・
オブジェクトの代用となるものである。ハンドル階層は
レベル化されているので、クライアント(例えば、アプ
リケーション)は、複数の継承レベルでドライバをアク
セスすることができる。各ドライバ・クラスとサブクラ
スに複数のハンドル・クラスとサブクラスを用意する
と、複数のクライアント特有オブジェクトがドライバ階
層の任意のレベルをアクセスすることが可能になる。
第1B図に示すクラスは、種々レベルに抽象化したオブ
ジェクトを表している。本発明の好適実施例によるキー
となる抽象化は、ビデオ・デバイス・ハンドル、ビデオ
・デバイス・ドライバおよびビデオ・デバイス・データ
・エンカプセレータ(encapsulator)であり、それぞれ
の階層はこれらからサブクラス化される。
ジェクトを表している。本発明の好適実施例によるキー
となる抽象化は、ビデオ・デバイス・ハンドル、ビデオ
・デバイス・ドライバおよびビデオ・デバイス・データ
・エンカプセレータ(encapsulator)であり、それぞれ
の階層はこれらからサブクラス化される。
ビデオ・デバイス・ハンドル・クラス140は、クライ
アント・アクセスの目的のために、ビデオ・デバイス・
ハードウェアを取り扱うビデオ・デバイスまたはビデオ
・デバイス・ドライバの部分を表している(例えば、
「の代用物である」(are surrogates for))。ビデオ
・デバイス・ハンドルの特定デバイス依存サブクラス
は、ハードウェア・デバイスの輪郭を形成し、現在の構
成に従って、ビデオ信号のビデオ・タイミング、割込み
状態およびその他の観点を報告するために使用される。
このように抽象化を行うと、ハードウェア・ビデオ・デ
バイスのタイミング特性が分かり、そのあとで行われる
照会に応える目的で、スプライト(sprite)のビット・
レベル・トランスファ(bit level transfer−BLTまた
は“Blit")レクタンブルのドローイング時間を実験的
に測定して、そのドローイングをスケジュールすること
ができる。なお、これについては、スプライト・ドロー
イング(sprite drawing)の例の個所で下述する。
アント・アクセスの目的のために、ビデオ・デバイス・
ハードウェアを取り扱うビデオ・デバイスまたはビデオ
・デバイス・ドライバの部分を表している(例えば、
「の代用物である」(are surrogates for))。ビデオ
・デバイス・ハンドルの特定デバイス依存サブクラス
は、ハードウェア・デバイスの輪郭を形成し、現在の構
成に従って、ビデオ信号のビデオ・タイミング、割込み
状態およびその他の観点を報告するために使用される。
このように抽象化を行うと、ハードウェア・ビデオ・デ
バイスのタイミング特性が分かり、そのあとで行われる
照会に応える目的で、スプライト(sprite)のビット・
レベル・トランスファ(bit level transfer−BLTまた
は“Blit")レクタンブルのドローイング時間を実験的
に測定して、そのドローイングをスケジュールすること
ができる。なお、これについては、スプライト・ドロー
イング(sprite drawing)の例の個所で下述する。
ビデオ・デバイス・ドライバ・クラス110はビデオ・
デバイス・ハードウェアを直接に取り扱い、対応するハ
ンドル・クラスとサブクラスによって表されているオブ
ジェクトを包含している。上述したように、ビデオ・デ
バイスは対応するビデオ・デバイス・ドライバ・サブタ
イプと並列にサブクラス化されている。ビデオ・デバイ
スは、ビデオ・デバイス・ドライバ・オブジェクトによ
って包含されているハードウェア特有のインプリメンテ
ーションまたはインタフェースを包含していない。しか
し、このハードウェア特有のインプリメンテーションま
たはインタフェースは、その他の場合には、ハードウェ
アまたはソフトウェアでシステムに用意できるので、標
準的ビデオ・ディスプレイ・デバイス関数を別々にサブ
クラス化することは、ビデオ・ディスプレイ・デバイス
の標準外作用(non−standard behavior)が必要でなけ
れば、なくても構わない。ビデオ・デバイス・ドライバ
・クラス110およびフレーム・バッファ・デバイス・ド
ライバ・クラス120とCLUTフレーム・バッファ・ビデオ
・デバイス・ドライバ・クラス130内のオブジェクト
が、本発明の好適実施例によるビデオ・フレームワーク
内にすべての標準的ビデオ・ディスプレイ・デバイス作
用を供給することが好ましい。
デバイス・ハードウェアを直接に取り扱い、対応するハ
ンドル・クラスとサブクラスによって表されているオブ
ジェクトを包含している。上述したように、ビデオ・デ
バイスは対応するビデオ・デバイス・ドライバ・サブタ
イプと並列にサブクラス化されている。ビデオ・デバイ
スは、ビデオ・デバイス・ドライバ・オブジェクトによ
って包含されているハードウェア特有のインプリメンテ
ーションまたはインタフェースを包含していない。しか
し、このハードウェア特有のインプリメンテーションま
たはインタフェースは、その他の場合には、ハードウェ
アまたはソフトウェアでシステムに用意できるので、標
準的ビデオ・ディスプレイ・デバイス関数を別々にサブ
クラス化することは、ビデオ・ディスプレイ・デバイス
の標準外作用(non−standard behavior)が必要でなけ
れば、なくても構わない。ビデオ・デバイス・ドライバ
・クラス110およびフレーム・バッファ・デバイス・ド
ライバ・クラス120とCLUTフレーム・バッファ・ビデオ
・デバイス・ドライバ・クラス130内のオブジェクト
が、本発明の好適実施例によるビデオ・フレームワーク
内にすべての標準的ビデオ・ディスプレイ・デバイス作
用を供給することが好ましい。
フレーム・バッファ・ビデオ・デバイスとCLUTフレー
ム・バッファ・ビデオ・デバイスは、ビデオ・フレーム
ワーク内で抽象化がさらに具体化されたサブクラス・レ
ベルである。CLUTフレーム・バッファ・ビデオ・デバイ
スをさらに抽象化したものはガンマ・コントローラ(ga
mma controller)131とカラー・リスト(color list)1
32である。(本明細書の文脈内で「ガンマ」というとき
は、任意のイメージ・パラメータについて多かれ少なか
れのリニア・ビジュアル・レスポンス(linear visual
response)を特定のデバイスから得るためのオフセット
・テーブル(table of offsets)のことであり、イメー
ジ・パラメータには、デバイスのカラー空間(color sp
ace)に適用されるビジュアル・レスポンス座標系(例
えば、RGB、CYMKなど)またはディスプレイ・デバイス
によって再現可能な色域(color gamut)に応じて、コ
ントラストを含めることが可能であるが、これに限定さ
れるものではない。)この結果、カラーとコントラスト
・コントロールの単一リストを、フレームワーク全体で
使用することが可能である。CLUTフレーム・バッファは
1つまたは2つ以上の割込みハンドラ・クラス133を内
部インプリメンテーションとしてもっているので、必要
ならばあるいは望ましければ、特殊な標準外ビデオ・デ
バイス・ハンドル作用を追加することも可能である。
ム・バッファ・ビデオ・デバイスは、ビデオ・フレーム
ワーク内で抽象化がさらに具体化されたサブクラス・レ
ベルである。CLUTフレーム・バッファ・ビデオ・デバイ
スをさらに抽象化したものはガンマ・コントローラ(ga
mma controller)131とカラー・リスト(color list)1
32である。(本明細書の文脈内で「ガンマ」というとき
は、任意のイメージ・パラメータについて多かれ少なか
れのリニア・ビジュアル・レスポンス(linear visual
response)を特定のデバイスから得るためのオフセット
・テーブル(table of offsets)のことであり、イメー
ジ・パラメータには、デバイスのカラー空間(color sp
ace)に適用されるビジュアル・レスポンス座標系(例
えば、RGB、CYMKなど)またはディスプレイ・デバイス
によって再現可能な色域(color gamut)に応じて、コ
ントラストを含めることが可能であるが、これに限定さ
れるものではない。)この結果、カラーとコントラスト
・コントロールの単一リストを、フレームワーク全体で
使用することが可能である。CLUTフレーム・バッファは
1つまたは2つ以上の割込みハンドラ・クラス133を内
部インプリメンテーションとしてもっているので、必要
ならばあるいは望ましければ、特殊な標準外ビデオ・デ
バイス・ハンドル作用を追加することも可能である。
その1つひとつがフレーム・バッファ・ビデオ・デバ
イス・ハンドル150の各クラスに対応づけられている、
ビデオ・デバイス・エンカプセレータ・クラス170と、
階層的にその上位に位置するデバイス・データ・エンカ
プセレータ180とデータ・エンカプセレータ・クラス190
は、本発明の好適実施例を実施する上では重要でない。
オブジェクト自体はカプセル化機能を備えているので、
その目的を達成するために必要なことは、フレーム・バ
ッファ・ビデオ・デバイス・ハンドル・クラス150内で
内部インプリメンテーションとしてコールされるオブジ
ェクトのクラスを用意することだけである。従って、デ
ィスプレイ・デバイスがもつことができる機能を、ある
いは潜在的にもつ機能を表すどのタイプのオブジェクト
も、その機能のプレゼンテーションを、好ましくは構成
ツール(configuration tool)の形でビデオ・デバイス
・ハンドルを通して行うことができる。
イス・ハンドル150の各クラスに対応づけられている、
ビデオ・デバイス・エンカプセレータ・クラス170と、
階層的にその上位に位置するデバイス・データ・エンカ
プセレータ180とデータ・エンカプセレータ・クラス190
は、本発明の好適実施例を実施する上では重要でない。
オブジェクト自体はカプセル化機能を備えているので、
その目的を達成するために必要なことは、フレーム・バ
ッファ・ビデオ・デバイス・ハンドル・クラス150内で
内部インプリメンテーションとしてコールされるオブジ
ェクトのクラスを用意することだけである。従って、デ
ィスプレイ・デバイスがもつことができる機能を、ある
いは潜在的にもつ機能を表すどのタイプのオブジェクト
も、その機能のプレゼンテーションを、好ましくは構成
ツール(configuration tool)の形でビデオ・デバイス
・ハンドルを通して行うことができる。
従って、アプリケーションまたは別のオブジェクトを
通して、オペレータは特定のディスプレイ・デバイスの
再構成を要求することができ(例えば、表示されている
データ・エンカプセレータ・アイコンをマウスで選択す
ることにより)、さらに、データをハードウェア・ベー
スのメニューまたはイメージの形で(例えば、ビット深
さまたは信号とCLUTのカラーとのマッピング(対応づ
け)を制御するボタンの形で)、特定のディスプレイ・
デバイスによる特定の信号に対する応答を制御するため
のグラフィカル・ユーザ・インタフェースとして返すこ
とができる。同じトークンで、任意のアプリケーション
による表示イメージのどのコントロールもイベントとし
て検出して、ディスプレイ・コントロールが送られるデ
ィスプレイ・デバイスが潜在的にもつ機能の表現を返す
ことも可能である。別の方法として、データ・カプセル
化階層内のデータが変更されたとき、その時点でその変
更を報告するオブジェクトを用意することができるの
で、その変更に応じて、ハンドル階層の該当レベルにあ
る各ディスプレイ・デバイスに対応する各ディスプレイ
・デバイスが潜在的にもつ機能をオブジェクトの中で変
更し、矛盾(conflicts)を解決することも可能であ
る。従って、ディスプレイ・デバイスの切離し(discon
nection)や任意のプロセッサ、アプリケーションまた
はユーザによるディスプレイ・デバイスの占有(seizur
e)といったように、ディスプレイ・デバイスがもつ機
能の変更が、ユーザによってまたはシステム内の他のア
クションによって行われたときは、その変更を即時に検
出して、ディスプレイ・コントロールをその変更に合わ
せて変更することができる。これについては、以下で詳
しく説明する。
通して、オペレータは特定のディスプレイ・デバイスの
再構成を要求することができ(例えば、表示されている
データ・エンカプセレータ・アイコンをマウスで選択す
ることにより)、さらに、データをハードウェア・ベー
スのメニューまたはイメージの形で(例えば、ビット深
さまたは信号とCLUTのカラーとのマッピング(対応づ
け)を制御するボタンの形で)、特定のディスプレイ・
デバイスによる特定の信号に対する応答を制御するため
のグラフィカル・ユーザ・インタフェースとして返すこ
とができる。同じトークンで、任意のアプリケーション
による表示イメージのどのコントロールもイベントとし
て検出して、ディスプレイ・コントロールが送られるデ
ィスプレイ・デバイスが潜在的にもつ機能の表現を返す
ことも可能である。別の方法として、データ・カプセル
化階層内のデータが変更されたとき、その時点でその変
更を報告するオブジェクトを用意することができるの
で、その変更に応じて、ハンドル階層の該当レベルにあ
る各ディスプレイ・デバイスに対応する各ディスプレイ
・デバイスが潜在的にもつ機能をオブジェクトの中で変
更し、矛盾(conflicts)を解決することも可能であ
る。従って、ディスプレイ・デバイスの切離し(discon
nection)や任意のプロセッサ、アプリケーションまた
はユーザによるディスプレイ・デバイスの占有(seizur
e)といったように、ディスプレイ・デバイスがもつ機
能の変更が、ユーザによってまたはシステム内の他のア
クションによって行われたときは、その変更を即時に検
出して、ディスプレイ・コントロールをその変更に合わ
せて変更することができる。これについては、以下で詳
しく説明する。
もっと具体的には、第1B図に示すそれぞれのクラス内
の特定オブジェクト(実線の「雲形」で示している)を
示すBooch図である第2図に示すように、システムがブ
ートされると、システムに接続されたデバイスは構成ア
クセス・マネージャ(configuration access manager)
210によって見つけられる。そこで、ディスプレイ・デ
バイスが見つかったとすると、ビデオ・デバイス・ドラ
イバ220が作成される。この目的のために、少なくとも
総称的(generic)形体のデフォルト・ディスプレイ
(例えば、複数のディスプレイ・デバイス・タイプの1
つに対して総称的である)が、ビデオ・フレームワーク
によってアクセス可能なシステムのライブラリに含まれ
ていることが好ましい。ビデオ・デバイス・ドライバ・
オブジェクト220の方は、メソッド・コールを複製し
て、ビデオ・デバイス・ハンドル・オブジェクトのフィ
ールド(「フィールド」を意味する“F"の文字が入って
いるボックスで示している)に入れることによってビデ
オ・デバイス・ハンドル・オブジェクト230を作成す
る。なお、このメソッド・コールは、あとでクライアン
ト・アプリケーションがアクセスして、ビデオ・デバイ
ス・ハンドル230の内部インプリメンテーション(塗り
つぶした/黒のボックスで示されている)として使用す
ることができる。ビデオ・デバイス・ハンドル230が作
成されると、自身がハンドル230であることを、クライ
アント・アプリケーションの下で実際のディスプレイ・
イメージのコンポジションを制御するレイヤ・サーバ24
0に通知する。ビデオ・デバイス・ハンドルは構成アク
セス・マネージャ210によって初めて報告され、第2図
に示す他のオブジェクトに伝えられていく、ディスプレ
イ・デバイスの機能に関する情報を収めているファイル
を作ることによって、ビデオ・デバイス・データ・エン
カプセレータ250も作成する。この機能はハードウェア
構成サーバ260にも報告され、デバイスの機能とその現
在構成とが一致しているかが確認される。
の特定オブジェクト(実線の「雲形」で示している)を
示すBooch図である第2図に示すように、システムがブ
ートされると、システムに接続されたデバイスは構成ア
クセス・マネージャ(configuration access manager)
210によって見つけられる。そこで、ディスプレイ・デ
バイスが見つかったとすると、ビデオ・デバイス・ドラ
イバ220が作成される。この目的のために、少なくとも
総称的(generic)形体のデフォルト・ディスプレイ
(例えば、複数のディスプレイ・デバイス・タイプの1
つに対して総称的である)が、ビデオ・フレームワーク
によってアクセス可能なシステムのライブラリに含まれ
ていることが好ましい。ビデオ・デバイス・ドライバ・
オブジェクト220の方は、メソッド・コールを複製し
て、ビデオ・デバイス・ハンドル・オブジェクトのフィ
ールド(「フィールド」を意味する“F"の文字が入って
いるボックスで示している)に入れることによってビデ
オ・デバイス・ハンドル・オブジェクト230を作成す
る。なお、このメソッド・コールは、あとでクライアン
ト・アプリケーションがアクセスして、ビデオ・デバイ
ス・ハンドル230の内部インプリメンテーション(塗り
つぶした/黒のボックスで示されている)として使用す
ることができる。ビデオ・デバイス・ハンドル230が作
成されると、自身がハンドル230であることを、クライ
アント・アプリケーションの下で実際のディスプレイ・
イメージのコンポジションを制御するレイヤ・サーバ24
0に通知する。ビデオ・デバイス・ハンドルは構成アク
セス・マネージャ210によって初めて報告され、第2図
に示す他のオブジェクトに伝えられていく、ディスプレ
イ・デバイスの機能に関する情報を収めているファイル
を作ることによって、ビデオ・デバイス・データ・エン
カプセレータ250も作成する。この機能はハードウェア
構成サーバ260にも報告され、デバイスの機能とその現
在構成とが一致しているかが確認される。
再び第1B図に戻って、第2図のオブジェクト作成され
ると、クライアント・アプリケーションはビデオ・デバ
イス・ハンドル230をアクセスして、ディスプレイ・デ
バイスまたはシステムの構成変更を要求できるようにな
る。この要求により、ビデオ・デバイス・データ・エン
カプセレータ250のファイルにストアされている機能デ
ータが変更され、エンカプセレータ250からその変更が
ハードウェア構成サーバ260へ送られて構成の変更が行
われる。逆に、ディスプレイ・デバイスをオフにすると
いった、ユーザのアクションに基づいてディスプレイ・
デバイス・ステータスが変更されると、この変更はシス
テムによって検出され、VideoDeviceHandleがその変更
を反映するように更新される。このステータス変更がビ
デオ・デバイス・ハンドル230を経由してレイヤ・サー
バ240に報告されると、レイヤ・サーバ240は、ビデオ・
ハンドル・クラスおよび/またはサブクラスの他のメン
バにデフォルト作用または他の作用を与えて、ディスプ
レイを残りのディスプレイ・デバイス上に再ドローイン
グし、ディスプレイ情報をこれらのデバイスの間で割り
振る。これが完了すると、好ましくは、確認通知が特定
のビデオ・デバイス・ハンドル・オブジェクト230へ返
送され、ビデオ・デバイス・ハンドル230と、他方で
は、対応するビデオ・デバイス・データ・エンカプセレ
ータ250とビデオ・デバイス・ドライバを「非アクティ
ベート(deactivate)」するか、あるいはシステム構成
の強制変更(forced change)を反映するようにこれら
を修正する(例えば、ディスプレイ・デバイスが別のア
プリケーションまたはプロセッサによって占有されたと
き)。
ると、クライアント・アプリケーションはビデオ・デバ
イス・ハンドル230をアクセスして、ディスプレイ・デ
バイスまたはシステムの構成変更を要求できるようにな
る。この要求により、ビデオ・デバイス・データ・エン
カプセレータ250のファイルにストアされている機能デ
ータが変更され、エンカプセレータ250からその変更が
ハードウェア構成サーバ260へ送られて構成の変更が行
われる。逆に、ディスプレイ・デバイスをオフにすると
いった、ユーザのアクションに基づいてディスプレイ・
デバイス・ステータスが変更されると、この変更はシス
テムによって検出され、VideoDeviceHandleがその変更
を反映するように更新される。このステータス変更がビ
デオ・デバイス・ハンドル230を経由してレイヤ・サー
バ240に報告されると、レイヤ・サーバ240は、ビデオ・
ハンドル・クラスおよび/またはサブクラスの他のメン
バにデフォルト作用または他の作用を与えて、ディスプ
レイを残りのディスプレイ・デバイス上に再ドローイン
グし、ディスプレイ情報をこれらのデバイスの間で割り
振る。これが完了すると、好ましくは、確認通知が特定
のビデオ・デバイス・ハンドル・オブジェクト230へ返
送され、ビデオ・デバイス・ハンドル230と、他方で
は、対応するビデオ・デバイス・データ・エンカプセレ
ータ250とビデオ・デバイス・ドライバを「非アクティ
ベート(deactivate)」するか、あるいはシステム構成
の強制変更(forced change)を反映するようにこれら
を修正する(例えば、ディスプレイ・デバイスが別のア
プリケーションまたはプロセッサによって占有されたと
き)。
以上を要約すると、どのクライアントまたはアプリケ
ーションも、階層内のオブジェクトを通るハンドル階層
のレベルの1つからオブジェクトを選択することによっ
て、任意の特定ディスプレイ(1つまたは複数)のコン
トロールを要求することができる。本発明の好適実施例
によるビデオ・フレームワークから提供されるシステム
は全体が概念化されているのは、必要などのデバイス特
有オブジェクトもドライバ階層の該当レベル内に置くこ
とができ、実効効率がその階層内の継承によって保証さ
れるためである。同様に、必要とするディスプレイ・デ
バイス作用を達成するために必要な、どのシステム特有
またはアプリケーション特有のオブジェクトもハンドル
階層の該当レベルに置くことができる。ハンドル・クラ
スまたはサブクラス内のオブジェクトを通るディスプレ
イ・イメージのコントロールも1つのイベントとなり、
これを使用すると、システム再構成および対応するディ
スプレイ・コントロールをトリガして、ディスプレイを
希望通りにレンダリング(rendering)できるデバイス
間でディスプレイを割り振ることができる。このように
すると、デフォルトのディスプレイ機能レベルは、ビデ
オ・フレームワークのコンポーネントとして常にディス
プレイ・デバイス用に維持できるので、各カードやディ
スプレイ・デバイス別に設ける必要がない。同じフレー
ムワーク・アーキテクチャも、システム再構成を自動化
するのと同時に、ディスプレイ・リダイレクション(di
splay redirection)をサポートしているので、任意の
時点に存在するシステム構成に一致させることができ
る。
ーションも、階層内のオブジェクトを通るハンドル階層
のレベルの1つからオブジェクトを選択することによっ
て、任意の特定ディスプレイ(1つまたは複数)のコン
トロールを要求することができる。本発明の好適実施例
によるビデオ・フレームワークから提供されるシステム
は全体が概念化されているのは、必要などのデバイス特
有オブジェクトもドライバ階層の該当レベル内に置くこ
とができ、実効効率がその階層内の継承によって保証さ
れるためである。同様に、必要とするディスプレイ・デ
バイス作用を達成するために必要な、どのシステム特有
またはアプリケーション特有のオブジェクトもハンドル
階層の該当レベルに置くことができる。ハンドル・クラ
スまたはサブクラス内のオブジェクトを通るディスプレ
イ・イメージのコントロールも1つのイベントとなり、
これを使用すると、システム再構成および対応するディ
スプレイ・コントロールをトリガして、ディスプレイを
希望通りにレンダリング(rendering)できるデバイス
間でディスプレイを割り振ることができる。このように
すると、デフォルトのディスプレイ機能レベルは、ビデ
オ・フレームワークのコンポーネントとして常にディス
プレイ・デバイス用に維持できるので、各カードやディ
スプレイ・デバイス別に設ける必要がない。同じフレー
ムワーク・アーキテクチャも、システム再構成を自動化
するのと同時に、ディスプレイ・リダイレクション(di
splay redirection)をサポートしているので、任意の
時点に存在するシステム構成に一致させることができ
る。
以上、本発明の好適実施例の全体構成と基本的アーキ
テクチャの概要を説明してきたが、以下では、いくつか
のインプリメンテーション例を示して説明することにす
る。概念化されたケースの場合も、特定のインプリメン
テーションの場合も、オブジェクトの配列を利用してい
る以下の例(NuBus(登録商標)と呼ぶことにする。こ
れはApple Computer社によって実現された32ビット・バ
スであり、IBM社によって実現されたMicroChannel(登
録商標)とEISAバスとは対照的なものである)のよう
に、システムおよびデバイス構成情報へのアクセスがな
んらかの方法で制御されている。従って、概念化された
ケースでは、システムまたはデバイス構成へのアクセス
を制御するアプリケーションまたはオブジェクトで特定
のイベントが発生すると、第2図を参照して上述したよ
うに、それを受けてオブジェクトを作成し、オブジェク
ト間をリンク(例えば、責任分担と依存関係)させるだ
けで、本発明の好適実施例を実施することができる。
テクチャの概要を説明してきたが、以下では、いくつか
のインプリメンテーション例を示して説明することにす
る。概念化されたケースの場合も、特定のインプリメン
テーションの場合も、オブジェクトの配列を利用してい
る以下の例(NuBus(登録商標)と呼ぶことにする。こ
れはApple Computer社によって実現された32ビット・バ
スであり、IBM社によって実現されたMicroChannel(登
録商標)とEISAバスとは対照的なものである)のよう
に、システムおよびデバイス構成情報へのアクセスがな
んらかの方法で制御されている。従って、概念化された
ケースでは、システムまたはデバイス構成へのアクセス
を制御するアプリケーションまたはオブジェクトで特定
のイベントが発生すると、第2図を参照して上述したよ
うに、それを受けてオブジェクトを作成し、オブジェク
ト間をリンク(例えば、責任分担と依存関係)させるだ
けで、本発明の好適実施例を実施することができる。
第3図に示すように、NuBus(登録商標−以下同じ)
を採用するシステムでは、構成アクセス・マネージャ・
オブジェクト210またはそのクラス330が用意されている
ことが好ましい。オブジェクトのNuBusクラス310はNuBu
sフレームワークを含んでいるNuBusの機能を定義してい
る基底クラス(base class)であるが、その内部詳細
は、この分野に精通した当業者が本発明の好適実施例を
理解して、実施する上では(カプセル化されているの
で)一般的に重要ではない。本発明の好適実施例のビデ
オ・フレームワークを理解する目的のために、オブジェ
クトのNuBusクラスは、NuBusに接続されたカードを見つ
けて、それを識別するためのプロトコルを少なくとも包
含している。基本的には、オブジェクトのNuBusクラス
は、構成アクセス・マネージャ・オブジェクト(例え
ば、第2図の210)をコールして構成の変更をモニタす
ることによって、周期的にまたは連続的に「バス上をウ
ォーク(walk)する」機能を備えている。機能的には、
これらのオブジェクトのは、それぞれ第2図または第3
図に示すように、構成アクセス・マネージャ・オブジェ
クト210またはオブジェクトのクラス320にアドレス空間
を提供することを担当している(これは、クラス抽象化
レベルにある第2図の部分に対応している)。NuBusク
ラスのインスタンスはボード識別コードをNuBusカード
・オブジェクトに渡すことによってNuBusビデオ・カー
ド350のような、特定のNuBusカード・オブジェクト340
をインスタンス化するメソッドも包含している。
を採用するシステムでは、構成アクセス・マネージャ・
オブジェクト210またはそのクラス330が用意されている
ことが好ましい。オブジェクトのNuBusクラス310はNuBu
sフレームワークを含んでいるNuBusの機能を定義してい
る基底クラス(base class)であるが、その内部詳細
は、この分野に精通した当業者が本発明の好適実施例を
理解して、実施する上では(カプセル化されているの
で)一般的に重要ではない。本発明の好適実施例のビデ
オ・フレームワークを理解する目的のために、オブジェ
クトのNuBusクラスは、NuBusに接続されたカードを見つ
けて、それを識別するためのプロトコルを少なくとも包
含している。基本的には、オブジェクトのNuBusクラス
は、構成アクセス・マネージャ・オブジェクト(例え
ば、第2図の210)をコールして構成の変更をモニタす
ることによって、周期的にまたは連続的に「バス上をウ
ォーク(walk)する」機能を備えている。機能的には、
これらのオブジェクトのは、それぞれ第2図または第3
図に示すように、構成アクセス・マネージャ・オブジェ
クト210またはオブジェクトのクラス320にアドレス空間
を提供することを担当している(これは、クラス抽象化
レベルにある第2図の部分に対応している)。NuBusク
ラスのインスタンスはボード識別コードをNuBusカード
・オブジェクトに渡すことによってNuBusビデオ・カー
ド350のような、特定のNuBusカード・オブジェクト340
をインスタンス化するメソッドも包含している。
さらに、第3図に示すように、オブジェクトのNuBus
構成リードオンリ・メモリ(ROM)クラス360は、NuBus
カード・オブジェクト340のクラスと1対1の基数(one
−to−one cardinality)をもち、システムに接続可能
なハードウェア・カードの内部動作と機能に関する情報
を収めており、NuBusビデオ・カード・オブジェクト350
のように、より具体化したオブジェクトの作成を制御し
ている。従って、NuBus構成ROMオブジェクトは、フォー
マット・ヘッダ・ブロックなどの必須情報フィールドと
ボード資源リストを収めているNuBusカードROMを表して
いる。NuBus構成ROMクラスをサブクラス化すると、NuBu
sビデオ・カード・クラス350と1対1の基数をもつビデ
オNuBus構成ROMクラス370に示すように、カードのユニ
ークな特徴や機能のセレクタも得られる。
構成リードオンリ・メモリ(ROM)クラス360は、NuBus
カード・オブジェクト340のクラスと1対1の基数(one
−to−one cardinality)をもち、システムに接続可能
なハードウェア・カードの内部動作と機能に関する情報
を収めており、NuBusビデオ・カード・オブジェクト350
のように、より具体化したオブジェクトの作成を制御し
ている。従って、NuBus構成ROMオブジェクトは、フォー
マット・ヘッダ・ブロックなどの必須情報フィールドと
ボード資源リストを収めているNuBusカードROMを表して
いる。NuBus構成ROMクラスをサブクラス化すると、NuBu
sビデオ・カード・クラス350と1対1の基数をもつビデ
オNuBus構成ROMクラス370に示すように、カードのユニ
ークな特徴や機能のセレクタも得られる。
次に、第4図(これは第3図の右側に継続するものと
考えてよい)に示すように、NuBusインプリメンテーシ
ョンは、ビデオ・デバイス・ドライバ・クラス330(第1
B図のクラス110に対応する)、NuBusビデオ・デバイス
・ドライバ・クラス120′およびNuBus CLUTビデオ・デ
バイス・ドライバ・サブクラス130′を含むドライバ・
クラスとサブクラスの階層を含んでいる。また、ビデオ
・デバイス・ハンドル・クラスで表されているディスプ
レイ・デバイス機能情報を得て、デバイス構成をグラフ
ィカル・ビジュアルで表示できるようにすることが好ま
しい。そうすれば、ユーザは望み通りのデバイス再構成
を行うことができる。このような理由から、ビデオ・ド
ライバ・クラス330はビデオ・デバイス・データ・エン
カプセレータ410を、ビデオ・デバイス・ハンドル・ク
ラス140と一緒に(ビデオ・デバイス・ハンドルクラス1
40まで延長された破線の2重ラインで描かれている)1
対1の基数で内部インプリメンテーションとして直接に
包含している。
考えてよい)に示すように、NuBusインプリメンテーシ
ョンは、ビデオ・デバイス・ドライバ・クラス330(第1
B図のクラス110に対応する)、NuBusビデオ・デバイス
・ドライバ・クラス120′およびNuBus CLUTビデオ・デ
バイス・ドライバ・サブクラス130′を含むドライバ・
クラスとサブクラスの階層を含んでいる。また、ビデオ
・デバイス・ハンドル・クラスで表されているディスプ
レイ・デバイス機能情報を得て、デバイス構成をグラフ
ィカル・ビジュアルで表示できるようにすることが好ま
しい。そうすれば、ユーザは望み通りのデバイス再構成
を行うことができる。このような理由から、ビデオ・ド
ライバ・クラス330はビデオ・デバイス・データ・エン
カプセレータ410を、ビデオ・デバイス・ハンドル・ク
ラス140と一緒に(ビデオ・デバイス・ハンドルクラス1
40まで延長された破線の2重ラインで描かれている)1
対1の基数で内部インプリメンテーションとして直接に
包含している。
従って、データ・エンカプセレータを選択すると、ビ
デオ・デバイス・ハンドル・デバイスは、デバイスがも
つことができる機能を表現したものと、CLUTを使用する
か、32ビット・カラー・ガンマ(例えば、ビジュアル応
答非線形修正または補正)テーブルを使用するか、とい
った選択項目のようなユーザ・コントロールの選択項
目、およびディスプレイ・デバイスがアプリケーション
によってアクセスされるときの、ユーザ側から見た構成
可能なビデオ・デバイス・ハンドル・オブジェクトの類
似の側面を表示することができる。また、このインプリ
メンテーションでは、割込みハンドラ・クラス133′がN
uBusビデオ・ドライバ・クラス120′によって包含され
ている。
デオ・デバイス・ハンドル・デバイスは、デバイスがも
つことができる機能を表現したものと、CLUTを使用する
か、32ビット・カラー・ガンマ(例えば、ビジュアル応
答非線形修正または補正)テーブルを使用するか、とい
った選択項目のようなユーザ・コントロールの選択項
目、およびディスプレイ・デバイスがアプリケーション
によってアクセスされるときの、ユーザ側から見た構成
可能なビデオ・デバイス・ハンドル・オブジェクトの類
似の側面を表示することができる。また、このインプリ
メンテーションでは、割込みハンドラ・クラス133′がN
uBusビデオ・ドライバ・クラス120′によって包含され
ている。
次に、縮小命令セット・コンピュータ(reduced inst
ruction set computer−RISC)用のカラー液晶ディスプ
レイ(LCD)を本発明の好適実施例の別のインプリメン
テーション例として、第5図を参照して説明する。この
インプリメンテーションでは、キーとなる抽象化は、第
1B図に示すものと同じクラスに対応するビデオ・デバイ
ス・ハンドル・クラス140である。LCDディスプレイの場
合には、「ハンドル」階層の残り部分には、ビデオ・デ
バイス・ハンドル・クラス140の下位に順次にサブクラ
ス化されたカラーLCDビデオ・デバイス・ハンドル・ク
ラス520とRISCカラー・ビデオ・デバイス・ハンドル・
クラス530が含まれることになる。キーとなる、もう1
つの抽象化は、RISCカラーLCDビデオ・デバイス・ハン
ドル・クラス530によって包含されたRISCマザーボード
・オブジェクト・クラス510である。RISCマザーバード
・オブジェクトは、この場合には、アクセス可能なディ
スプレイ・デバイスを見つけると共に、前述したよう
に、「バス上をウォーク」するように構成アクセス・マ
ネージャを制御するプロトコルを提供する。ディスプレ
イ・デバイスが見つかると、RISCカラーLCDビデオ・デ
バイス・ハンドル・オブジェクトがインスタンス化され
る。このオブジェクトは、あとでRISCマザーボード・オ
ブジェクトの機能を利用すると、このオブジェクトが使
用するメモリ・マップ・ロケーションといった、それ自
身の種々の側面や、マザーボードに特有の他の詳細を探
し出すことができる。このようにして、本発明の好適実
施例による、このインプリメンテーションの汎用性は維
持される。
ruction set computer−RISC)用のカラー液晶ディスプ
レイ(LCD)を本発明の好適実施例の別のインプリメン
テーション例として、第5図を参照して説明する。この
インプリメンテーションでは、キーとなる抽象化は、第
1B図に示すものと同じクラスに対応するビデオ・デバイ
ス・ハンドル・クラス140である。LCDディスプレイの場
合には、「ハンドル」階層の残り部分には、ビデオ・デ
バイス・ハンドル・クラス140の下位に順次にサブクラ
ス化されたカラーLCDビデオ・デバイス・ハンドル・ク
ラス520とRISCカラー・ビデオ・デバイス・ハンドル・
クラス530が含まれることになる。キーとなる、もう1
つの抽象化は、RISCカラーLCDビデオ・デバイス・ハン
ドル・クラス530によって包含されたRISCマザーボード
・オブジェクト・クラス510である。RISCマザーバード
・オブジェクトは、この場合には、アクセス可能なディ
スプレイ・デバイスを見つけると共に、前述したよう
に、「バス上をウォーク」するように構成アクセス・マ
ネージャを制御するプロトコルを提供する。ディスプレ
イ・デバイスが見つかると、RISCカラーLCDビデオ・デ
バイス・ハンドル・オブジェクトがインスタンス化され
る。このオブジェクトは、あとでRISCマザーボード・オ
ブジェクトの機能を利用すると、このオブジェクトが使
用するメモリ・マップ・ロケーションといった、それ自
身の種々の側面や、マザーボードに特有の他の詳細を探
し出すことができる。このようにして、本発明の好適実
施例による、このインプリメンテーションの汎用性は維
持される。
次に、第6図を参照して、SCSIビデオ・コントローラ
を含んでいる本発明の好適実施例のインプリメンテーシ
ョンについて説明する。このインプリメンテーションで
は、ドライバ階層は、第1B図の場合と同じように、ビデ
オ・デバイス・ドライバ・クラス110とその下にサブク
ラス化されたフレーム・バッファ・ビデオ・デバイス・
ドライバ・クラス120と、フレーム・バッファ・デバイ
ス・ドライバ・クラス120の下にサブクラス化されたSCS
Iフレーム・バッファ・デバイス・ドライバ130とを含ん
でいる。SCSIフレーム・バッファ・ビデオ・デバイス・
ドライバ・クラス130のオブジェクトは、SCSIビデオ・
デバイス・オブジェクトを作成するための情報とプロシ
ージャを収めており、これらは平坦化(flatten)し
て、レイヤ・サーバ(第2図の240)へ送ることができ
る。SCSIフレーム・バッファ・ビデオ・デバイス・ドラ
イバはSCSI能力もフィールドまたはいわゆる「ミックス
イン(mixin)」として備えていることが好ましく、そ
うすれば、SCSIバス・プロトコルを使用してSCSIデバイ
ス・ハードウェアについて照会し、それを正しく識別す
るための情報を受け取ることができる。ミックスイン
は、多重継承され、余分の機能を追加するクラスであ
る。ミックインは標準的OOP用語である。また、SCSIフ
レーム・バッファ・ビデオ・ドライバ・オブジェクトが
SCSIに気づく(SCSI aware)ようにしておくことが好ま
しい。そうすれば、SCSIオペレーションをブレークダウ
ンできるので、SCSIアクセス・マネージャとSCSI割込み
ハンドラ(第1B図の133に示すものと同じ)をビデオ・
デバイス自身用として含めておくことが好ましい。
を含んでいる本発明の好適実施例のインプリメンテーシ
ョンについて説明する。このインプリメンテーションで
は、ドライバ階層は、第1B図の場合と同じように、ビデ
オ・デバイス・ドライバ・クラス110とその下にサブク
ラス化されたフレーム・バッファ・ビデオ・デバイス・
ドライバ・クラス120と、フレーム・バッファ・デバイ
ス・ドライバ・クラス120の下にサブクラス化されたSCS
Iフレーム・バッファ・デバイス・ドライバ130とを含ん
でいる。SCSIフレーム・バッファ・ビデオ・デバイス・
ドライバ・クラス130のオブジェクトは、SCSIビデオ・
デバイス・オブジェクトを作成するための情報とプロシ
ージャを収めており、これらは平坦化(flatten)し
て、レイヤ・サーバ(第2図の240)へ送ることができ
る。SCSIフレーム・バッファ・ビデオ・デバイス・ドラ
イバはSCSI能力もフィールドまたはいわゆる「ミックス
イン(mixin)」として備えていることが好ましく、そ
うすれば、SCSIバス・プロトコルを使用してSCSIデバイ
ス・ハードウェアについて照会し、それを正しく識別す
るための情報を受け取ることができる。ミックスイン
は、多重継承され、余分の機能を追加するクラスであ
る。ミックインは標準的OOP用語である。また、SCSIフ
レーム・バッファ・ビデオ・ドライバ・オブジェクトが
SCSIに気づく(SCSI aware)ようにしておくことが好ま
しい。そうすれば、SCSIオペレーションをブレークダウ
ンできるので、SCSIアクセス・マネージャとSCSI割込み
ハンドラ(第1B図の133に示すものと同じ)をビデオ・
デバイス自身用として含めておくことが好ましい。
以上から理解されるように、SCSIビデオ・コントロー
ラを含んでいる上記インプリメンテーション例は、本発
明の好適実施例によるビデオ・フレームワークがフレー
ム・バッファとガンマ・コントロール作用をどのように
サポートし、本発明の好適実施例のビデオ・フレームワ
ークがシステムの他の部分には異質であるデータとコン
トロール・トランスポート・プロトコル(control tran
sport protocols)をどのようにして使用できるかを示
したものである。ビデオ・フレームワークの機能はシス
テム・バスとインタフェース・アーキテクチャから切り
離されている。同様に、上述したインプリメンテーショ
ン例のすべてから理解されるように、本発明の好適実施
例の上記変形実施例のいずれもあるいはすべては、具体
的オブジェクトを第1B図の基本的ビデオ・フレームワー
ク・アーキテクチャの各所の点に結ぶことにより、同時
に実現することが可能である。例えば、第5図のインプ
リメンテーションはカラーLCDビデオ・デバイス・ハン
ドルとRISCカラーLCDビデオ・デバイス・ハンドル(RIS
Cマザーボード・クラス510を収めている)クラス520
を、ビデオ・デバイス・ハンドル・クラス140からサブ
クラス化することにより実現することができる。このサ
ブクラス化はNuBusインプリメンテーションとSCSIビデ
オ・コントローラから完全に独立しているので、これら
のインプリメンテーションの一方または両方と組み合わ
せて実現することができる。しかし、予想されるよう
に、本発明の好適実施例によるビデオ・フレームワーク
に追加された大部分のオブジェクトは、ビデオ・デバイ
ス・ドライバとビデオ・デバイス・ハンドル・クラス11
0と140よりも下位の階層レベルにあるオブジェクトのサ
ブクラス化を含むことになる(例えば、追加の異なるオ
ブジェクトが得られる)。この中には、オブジェクトの
無効化を含めておくことも可能であるが、その場合は、
オブジェクトはこのサブクラス化がそこから行われるビ
デオ・フレームワークのレベルに置いておくことが好ま
しく、そうすれば、特定のデバイス特有の機能が得られ
る。
ラを含んでいる上記インプリメンテーション例は、本発
明の好適実施例によるビデオ・フレームワークがフレー
ム・バッファとガンマ・コントロール作用をどのように
サポートし、本発明の好適実施例のビデオ・フレームワ
ークがシステムの他の部分には異質であるデータとコン
トロール・トランスポート・プロトコル(control tran
sport protocols)をどのようにして使用できるかを示
したものである。ビデオ・フレームワークの機能はシス
テム・バスとインタフェース・アーキテクチャから切り
離されている。同様に、上述したインプリメンテーショ
ン例のすべてから理解されるように、本発明の好適実施
例の上記変形実施例のいずれもあるいはすべては、具体
的オブジェクトを第1B図の基本的ビデオ・フレームワー
ク・アーキテクチャの各所の点に結ぶことにより、同時
に実現することが可能である。例えば、第5図のインプ
リメンテーションはカラーLCDビデオ・デバイス・ハン
ドルとRISCカラーLCDビデオ・デバイス・ハンドル(RIS
Cマザーボード・クラス510を収めている)クラス520
を、ビデオ・デバイス・ハンドル・クラス140からサブ
クラス化することにより実現することができる。このサ
ブクラス化はNuBusインプリメンテーションとSCSIビデ
オ・コントローラから完全に独立しているので、これら
のインプリメンテーションの一方または両方と組み合わ
せて実現することができる。しかし、予想されるよう
に、本発明の好適実施例によるビデオ・フレームワーク
に追加された大部分のオブジェクトは、ビデオ・デバイ
ス・ドライバとビデオ・デバイス・ハンドル・クラス11
0と140よりも下位の階層レベルにあるオブジェクトのサ
ブクラス化を含むことになる(例えば、追加の異なるオ
ブジェクトが得られる)。この中には、オブジェクトの
無効化を含めておくことも可能であるが、その場合は、
オブジェクトはこのサブクラス化がそこから行われるビ
デオ・フレームワークのレベルに置いておくことが好ま
しく、そうすれば、特定のデバイス特有の機能が得られ
る。
オブジェクトのサブクラス化を行いながら、あるいは
行わないで別のオブジェクトを追加することは、本発明
の好適実施例によれば、希望するどの程度までも続ける
ことができる。例えば、ブート・プロシージャとエラー
処理を行っているときに、ビデオ・フレームワークを構
成するオブジェクトはその多くが、第2図を参照して上
述したように必要とされる時に作成されるので、その大
部分が存在しなくても、ある情報をあるディスプレイ・
デバイスのスクリーンから表示できるようにしておくこ
とが望ましい。十分に頑丈で、スタンドアロン型グラフ
ィック・システムを用意することも可能であるが、その
場合には、当然のことながら、柔軟性を失うという犠牲
を伴うことになる。特に、ハードウェア・ディスプレイ
・デバイス、アクセラレータ、コプロセッサなどを更新
し追加する場合には、このように頑丈にするためには、
必要な限りのオブジェクトを絶えず使用可能にしておく
(例えば、リードオンリ・メモリ(ROM)に入れておく
といったように)必要があるために、柔軟性が失われる
ことになる。現実的には、ある種のオブジェクトをグラ
フィックス・クラスとして用意しておくことが好まし
い。そうすれば、任意のアプリケーションまたはプロセ
ッサ自身(例えば、ブート・コンダクタ(boot conduct
or)オブジェクトを通して)がそのクライアントとなる
ことができ、そのクライアントに最小の、しかし十分に
記述された従属クラスまたはサーバのセットをもたせて
おくことができる。
行わないで別のオブジェクトを追加することは、本発明
の好適実施例によれば、希望するどの程度までも続ける
ことができる。例えば、ブート・プロシージャとエラー
処理を行っているときに、ビデオ・フレームワークを構
成するオブジェクトはその多くが、第2図を参照して上
述したように必要とされる時に作成されるので、その大
部分が存在しなくても、ある情報をあるディスプレイ・
デバイスのスクリーンから表示できるようにしておくこ
とが望ましい。十分に頑丈で、スタンドアロン型グラフ
ィック・システムを用意することも可能であるが、その
場合には、当然のことながら、柔軟性を失うという犠牲
を伴うことになる。特に、ハードウェア・ディスプレイ
・デバイス、アクセラレータ、コプロセッサなどを更新
し追加する場合には、このように頑丈にするためには、
必要な限りのオブジェクトを絶えず使用可能にしておく
(例えば、リードオンリ・メモリ(ROM)に入れておく
といったように)必要があるために、柔軟性が失われる
ことになる。現実的には、ある種のオブジェクトをグラ
フィックス・クラスとして用意しておくことが好まし
い。そうすれば、任意のアプリケーションまたはプロセ
ッサ自身(例えば、ブート・コンダクタ(boot conduct
or)オブジェクトを通して)がそのクライアントとなる
ことができ、そのクライアントに最小の、しかし十分に
記述された従属クラスまたはサーバのセットをもたせて
おくことができる。
従って、第7図に示すように、複数のビデオ・デバイ
ス・ハンドル・オブジェクト(例えば、710)はいずれ
かが、あるいはすべてがグラフィックス・デバイス・オ
ブジェクト720をファイルとして作成するためのプロセ
スを備えており、このオブジェクトが集まって、共有メ
モリにグラフィックス・デバイス・システムを構成して
いる。各グラフィック・デバイス720は、テキストの表
示、レクタングルのドローイングおよびスクリーンへの
イメージのコピーといった、最小セットのグラフィカル
関数をサポートするグラフィック・スクリーン・イメー
ジの形体になっていることが好ましい。また、ブート・
コントローラ730やパニック・エラー・ハンドラ740とい
った、ある種のクライアントがモノクロ・ディスプレイ
だけを要求している場合であっても、カラーまたはグレ
ースケールに対してピクセル値の複数の深さビットのい
くつかをサポートしていることが好ましい。これらのグ
ラフィック・デバイス720を作成することは、少なくと
もホスト・プロセッサの構成アクセス・マネージャがビ
デオ・フレームワーク自体から使用できることを意味す
る。
ス・ハンドル・オブジェクト(例えば、710)はいずれ
かが、あるいはすべてがグラフィックス・デバイス・オ
ブジェクト720をファイルとして作成するためのプロセ
スを備えており、このオブジェクトが集まって、共有メ
モリにグラフィックス・デバイス・システムを構成して
いる。各グラフィック・デバイス720は、テキストの表
示、レクタングルのドローイングおよびスクリーンへの
イメージのコピーといった、最小セットのグラフィカル
関数をサポートするグラフィック・スクリーン・イメー
ジの形体になっていることが好ましい。また、ブート・
コントローラ730やパニック・エラー・ハンドラ740とい
った、ある種のクライアントがモノクロ・ディスプレイ
だけを要求している場合であっても、カラーまたはグレ
ースケールに対してピクセル値の複数の深さビットのい
くつかをサポートしていることが好ましい。これらのグ
ラフィック・デバイス720を作成することは、少なくと
もホスト・プロセッサの構成アクセス・マネージャがビ
デオ・フレームワーク自体から使用できることを意味す
る。
作成された時点のグラフィック・デバイス・システム
は小さく、無状態(stateless)で、それだけで十分な
システムであり、システム内の他のサーバを必要としな
いので、トークン・サーバ、レイヤ・サーバ、セマフォ
ア・サーバといったオブジェクトが欠落していても(例
えば損傷を受けているか、まだ始動されていない)使用
可能である。グラフィック・デバイス720の作成後、シ
ステムまたはデバイス構成が変更されるたびに、その変
更はビデオ・デバイス・ハンドル710によって該当のグ
ライフィック・デバイスへ中継されるので、グラフィッ
ク・デバイス・オブジェクトはピクセル・ビット・モー
ドといった、スクリーン状態の最新通知を受け取り、該
当のドローイング・メソッドを使用することになる。
は小さく、無状態(stateless)で、それだけで十分な
システムであり、システム内の他のサーバを必要としな
いので、トークン・サーバ、レイヤ・サーバ、セマフォ
ア・サーバといったオブジェクトが欠落していても(例
えば損傷を受けているか、まだ始動されていない)使用
可能である。グラフィック・デバイス720の作成後、シ
ステムまたはデバイス構成が変更されるたびに、その変
更はビデオ・デバイス・ハンドル710によって該当のグ
ライフィック・デバイスへ中継されるので、グラフィッ
ク・デバイス・オブジェクトはピクセル・ビット・モー
ドといった、スクリーン状態の最新通知を受け取り、該
当のドローイング・メソッドを使用することになる。
上記から理解されるように、ビデオ・フレームワーク
・アーキテクチャの他の部分における具体的オブジェク
トは、実行されている種々のアプリケーションに従って
スクリーン・ディスプレイのために使用されるのが一般
的である。グラフィック・デバイス・オブジェクトのク
ラス720には、特に、ビデオ・フレームワークの他の部
分に対する依存度が最小になるように、これらのオブジ
ェクトのサブセットを効率よく含めておくことが好まし
い。このようにしておくと、ユーザとのやりとりの中断
が制限され、そのアプリケーションに見合ったものと類
似のグラフィック・デバイスを使用して、その必要が起
こったとき随時に、プロンプトで訂正処置をとるように
ユーザに指示することができる。
・アーキテクチャの他の部分における具体的オブジェク
トは、実行されている種々のアプリケーションに従って
スクリーン・ディスプレイのために使用されるのが一般
的である。グラフィック・デバイス・オブジェクトのク
ラス720には、特に、ビデオ・フレームワークの他の部
分に対する依存度が最小になるように、これらのオブジ
ェクトのサブセットを効率よく含めておくことが好まし
い。このようにしておくと、ユーザとのやりとりの中断
が制限され、そのアプリケーションに見合ったものと類
似のグラフィック・デバイスを使用して、その必要が起
こったとき随時に、プロンプトで訂正処置をとるように
ユーザに指示することができる。
第1B図のビデオ・フレームワーク100が主にシステム
に依存する関係は第8図に示されている。具体的に説明
すると、ビデオ・フレームワーク100はレイヤ・サーバ
と効率よくやりとりして、機能が完備されたドローイン
グ環境を提供しなければならない。グラフィックス・シ
ステムは、該当のディスプレイ同期化820による、切れ
目のない(tear−free)グラフィックス・アイテムのド
ローイングをサポートしていなければならない。大部分
の場合、システム・グラフィックス・デバイス830は、
グラフィックス・デバイス720を含めて、ビデオ・フレ
ームワークのフレーム・バッファ・サブタイプ・オブジ
ェクトのオブジェクトによってサポートされている。そ
こで、以下では、本発明の好適実施例を説明するため
に、これらのシステム依存関係を説明する。
に依存する関係は第8図に示されている。具体的に説明
すると、ビデオ・フレームワーク100はレイヤ・サーバ
と効率よくやりとりして、機能が完備されたドローイン
グ環境を提供しなければならない。グラフィックス・シ
ステムは、該当のディスプレイ同期化820による、切れ
目のない(tear−free)グラフィックス・アイテムのド
ローイングをサポートしていなければならない。大部分
の場合、システム・グラフィックス・デバイス830は、
グラフィックス・デバイス720を含めて、ビデオ・フレ
ームワークのフレーム・バッファ・サブタイプ・オブジ
ェクトのオブジェクトによってサポートされている。そ
こで、以下では、本発明の好適実施例を説明するため
に、これらのシステム依存関係を説明する。
第9図に示す以下のシナリオは、レイヤ・サーバの好
ましい作用を示している。第9図に示すオブジェクト
(例えば、ビデオ・デバイス・ドライバ・オブジェクト
920)は、上に示したものと同じオブジェクト(例えば
ビデオ・デバイス・ドライバ・オブジェクト220)にす
ることができるが、必ずしもそうする必要はない。新し
い参照符号はそれに応じて示されている。第2図を参照
して簡単に上述したように、ブート・プロシージャはシ
ステム・スタートアップ・シーケンスを含んでいる。こ
の中には、ディスプレイ・デバイスを含むシステムの種
々の部分をシステム・バス上に沿って探し出す構成アク
セス・マネージャ910が含まれている。ビデオ・ディス
プレイ・デバイスが見つかると、対応するビデオ・デバ
イス・ドライバ・オブジェクト920が始動またはインス
タンス化される。そのあと、ビデオ・デバイス・ドライ
バ920はビデオ・デバイス・データ・エンカプセルレー
タ・オブジェクト930を作成し、その関係パラメータを
ハードウェア構成サーバ930へ送る。ビデオ・デバイス
・ドライバ920は960aや960bのようにビデオ・デバイス
・ハンドル・オブジェクトを作成し、それをレイヤ・サ
ーバ950へ送る。これらのビデオ・デバイス・ハンドル
・オブジェクトはあとで構成が変更されると、そのこと
をレイヤ・サーバに通知する。レイヤ・サーバの方は構
成変更が差し迫っていることをビュー・システム970に
通知する。これを受けて、ビュー・システムは、レイヤ
・サーバ950が新しいシステム構成に従ってディスプレ
イの再生成を要求することが可能になるまで、現在のド
ローイング・タスク980をロックダウンしておく。再生
成されると、新しいディスプレイが通常通りにビュー・
システム(view system)を通して再生成される。ビデ
オ・フレームワークは、ディスプレイがオフにされたと
きや、なんらかの方法で変更されたとき、ディスプレイ
・レンダリングを自動的に変更する機能を備えている。
ディスプレイ・レンダリングが変更されて、ディスプレ
イ・レイアウトと構成が変わっても、ウィンドウ情報や
ストアされたイメージは消失しない。
ましい作用を示している。第9図に示すオブジェクト
(例えば、ビデオ・デバイス・ドライバ・オブジェクト
920)は、上に示したものと同じオブジェクト(例えば
ビデオ・デバイス・ドライバ・オブジェクト220)にす
ることができるが、必ずしもそうする必要はない。新し
い参照符号はそれに応じて示されている。第2図を参照
して簡単に上述したように、ブート・プロシージャはシ
ステム・スタートアップ・シーケンスを含んでいる。こ
の中には、ディスプレイ・デバイスを含むシステムの種
々の部分をシステム・バス上に沿って探し出す構成アク
セス・マネージャ910が含まれている。ビデオ・ディス
プレイ・デバイスが見つかると、対応するビデオ・デバ
イス・ドライバ・オブジェクト920が始動またはインス
タンス化される。そのあと、ビデオ・デバイス・ドライ
バ920はビデオ・デバイス・データ・エンカプセルレー
タ・オブジェクト930を作成し、その関係パラメータを
ハードウェア構成サーバ930へ送る。ビデオ・デバイス
・ドライバ920は960aや960bのようにビデオ・デバイス
・ハンドル・オブジェクトを作成し、それをレイヤ・サ
ーバ950へ送る。これらのビデオ・デバイス・ハンドル
・オブジェクトはあとで構成が変更されると、そのこと
をレイヤ・サーバに通知する。レイヤ・サーバの方は構
成変更が差し迫っていることをビュー・システム970に
通知する。これを受けて、ビュー・システムは、レイヤ
・サーバ950が新しいシステム構成に従ってディスプレ
イの再生成を要求することが可能になるまで、現在のド
ローイング・タスク980をロックダウンしておく。再生
成されると、新しいディスプレイが通常通りにビュー・
システム(view system)を通して再生成される。ビデ
オ・フレームワークは、ディスプレイがオフにされたと
きや、なんらかの方法で変更されたとき、ディスプレイ
・レンダリングを自動的に変更する機能を備えている。
ディスプレイ・レンダリングが変更されて、ディスプレ
イ・レイアウトと構成が変わっても、ウィンドウ情報や
ストアされたイメージは消失しない。
本発明の好適実施例のビデオ・フレームワークはアニ
メーションもサポートしていることが好ましい。アニメ
ーションは、ライブ・ビデオを含めて(これに限定され
ない)、特定のスプライト(sprite)のレンダリングの
ためのビデオ情報の同期化ビット・レベル・トランスフ
ァ(bit level transfer−BLTまたは“Blit")によって
行われる。ビット・レベル・トランスファとレンダリン
グはどちらも、ディスプレイ・デバイスと同期化させて
おけば、作られるスプライト・イメージが切れることが
ない。従って、ビデオ・フレームワークはディスプレイ
・ハードウェアのプロパティを理解していなければなら
ないが、この情報は、ビデオ・デバイス・ハンドルがあ
とで照会に応答したとき、それを受けて行われるスプラ
イトのBLTレクタングルのドローイング時間を実験的に
測定することによって得ることが好ましい。
メーションもサポートしていることが好ましい。アニメ
ーションは、ライブ・ビデオを含めて(これに限定され
ない)、特定のスプライト(sprite)のレンダリングの
ためのビデオ情報の同期化ビット・レベル・トランスフ
ァ(bit level transfer−BLTまたは“Blit")によって
行われる。ビット・レベル・トランスファとレンダリン
グはどちらも、ディスプレイ・デバイスと同期化させて
おけば、作られるスプライト・イメージが切れることが
ない。従って、ビデオ・フレームワークはディスプレイ
・ハードウェアのプロパティを理解していなければなら
ないが、この情報は、ビデオ・デバイス・ハンドルがあ
とで照会に応答したとき、それを受けて行われるスプラ
イトのBLTレクタングルのドローイング時間を実験的に
測定することによって得ることが好ましい。
アニメーション・スプライトをドローイングするため
の本発明の好適実施例の特徴を完璧化するために、ビー
ム位置カウンタ(beam position counter)のようなデ
ィスプレイ・ロケーション・カウンタ(display locati
on counter)を使用しないハードウェア・ディスプレイ
・デバイス用にアニメーション割込みハンドラを用意し
ておくことが好ましい。特定のディスプレイ・デバイス
がこの種のカウントを使用していれば、そのカウンタか
ら直接に同期化することができる。しかし、垂直ブラン
キング(VBL)割込みのような割込みを使用するデバイ
スでは、別のアニメーション割込みハンドラを、本発明
の好適実施例によるビデオ・フレームワークに置いてお
くことができる。その場合は、アニメーション割込みハ
ンドラはビデオ・デバイスから割込みを受け取ると、そ
の割込みの実際のクロック・タイムにマークを付けるこ
とになる。スプライト・オブジェクトは最後にマークさ
れたタイムをあとでピックアップし、そのあとで、次に
使用可能なタイムを計算し、次のアニメーション・フレ
ームが得られるBLTに続いて、その時刻にスプライトを
ドローイングすることができる。
の本発明の好適実施例の特徴を完璧化するために、ビー
ム位置カウンタ(beam position counter)のようなデ
ィスプレイ・ロケーション・カウンタ(display locati
on counter)を使用しないハードウェア・ディスプレイ
・デバイス用にアニメーション割込みハンドラを用意し
ておくことが好ましい。特定のディスプレイ・デバイス
がこの種のカウントを使用していれば、そのカウンタか
ら直接に同期化することができる。しかし、垂直ブラン
キング(VBL)割込みのような割込みを使用するデバイ
スでは、別のアニメーション割込みハンドラを、本発明
の好適実施例によるビデオ・フレームワークに置いてお
くことができる。その場合は、アニメーション割込みハ
ンドラはビデオ・デバイスから割込みを受け取ると、そ
の割込みの実際のクロック・タイムにマークを付けるこ
とになる。スプライト・オブジェクトは最後にマークさ
れたタイムをあとでピックアップし、そのあとで、次に
使用可能なタイムを計算し、次のアニメーション・フレ
ームが得られるBLTに続いて、その時刻にスプライトを
ドローイングすることができる。
以上の説明から明らかなように、本発明の好適実施例
によるビデオ・フレームワークは、デバイスから独立
し、マシンから独立した方法でデータ処理システムを動
的に再構成する機能を備えているので、システム再構成
が変更されたときや、デバイス依存ディスプレイ・ドラ
イバのオペレーションのためのライブラリ・ファイルが
アクセスできないとき、ディスプレイが切り離されるの
を最小限にとどめることができる。
によるビデオ・フレームワークは、デバイスから独立
し、マシンから独立した方法でデータ処理システムを動
的に再構成する機能を備えているので、システム再構成
が変更されたときや、デバイス依存ディスプレイ・ドラ
イバのオペレーションのためのライブラリ・ファイルが
アクセスできないとき、ディスプレイが切り離されるの
を最小限にとどめることができる。
フロントページの続き (56)参考文献 WEINARD ET AL,ET+ + − An Object−Orie nted Application F ramework in C++,OO PSLA’88,SAN DIEGO,C ALIFORNIA,米国,1988年11月 30日,VOL.23,no.11,47−57 LIN ET AL,Dynamic Window Configurat ion In An Object O riented Programmin g Enviroment,COMPS AC’89 ORLAND FLORID A,米国,1989年9月20日,381−388 (58)調査した分野(Int.Cl.7,DB名) G09G 5/00 - 5/42 G06T 11/00
Claims (17)
- 【請求項1】プロセッサ(10)と、メモリ(14)と、前
記メモリ内にあり、前記プロセッサを制御するオブジェ
クト指向オペレーティング・システムと、バス(12)に
よって前記プロセッサに接続されるビデオ・デバイス
(38)とを有するコンピュータにおけるグラフィック情
報を処理するビデオ・フレームワークを備える装置であ
って、 (a) 複数のビデオ・デバイス・ドライバ・サブクラ
ス(120、130)のパラメータ化された階層を有するビデ
オ・デバイス・ドライバ・クラス情報を、前記メモリ
(110')にロードする手段と、 (b) 前記複数のビデオ・デバイス・ドライバ・クラ
スの階層の中の各ビデオ・デバイス・ドライバ・サブク
ラスに対応するビデオ・デバイス・ハンドル・サブクラ
ス(140、160、230)と共に、サブクラス(150、520、5
30)の階層を有するビデオ・デバイス・ハンドル・クラ
ス情報を、前記メモリ(140')にロードする手段と、 (c) 複数のデータ・エンカプセレータ・サブクラス
(180、190)の階層を有するデータ・エンカプセレータ
・クラス情報を、前記メモリにロードする手段と、 (d) 前記ビデオ・デバイスを識別し、該ビデオ・デ
バイスのパラメータを使用して、複数のビデオ・デバイ
ス・ドライバ・サブクラスの階層から選択されたビデオ
・デバイス・ドライバ・クラスからビデオ・デバイス・
ドライバ・オブジェクト(220)をインスタンス化す
る、識別手段と、 (e) 前記ビデオ・デバイス・ドライバ・オブジェク
ト内にあるプログラム・コードであって、前記選択され
たビデオ・デバイス・ドライバ・クラスに対応するビデ
オ・デバイス・ハンドル・クラスからビデオ・デバイス
・ハンドル・オブジェクト(230)をインスタンス化す
るプログラム・コードを実行する手段と、 (f) 前記ビデオ・デバイス・ハンドル・オブジェク
ト内にあるプログラム・コードであって、前記グラフィ
ック情報を処理する前記プロセッサにより使用されるビ
デオ・デバイス・データをストアする手段を有するデー
タ・エンカプセレータ・オブジェクト(250)を、前記
データ・エンカプセレータ・クラス情報から、インスタ
ンス化するプログラム・コードを実行する手段と を備えることを特徴とする装置。 - 【請求項2】請求項1に記載の装置において、前記識別
手段は、前記バスに取り付けられる装置を識別する制御
メソッドを含むバス・オブジェクトを組み込んだ構成ア
クセス・マネージャ・オブジェクト(210)であること
を特徴とする装置。 - 【請求項3】請求項2に記載の装置において、前記メモ
リ(310)にバス・アクセス・クラス情報をロードする
手段と、前記ビデオ・デバイスに応答して、前記バス・
アクセス・クラス情報から、前記ビデオ・デバイスを表
す複数のパラメータを含むバス・アクセス・オブジェク
ト(210)をインスタンス化する手段とを更に備えるこ
とを特徴とする装置。 - 【請求項4】請求項1に記載の装置において、 複数のビデオ・デバイス・ハンドル・サブクラスの前記
階層は、フレーム・バッファ・ビデオ・デバイス・ハン
ドル・サブクラス(150)を有し、かつ、 複数のビデオ・デバイス・サブクラスの前記階層は、ビ
デオ・フレーム・バッファを操作する制御データ・コン
ポーネントおよび制御メソッドと、前記フレーム・バッ
ファ・ビデオ・デバイス・ハンドル・サブクラスからフ
レーム・バッファ・ビデオ・デバイス・ハンドル・オブ
ジェクトをインスタンス化するメソッドとを有するフレ
ーム・バッファ・ビデオ・デバイス・ドライバ・サブク
ラス(120) を有することを特徴とする装置。 - 【請求項5】請求項4に記載の装置において、 複数のビデオ・デバイス・ハンドル・サブクラスの前記
階層(140')は、前記フレーム・バッファ・ビデオ・デ
バイス・ハンドル・サブクラス(150)から派生したカ
ラー・ルックアップ・テーブル・フレーム・バッファ・
ビデオ・デバイス・ハンドル・サブクラス(160、520)
を有し、かつ、 複数のビデオ・デバイス・サブクラスの前記階層(11
0')は、前記フレーム・バッファ・ビデオ・デバイス・
ドライバ・サブクラス(120)から派生したカラー・ル
ックアップ・テーブル・フレーム・バッファ・ビデオ・
デバイス・ドライバ・サブクラス(130)を具備し、 前記カラー・ルックアップ・テーブル・フレーム・バッ
ファ・ビデオ・デバイス・ドライバ・サブクラスは、カ
ラー・ルックアップ・テーブルを操作する制御データ・
コンポーネントおよび制御メソッドと、前記カラー・ル
ックアップ・テーブル・フレーム・バッファ・ビデオ・
デバイス・ハンドル・サブクラスからカラー・ルックア
ップ・テーブル・フレーム・バッファ・ビデオ・デバイ
ス・ハンドル・オブジェクトをインスタンス化するメソ
ッドとを備える ことを特徴とする装置。 - 【請求項6】請求項5に記載の装置において、 割り込みハンドラ・クラス(133)を更に備え、 カラー・ルックアップ・テーブル・フレーム・バッファ
・ビデオ・デバイス・ドライバ・サブクラス(130)
は、前記割り込みハンドラ・クラスからインスタンス化
される少なくとも一つの割り込みハンドラ・オブジェク
トへの参照を有する ことを特徴とする装置。 - 【請求項7】請求項1に記載の装置において、 前記複数のビデオ・デバイス・ハンドル・サブクラスの
中の少なくとも一つは、最小セットのグラフィック機能
を提供するグラフィック・デバイス・オブジェクトをイ
ンスタンス化するメソッドを備える ことを特徴とする装置。 - 【請求項8】プロセッサおよびメモリを有するコンピュ
ータにおけるグラフィック情報の処理に使用され、オブ
ジェクト指向オペレーティング・システムによって制御
される請求項1に記載の装置において、 (a) ビデオ・デバイス・ドライバのクラス(330)
であって、構成アクセス・マネージャ・クラス(320)
を含むメモリ内において、そのクラスから派生した少な
くとも一つのサブクラスを有するビデオ・デバイス・ド
ライバのクラス(330)と、 (b) ビデオ・デバイス・ハンドル・オブジェクトの
クラス(140)であって、そのクラスから派生したサブ
クラスを有し、各ビデオ・デバイス・ハンドル・オブジ
ェクトの各サブクラスは、前記メモリ内に格納された前
記ビデオ・デバイス・ドライバのクラスから派生したサ
ブクラスに対応する、ビデオ・デバイス・ハンドル・オ
ブジェクトのクラス(140)と、 (c) データ・エンカプセレータのクラス(190)で
あって、そのクラスから派生した少なくとも一つのビデ
オ・デバイス・データ・エンカプセレータ・サブクラス
(170)を有するデータ・エンカプセレータのクラス(1
90)と を具備し、 前記ビデオ・デバイス・ハンドル・オブジェクトのクラ
スは、グラフィック情報を処理する前記プロセッサによ
り使用される対応ビデオ・デバイス・データ・エンカプ
セレータ・オブジェクトをインスタンス化する手段を組
み込んでいる ことを特徴とする装置。 - 【請求項9】請求項8に記載の装置において、 前記構成アクセス・マネージャ・クラス(320)に含ま
れるバス・アクセス・オブジェクトのクラス(310)
を、更に備える ことを特徴とする装置。 - 【請求項10】請求項8に記載の装置において、 複数のバス・アクセス・オブジェクトの第2のクラス
(340)に含まれ、複数のバス・アクセス・オブジェク
ト(340)の前記第2のクラスの複数のオブジェクトに
よってアクセスされるバスに接続可能となっているディ
スプレイ・デバイスを表すバス・アクセス・オブジェク
トの第1のクラス(350)を、更に備える ことを特徴とする装置。 - 【請求項11】オブジェクト指向オペレーティング・シ
ステム内でのオペレーション用のコンピュータ・プロセ
ッサのメモリ内のグラフィック情報を処理する方法であ
って、 (a) 複数のビデオ・デバイス・ドライバ・サブクラ
ス(120、130)のパラメータ化された階層を有するビデ
オ・デバイス・ドライバ・クラス情報を前記メモリ(11
0')にロードするステップと、 (b) 複数のビデオ・デバイス・ドライバ・クラスの
前記階層の各ビデオ・デバイス・ドライバ・サブクラス
に対応するビデオ・デバイス・ハンドル・サブクラス
(140、160、230)を備えるサブクラス(150、240、53
0)の階層を有するビデオ・デバイス・ハンドル・クラ
ス情報を、メモリ(140')にロードするステップと、 (c) 複数のデータ・エンカプセレータ・サブクラス
(180、190)の階層を有するデータ・エンカプセレータ
・クラス情報を、前記メモリにロードするステップと、 (d) 前記ビデオ・デバイスを識別して、該ビデオ・
デバイスの複数のパラメータを使用して複数のビデオ・
デバイス・ドライバ・サブクラスの前記階層から選択さ
れるビデオ・デバイス・ドライバ・クラスからビデオ・
デバイス・ドライバ・オブジェクト(220)をインスタ
ンス化するステップと、 (e) 前記選択されたビデオ・デバイス・ドライバ・
クラスに対応するビデオ・デバイス・ハンドル・クラス
から、ビデオ・デバイス・ハンドル・オブジェクト(23
0)を前記ビデオ・デバイス・ドライバ・オブジェクト
の制御メソッドによってインスタンス化するステップ
と、 (f) グラフィック情報を処理する前記プロセッサに
よって使用されたビデオ・デバイス・データを格納する
前記データ・エンカプセレータ・オブジェクトを使用し
て、前記ビデオ・デバイス・ハンドル・オブジェクト内
の制御メソッドによって前記データ・エンカプセレータ
・クラス情報からデータ・エンカプセレータ・オブジェ
クト(250)をインスタンス化するステップと を備えることを特徴とする方法。 - 【請求項12】請求項11に記載の方法であって、 (a) 少なくとも一つの前記プロセッサの構成変更の
検出に応答してビデオ・デバイス・データ・エンカプセ
レータ・オブジェクト(250)を作成するステップと、 (b) 前記ビデオ・デバイス・データ・エンカプセレ
ータ・オブジェクト(250)を含むビデオ・デバイス・
ハンドル・オブジェクト(230)への前記構成変更のパ
ラメータを伝送するステップと、 (c) 前記ビデオ・デバイス・ハンドル・オブジェク
トによって生成される信号に応答して少なくとも一つの
ディスプレイ上のドローイング・タスクをロックするス
テップと、 (d) ビデオ・デバイス・ハンドル・オブジェクト
(230)を変更またはインスタンス化することによって
前記プロセッサの構成を変更するステップと、 (e) 前記ビデオ・デバイス・ハンドル・オブジェク
トにコマンドを発行して、該ビデオ・デバイス・ハンド
ル・オブジェクトにより、前記ロックされたドローイン
グ・タスク(980)に対応するディスプレイを再生し、
前記ドローイング・タスクのロックを解除するステップ
と を更に備えることを特徴とする方法。 - 【請求項13】請求項11に記載の方法であって、 前記メモリ(310)にバス・アクセス・クラス情報をロ
ードするステップと、 前記ビデオ・デバイスに応答して前記バス・アクセス・
クラス情報からバス・アクセス・マネージャ・オブジェ
クト(210)をインスタンス化するステップとを更に具
備し、 前記バス・アクセス・マネージャ・オブジェクトは前記
バスに接続される複数のデバイスを識別する前記ビデオ
・デバイスおよび制御メソッドを表す複数のパラメータ
を更に備える ことを特徴とする方法。 - 【請求項14】請求項11に記載の方法において、 前記ステップ(b)でロードされた前記ビデオ・デバイ
ス・ハンドル・サブクラスの階層は、フレーム・バッフ
ァ・ビデオ・デバイス・ハンドル・サブクラス(150)
を具備し、かつ、 前記ビデオ・デバイス・サブクラスの階層は、 ビデオ・フレーム・バッファを操作する制御データ・コ
ンポーネントおよび制御メソッドと、 前記フレーム・バッファ・ビデオ・デバイス・ハンドル
・サブクラスからフレーム・バッファ・ビデオ・デバイ
ス・ハンドル・オブジェクトをインスタンス化するメソ
ッドと を有するフレーム・バッファ・ビデオ・デバイス・ドラ
イバ・サブクラス(120)を備える ことを特徴とする方法。 - 【請求項15】請求項14に記載の方法において、 前記ステップ(b)でロードされた前記ビデオ・デバイ
ス・ハンドル・サブクラスの階層(140')は、前記フレ
ーム・バッファ・ビデオ・デバイス・ハンドル・サブク
ラス(150)から派生したカラー・ルックアップ・テー
ブル・フレーム・バッファ・ビデオ・デバイス・ハンド
ル・サブクラス(160、520)を備え、かつ、 前記ビデオ・デバイス・ドライバ・サブクラスの階層
(110')は、前記フレーム・バッファ・ビデオ・デバイ
ス・ドライバ・サブクラス(120)から派生したカラー
・ルックアップ・テーブル・フレーム・バッファ・ビデ
オ・デバイス・ドライバ・サブクラス(130)を具備
し、 前記カラー・ルックアップ・テーブル・フレーム・バッ
ファ・ビデオ・デバイス・ドライバ・サブクラスは、 カラー・ルックアップ・テーブルを操作する制御データ
・コンポーネントおよび制御メソッドと、 前記カラー・ルックアップ・テーブル・フレーム・バッ
ファ・ビデオ・デバイス・ハンドル・サブクラスからカ
ラー・ルックアップ・テーブル・フレーム・バッファ・
ビデオ・デバイス・ハンドル・オブジェクトをインスタ
ンス化するメソッドとを備える ことを特徴とする方法。 - 【請求項16】請求項15に記載の方法において、割り込
みハンドラ・クラス(133)を作成するステップを更に
具備し、前記カラー・ルックアップ・テーブル・フレー
ム・バッファ・ビデオ・デバイス・ドライバ・サブクラ
ス(130)は、前記割り込みハンドラ・クラスからイン
スタンス化された少なくとも一つの割り込みハンドラ・
オブジェクトへの参照を含むことを特徴とする方法。 - 【請求項17】請求項11に記載の方法において、更に、 (a) 構成アクセス・マネージャ・クラス(320)を
含むメモリ内に、ビデオ・デバイス・ドライバのクラス
(330)を作成するステップであって、該ビデオ・デバ
イス・ドライバのクラス(330)は、そのクラスから派
生した少なくとも一つのサブクラスを包含しているステ
ップと、 (b) ビデオ・デバイス・ハンドル・オブジェクトの
クラス(140)を作成するステップであって、該ビデオ
・デバイス・ハンドル・オブジェクトのクラス(140)
は、そのクラスから派生したサブクラスであって、前記
メモリ内に格納された前記ビデオ・デバイス・ドライバ
・クラスからのサブクラスに対応するサブクラスを包含
しているステップと、 (c) データ・エンカプセレータのクラス(170)を
作成するステップであって、該データ・エンカプセレー
タのクラス(170)は、そのクラスから派生した少なく
とも一つのビデオ・デバイス・データ・エンカプセレー
タ・サブクラス(180)を包含しているステップとを具
備し、 前記ビデオ・デバイス・ハンドル・オブジェクトのクラ
スは、グラフィック情報を処理する前記プロセッサによ
って使用される対応ビデオ・デバイス・データ・エンカ
プセレータ・オブジェクトをインスタンス化する役割を
果たすことを特徴とする方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/097,507 | 1993-07-27 | ||
US08/097,507 US5471675A (en) | 1993-07-27 | 1993-07-27 | Object oriented video framework system |
PCT/US1994/000125 WO1995004320A1 (en) | 1993-07-27 | 1994-01-05 | Object oriented video framework system |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH09500978A JPH09500978A (ja) | 1997-01-28 |
JP3357368B2 true JP3357368B2 (ja) | 2002-12-16 |
Family
ID=22263724
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP50578595A Expired - Fee Related JP3357368B2 (ja) | 1993-07-27 | 1994-01-05 | オブジェクト指向ビデオ・フレームワーク・システム |
Country Status (8)
Country | Link |
---|---|
US (1) | US5471675A (ja) |
EP (1) | EP0701714B1 (ja) |
JP (1) | JP3357368B2 (ja) |
CN (1) | CN1126031C (ja) |
AU (1) | AU5991794A (ja) |
CA (1) | CA2147848A1 (ja) |
DE (1) | DE69409514T2 (ja) |
WO (1) | WO1995004320A1 (ja) |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5682529A (en) * | 1994-03-14 | 1997-10-28 | Apple Computer, Inc. | System for dynamically accommodating changes in display configuration by notifying changes to currently running application programs to generate information by application programs to conform to changed configuration |
US5655148A (en) * | 1994-05-27 | 1997-08-05 | Microsoft Corporation | Method for automatically configuring devices including a network adapter without manual intervention and without prior configuration information |
US6763454B2 (en) | 1994-05-27 | 2004-07-13 | Microsoft Corp. | System for allocating resources in a computer system |
US5748980A (en) * | 1994-05-27 | 1998-05-05 | Microsoft Corporation | System for configuring a computer system |
US5787246A (en) * | 1994-05-27 | 1998-07-28 | Microsoft Corporation | System for configuring devices for a computer system |
US5634092A (en) * | 1994-09-30 | 1997-05-27 | Apple Computer, Inc. | Color image processing system which provides multiple image processing operations through a single interface |
US5727212A (en) * | 1995-04-12 | 1998-03-10 | International Business Machines Corporation | Object oriented device driver system for procedural device drivers |
US6421740B1 (en) * | 1995-12-27 | 2002-07-16 | Apple Computer, Inc. | Dynamic error lookup handler hierarchy |
US5978856A (en) * | 1996-01-26 | 1999-11-02 | Dell Usa, L.P. | System and method for reducing latency in layered device driver architectures |
US5802364A (en) * | 1996-04-15 | 1998-09-01 | Sun Microsystems, Inc. | Metadevice driver rename/exchange technique for a computer system incorporating a plurality of independent device drivers |
US6272555B1 (en) | 1996-07-01 | 2001-08-07 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server-centric interprise computing framework system |
US5848246A (en) | 1996-07-01 | 1998-12-08 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server session manager in an interprise computing framework system |
US5999972A (en) | 1996-07-01 | 1999-12-07 | Sun Microsystems, Inc. | System, method and article of manufacture for a distributed computer system framework |
US6038590A (en) | 1996-07-01 | 2000-03-14 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server state machine in an interprise computing framework system |
US6424991B1 (en) | 1996-07-01 | 2002-07-23 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server communication framework |
US5987245A (en) | 1996-07-01 | 1999-11-16 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture (#12) for a client-server state machine framework |
US6266709B1 (en) | 1996-07-01 | 2001-07-24 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server failure reporting process |
US6304893B1 (en) * | 1996-07-01 | 2001-10-16 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server event driven message framework in an interprise computing framework system |
US6434598B1 (en) | 1996-07-01 | 2002-08-13 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server graphical user interface (#9) framework in an interprise computing framework system |
US5809247A (en) * | 1996-07-22 | 1998-09-15 | Intel Corporation | Method and apparatus for guided touring of internet/intranet websites |
US5951680A (en) * | 1997-06-24 | 1999-09-14 | International Business Machines Corporation | Configurator object |
US6731756B1 (en) * | 1999-06-21 | 2004-05-04 | Elisar Software Corporation, Inc. | Method for securing video images |
US6480955B1 (en) * | 1999-07-09 | 2002-11-12 | Lsi Logic Corporation | Methods and apparatus for committing configuration changes to managed devices prior to completion of the configuration change |
US6480901B1 (en) | 1999-07-09 | 2002-11-12 | Lsi Logic Corporation | System for monitoring and managing devices on a network from a management station via a proxy server that provides protocol converter |
US6762798B1 (en) * | 1999-07-13 | 2004-07-13 | Sun Microsystems, Inc. | Methods and apparatus for providing video control for television applications |
US7136192B2 (en) * | 2004-06-07 | 2006-11-14 | Master Colors | Color correction method with improved image translation accuracy |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4821220A (en) * | 1986-07-25 | 1989-04-11 | Tektronix, Inc. | System for animating program operation and displaying time-based relationships |
US4885717A (en) * | 1986-09-25 | 1989-12-05 | Tektronix, Inc. | System for graphically representing operation of object-oriented programs |
US5165018A (en) * | 1987-01-05 | 1992-11-17 | Motorola, Inc. | Self-configuration of nodes in a distributed message-based operating system |
US4891630A (en) * | 1988-04-22 | 1990-01-02 | Friedman Mark B | Computer vision system with improved object orientation technique |
US4953080A (en) * | 1988-04-25 | 1990-08-28 | Hewlett-Packard Company | Object management facility for maintaining data in a computer system |
EP0347162A3 (en) * | 1988-06-14 | 1990-09-12 | Tektronix, Inc. | Apparatus and methods for controlling data flow processes by generated instruction sequences |
US5041992A (en) * | 1988-10-24 | 1991-08-20 | University Of Pittsburgh | Interactive method of developing software interfaces |
US5133075A (en) * | 1988-12-19 | 1992-07-21 | Hewlett-Packard Company | Method of monitoring changes in attribute values of object in an object-oriented database |
US5050090A (en) * | 1989-03-30 | 1991-09-17 | R. J. Reynolds Tobacco Company | Object placement method and apparatus |
DE69031191T2 (de) * | 1989-05-15 | 1998-02-12 | Ibm | System zur Steuerung von Zugriffsprivilegien |
US5060276A (en) * | 1989-05-31 | 1991-10-22 | At&T Bell Laboratories | Technique for object orientation detection using a feed-forward neural network |
US5125091A (en) * | 1989-06-08 | 1992-06-23 | Hazox Corporation | Object oriented control of real-time processing |
US5371885A (en) * | 1989-08-29 | 1994-12-06 | Microsoft Corporation | High performance file system |
US5181162A (en) * | 1989-12-06 | 1993-01-19 | Eastman Kodak Company | Document management and production system |
US5093914A (en) * | 1989-12-15 | 1992-03-03 | At&T Bell Laboratories | Method of controlling the execution of object-oriented programs |
US5075848A (en) * | 1989-12-22 | 1991-12-24 | Intel Corporation | Object lifetime control in an object-oriented memory protection mechanism |
US5161222A (en) * | 1990-08-20 | 1992-11-03 | Human Microprocessing, Inc. | Software engine having an adaptable driver for interpreting variables produced by a plurality of sensors |
US5151987A (en) * | 1990-10-23 | 1992-09-29 | International Business Machines Corporation | Recovery objects in an object oriented computing environment |
US5119475A (en) * | 1991-03-13 | 1992-06-02 | Schlumberger Technology Corporation | Object-oriented framework for menu definition |
US5291585A (en) * | 1991-07-29 | 1994-03-01 | Dell Usa, L.P. | Computer system having system feature extension software containing a self-describing feature table for accessing I/O devices according to machine-independent format |
US5186629A (en) * | 1991-08-22 | 1993-02-16 | International Business Machines Corporation | Virtual graphics display capable of presenting icons and windows to the blind computer user and method |
US5315703A (en) * | 1992-12-23 | 1994-05-24 | Taligent, Inc. | Object-oriented notification framework system |
-
1993
- 1993-07-27 US US08/097,507 patent/US5471675A/en not_active Expired - Lifetime
-
1994
- 1994-01-05 DE DE69409514T patent/DE69409514T2/de not_active Expired - Lifetime
- 1994-01-05 CN CN94190867A patent/CN1126031C/zh not_active Expired - Lifetime
- 1994-01-05 AU AU59917/94A patent/AU5991794A/en not_active Abandoned
- 1994-01-05 EP EP94906033A patent/EP0701714B1/en not_active Expired - Lifetime
- 1994-01-05 JP JP50578595A patent/JP3357368B2/ja not_active Expired - Fee Related
- 1994-01-05 CA CA002147848A patent/CA2147848A1/en not_active Abandoned
- 1994-01-05 WO PCT/US1994/000125 patent/WO1995004320A1/en active IP Right Grant
Non-Patent Citations (2)
Title |
---|
LIN ET AL,Dynamic Window Configuration In An Object Oriented Programming Enviroment,COMPSAC’89 ORLAND FLORIDA,米国,1989年9月20日,381−388 |
WEINARD ET AL,ET++ − An Object−Oriented Application Framework in C++,OOPSLA’88,SAN DIEGO,CALIFORNIA,米国,1988年11月30日,VOL.23,no.11,47−57 |
Also Published As
Publication number | Publication date |
---|---|
US5471675A (en) | 1995-11-28 |
EP0701714B1 (en) | 1998-04-08 |
JPH09500978A (ja) | 1997-01-28 |
DE69409514T2 (de) | 1999-04-22 |
AU5991794A (en) | 1995-02-28 |
CA2147848A1 (en) | 1995-02-09 |
WO1995004320A1 (en) | 1995-02-09 |
CN1116008A (zh) | 1996-01-31 |
CN1126031C (zh) | 2003-10-29 |
DE69409514D1 (de) | 1998-05-14 |
EP0701714A1 (en) | 1996-03-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3357368B2 (ja) | オブジェクト指向ビデオ・フレームワーク・システム | |
US5734852A (en) | Method and apparatus for displaying hardware dependent graphics in an object-oriented operating system | |
US5668997A (en) | Object-oriented system for servicing windows | |
US6084553A (en) | Design and method for a large, virtual workspace | |
US6064382A (en) | Object oriented apparatus and method for providing a graphical user interface for host-based software applications | |
US6104359A (en) | Allocating display information | |
US6907482B2 (en) | Universal graphic adapter for interfacing with hardware and means for encapsulating and abstracting details of the hardware | |
US5740455A (en) | Enhanced compound document processing architectures and methods therefor | |
US6957391B2 (en) | Application program interface that can maintain similar look and feel of a displayed image regardless of whether the interface is platform dependent or platform independent | |
US5621434A (en) | Cursor manipulation system and method | |
US6918093B2 (en) | Inheritance of background color in a containment hierarchy of objects in a graphical user interface | |
US20020180790A1 (en) | System and method for encapsulating software components in an application program interface using a proxy object | |
JPH07160608A (ja) | プログラム・アプリケーションを表示するためのシステムおよび方法 | |
JPH0628168A (ja) | オブジェクト指向プログラミングを実現する方法 | |
JP2010033607A (ja) | 動的プログラム可能なモード切換えディバイスドライバアーキテクチャ | |
US20020188672A1 (en) | Server-based computing environment | |
EP1056001A2 (en) | System and method for dynamically loading platform independent drivers | |
US20020180791A1 (en) | System and method for fast drawing of text fields and labels using a java swing application program interface | |
US20020180793A1 (en) | Dynamic buffering of graphic images by a platform independent application program interface | |
US5841434A (en) | System and method for multi-platform implementation of objects on windowing computer systems | |
US7562306B2 (en) | System and method for reducing memory use associated with the graphical representation of a list control | |
US20020184608A1 (en) | Method and apparatus for lightweight support on set top box | |
US5632033A (en) | Variable resolution method and arrangement | |
Freitas et al. | Design of eXcursion version 2 for Windows, Windows NT, and Windows 95 | |
CN117472434A (zh) | 智能设备的图像处理方法、装置、计算机设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |