JP2006073001A - ハードウェアグラフィックレイヤへのトランスペアレントなアクセスを提供するシステム - Google Patents

ハードウェアグラフィックレイヤへのトランスペアレントなアクセスを提供するシステム Download PDF

Info

Publication number
JP2006073001A
JP2006073001A JP2005248506A JP2005248506A JP2006073001A JP 2006073001 A JP2006073001 A JP 2006073001A JP 2005248506 A JP2005248506 A JP 2005248506A JP 2005248506 A JP2005248506 A JP 2005248506A JP 2006073001 A JP2006073001 A JP 2006073001A
Authority
JP
Japan
Prior art keywords
event
layer
video
draw
graphics card
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.)
Pending
Application number
JP2005248506A
Other languages
English (en)
Inventor
Darrin Fry
フライ ダリン
Angela Lin
リン アンジェラ
David Donohoe
ドノホー デービッド
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.)
QNX Software Systems Ltd
Original Assignee
QNX Software Systems 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 QNX Software Systems Ltd filed Critical QNX Software Systems Ltd
Publication of JP2006073001A publication Critical patent/JP2006073001A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04815Interaction with a metaphor-based environment or interaction object displayed as three-dimensional, e.g. changing the user viewpoint with respect to the environment or object
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/14Display of multiple viewports
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/363Graphics controllers
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/10Mixing of images, i.e. displayed pixel being the result of an operation, e.g. adding, on the corresponding input pixels
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/12Overlay of images, i.e. displayed pixel being the result of switching between the corresponding input pixels
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2352/00Parallel handling of streams of display data
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/08Power processing, i.e. workload management for processors involved in display operations, such as CPUs or GPUs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Human Computer Interaction (AREA)
  • Computer Graphics (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Image Generation (AREA)

Abstract

【課題】 コンピュータファイル管理の新しい方法とシステムとを提供する。
【解決手段】 ソフトウェアアプリケーションとオペレーティングシステムとを含むコンピュータ環境において、コンピュータはグラフィック(ビデオ)スカード(20)とビデオディスプレイ(14)とを備え、ビデオカードはイメージをビデオディスプレイに提供するよう動作可能である。ビデオカード上でハードウェアレイヤをサポートするユニバーサルAPIを備えるオペレーティングシステム(36)は、ユニバーサルAPIを介してドローイベントを受信し、どのハードウェアレイヤがビデオカード上で利用可能であり、パラメータが何であるかを決定し、およびビデオカード上で利用可能なハードウェアレイヤのいずれかに選択的にドロー要求をレンダリングすることによってソフトウェアアプリケーションからのドロー要求に応答するように動作可能である。
【選択図】 図2

Description

本発明は一般的にコンピュータグラフィックスに関し、より詳細には、1つのビデオディスプレイを構成するのに用いられる複数のハードウェアグラフィックスレイヤを設定し、制御し、およびアクセスするためのシステムの方法に関する。
ウィンドウズ(登録商標)タイプのオペレーティングシステムにより、ユーザおよび開発者は、一貫したグラフィカルユーザインターフェース(GUI)を介してソフトウェアアプリケーションと情報のやり取りをすることができ、それと同時に、いっせいに複数のソフトウェアアプリケーションと情報のやり取りする能力をユーザおよび開発者に提供する。理想的には、オペレーティングシステムは、一貫したAPI(アプリケーションプログラムインターフェース)を維持する一方で可能な限りその下にあるグラフィカルハードウェアの機能へのアクセスを提供すべきである。オペレーティングシステムAPIは、オペレーティングシステムと、それにアクセスするソフトウェアアプリケーションとの間のインターフェースを構成する一組のルーチンと、プロトコルと、ツールとである。ソフトウェアアプリケーションと動作環境(すなわち、ビデオディスプレイ、ハードドライブ、キーボード等)との間のインタラクションは、オペレーティングシステムAPIを介してなされる。
加えて、オペレーティングシステムは、ある程度のフィーチャートランスペアレンシー(feature transparency)をサポートすべきである。すなわち、ソフトウェアアプリケーションは、システムフィーチャーの詳細を隅々まで認識しなくても、システムフィーチャーからの利益を享受することができるべきである。例えば、16ビットカラー深みのディスプレイを有するシステム上に設計されたソフトウェアアプリケーションは、32ビットカラー深みのディスプレイを有するシステム上で意図されるように起動すべきである。ソフトウェアアプリケーションは、それが起動しているビデオディスプレイのサポートされたカラー深みを認知する必要はない。オペレーティングシステムから提供されるフィーチャートランスペアレンシーの程度が高くなればなるほど、様々な環境で起動することができるソフトウェアアプリケーションを開発する容易さが高まり、かつ、所与のプラットフォームで使用することができるソフトウェアアプリケーションの選択の幅が広がる。
(ビデオメモリ、ビデオサーフェスおよびレイヤ)
パーソナルコンピュータおよび他のコンピュータデバイスは、一般的に、グラフィックスカード、ビデオカードまたはビデオボードと呼ばれる回路基板を備えており、これにより、パーソナルコンピュータはLCD(液晶ディスプレイ)またはCRT(ブラウン管)モニタといったフィジカルディスプレイを駆動することができる。これらグラフィックスカードには、典型的に、独自のビデオメモリが含まれており、その結果、コンピュータのRAM(ランダムアクセスメモリ)は、ビデオディスプレイデータを格納することを必要とされない。多くのグラフィックスカードには、独自のオンボードマイクロプロセッサも含まれており、その結果、グラフィックスを提供するために要求される処理が、コンピュータのメインマイクロプロセッサへの負担とならずに、非常に早く行われ得る。
グラフィックスカードは、典型的に、単一の表示画面のコンテンツを格納するために必要とされるよりもはるか多くのビデオメモリを有する。ビデオメモリのコンテンツは、ダイナミックに定義および再定義され得るチャンク(chunk)にパーティションで区切られる。このチャンクはそれぞれ、特定の幅、高さおよび他の特徴を有する。各チャンクは、ビデオ「サーフェス」と呼ばれ、これらビデオサーフェスのうち1つはプライマリディスプレイとして扱われる。プライマリディスプレイと関連するビデオサーフェスに描くことによって、フィジカルディスプレイ上に可視的なグラフィックスがもたらされる。プライマリディスプレイ以外のビデオサーフェスに近づいても、そのサーフェスのコンテンツがプライマリディスプレイのビデオサーフェスに「ブリット(blitted)」されない限り、眼に見えない。
「レイヤ」ハードウェアにより、グラフィックスカードは1つ以上のビデオサーフェスをプライマリディスプレイの一部として有することができる。様々なビデオサーフェスが結合および/または混合されることによりプライマリディスプレイを作製する方法は、グラフィックスカード上のレイヤハードウェアを介して設定することができる。レイヤハードウェアは、非破壊的にプライマリディスプレイをターゲットにした全てのサーフェスを結合する。すなわち、様々なビデオサーフェスのコンテンツは、レイヤリングハードウェアからの影響を受けず、ディスプレイデバイス上で可視的な最終結果のみが影響を受ける。これにより、自動車テレマティックスシステムといった高度なグラフィックスコンポジションを要求する低性能のプラットフォームに理想的なレイヤリングハードウェアを有するグラフィックスカードが作製され、例えば、道路地図上での換気システム(ventilation system)または再生中のビデオプログラミングの設定を表示することが所望され得る。
「自動車テレマティックスシステム」は、自動車内の環境システムとエンターテイメントシステムとを管理するためのコンピュータによる制御システムの技術を参照する。これらシステムは、自動車「インフォテインメント(infotainment)」または「infotronic」システムとも呼ばれ、あるいは他の類似する名前で呼ばれる。そのようなシステムが管理し得る機能のうちいくつかには、以下のものが含まれる。
1.ラジオ放送、ビデオゲームおよび映画再生といったエンターテイメントアプリケーションをサポートすることであり、これらエンターテイメントアプリケーションは、乗り物内の異なるディスプレイ、スピーカーおよびヘッドフォンシステムに選択的に向けられ得る。
2.乗り物の環境制御システムを管理すること。
3.インターネットアクセス、電子メールおよびインスタントメッセージサービスを提供すること。
4.盗難防止および自動ダイヤルといったセキュリティシステムを提供すること。
5.パーソナルデジタルアシスタント(携帯情報端末)(PDA)、ラップトップコンピュータおよびノートブックコンピュータといったポータブルコンピュータデバイスとインターフェースをとり、同期化すること。
6.正しい地図を選択し、乗り物の実際の位置を地図上で特定するためにGPS(グローバルポジショニングシステム)技術を用いて電子道路地図を表示する。また、この技術を用いることによって、近くのガソリンスタンド、レストランおよび他の施設をユーザにアドバイスし、交通情報、ナビゲーションアドバイスおよび駐車場の利用性を提供し得る。
7.ガソリンスタンドの「販売時点管理(point of sale)」および関連の自動銀行業務と無線で情報のやり取りをすることであって、例えば、これにより、ユーザは実際に参加して交流しなくても、ガソリンを購入し、車を洗浄してもらい、かつ、映画をダウンロードすることができる(例えば、2001年、サンマイクロシステムズ社による「The eGasStation Architecture − Java(登録商標) Technology Based Managed Services for Retail Service Stations」)。
このリストは、自動車テレマティックスシステムがサポートするよう設計され得たことのうちの僅かな例である。さらなるサービスがやがて、テレマティックスシステムによってサポートされることは確実であろう。
(既存のビデオシステム)
本技術におけるビデオシステムには2つの共通する設定がある。
1つのシステムにおいて、ソフトウェアアプリケーションは、グラフィックスカードのメモリおよびレジスタを直接操作することによりディスプレイに影響を与えるオペレーティングシステムのAPIを用いて、イメージと、ベクトルと、文字とを描く。ソフトウェアアプリケーションは、オペレーティングシステムAPIを使用するが、ソフトウェアアプリケーション自体は、ハードウェアを直接操作するグラフィックスドライバとして機能する。そのようなシステムでは、ハードウェアの競合(contention)問題があるために、一度にグラフィックスカードへのアクセスを有するのは、1つのソフトウェアアプリケーションのみである。
もう一方のシステムにおいて、ソフトウェアアプリケーションは、ドロー要求(draw request)をパッケージにして送信するオペレーティングシステムのAPIを用いて描く。パッケージ化されたドロー要求が、オペレーティングシステムのAPIを用いることにより、グラフィックスカードのメモリおよびレジスタを操作してディスプレイに影響を与えるソフトウェアアプリケーションに配信されると、それらドロー要求は、グラフィックスカードに提供され、可視的なディスプレイに影響を及ぼし得る。この設定において、ドローイングアプリケーションおよびグラフィックスドライバは、別個のソフトウェアプロセスであり、複数のアプリケーションが単一のグラフィックスカードを用いて描くことができるようにする。パッケージ化されたドロー要求を配信するメカニズムは、周知のウィンドウシステム内で様々である。
図1は、従来技術で周知のレイヤをサポートするグラフィックスカードの典型的な構造10のブロック図を示す。ソフトウェアアプリケーション12がイメージ、文字またはベクトルを表示画面14に描くことを望む場合、「ドロー」要求をオペレーティングシステム18のAPI16に送信する。オペレーティングシステム18は、ドロー要求を処理し、かつ、適切な指示をグラフィックスカード20に送信する。これら指示は、オペレーティングシステムのAPI16とグラフィックスカード20のAPI22とを介して送信される。オペレーティングシステム18は、グラフィックスカード20におけるハードウェアレイヤ24に関する知識がないため、全てのドロー要求は、単に、同一のレイヤ、プライマリレイヤ26にパスされていく。プライマリレイヤ26内のビデオイメージは、その後、表示画面14にパスされる。
ソフトウェアアプリケーション12が、グラフィックスカード20のAPI22に関して特別な知識を有し、残りのシステムがそれを可能にする場合、次いで、ソフトウェアアプリケーション12は、メッセージを直接グラフィックスカード20へ、また、直接グラフィックスカード20からパスすることにより、グラフィックスカード20のメモリおよびレジスタを操作し得る(これは、上記の第1の方法である)。あるいは、オペレーティングシステム18は、グラフィックスカード20のAPI22に関する特別な知識を有するグラフィックスドライバを有し、かつ、残りのシステムがそれを可能にする場合、次いで、オペレーティングシステム18におけるグラフィックスドライバは、グラフィックスカード20のレイヤ性能を操作し得る(これは、上記の第2の方法である)。
ビデオのハードウェアレイヤにアクセスして制御するAPIは、第1に、レイヤをサポートするグラフィックスカードを製造していたグラフィックスカード製造者によって提供された。しかしながら、これら初期のAPIに関して少なくとも2つの主要な問題があった。
1.異なる製品からのAPIは、互いに類似性をあまり有さず、グラフィックスカードのレイヤフィーチャーにアクセスして制御するのに必要とされるソフトウェアアプリケーションは、1つの製品のグラフィックスカード上でのみ機能するということを意味する点と、
2.ウィンドウズ(登録商標)タイプのオペレーティングシステムがビデオのハードウェアレイヤの存在に完全に気付いていないため、レイヤは、オペレーティングシステムAPIを介してアクセスされ得ないという点とが問題であった。
最近になって、ソフトウェアアプリケーションは、この特定のオペレーティングシステムAPIを使用して、ハードウェアによってサポートされたレイヤを提供することが可能であることが依然として必要とされるが、ハードウェアレイヤリング性能への一貫しているが限られたインターフェースを提供するオペレーティングシステムAPIが利用可能になった。この制限によって、第三者ソフトウェアをレイヤが可能なシステムに統合させることが不可能になった。言い換えると、この新しいオペレーティングシステムAPIは、依然として、第三者ソフトウェアアプリケーションが、新しいオペレーティングシステムAPIはハードウェアレイヤへのアクセスを有していることを知っていることと、それを使用する方法を知っていることとを要求する。典型的に、第三者ソフトウェアアプリケーションは、この知識を有していないため、これは「トランスペアレントな」解決策ではない。
1つのそのようなAPIは、限られた方法でビデオレイヤ性能への包括的なアクセスを提供する「DirectFB」のAPIである。DirectFBは、サーフェスの専属的使用に限られ、ある程度は、プライマリディスプレイサーフェスを共有する能力を有する。
ソフトウェアアプリケーションがグラフィックスハードウェアレイヤへの直接アクセスを有することを可能にする既存のオペレーティングシステムAPIは、一般的に、ハードウェアの競合問題があるために、そのレイヤが複数のソフトウェアアプリケーションによって共有されることを妨げる。
自動車市場、医用計測市場、消費市場、およびインダストリアルオートメーション市場において、グラフィックスソリューションへの需要が成長してきた。1つのプロジェクトより多くのプロジェクトをターゲットにした第三者ソフトウェアアプリケーションと、レガシーアプリケーションと、新しいソフトウェアアプリケーションとを使用することにより、選択されたグラフィックスハードウェアのレイヤリング性能を利用することが可能になる。
それ故、上で概要を説明した問題を扱うグラフィカルハードウェアレイヤを設定し、制御し、およびアクセスする(レンダリングする)統合的アプローチの必要性がある。選択されたアプローチは、目標市場の必要性を考慮に入れなければならない。つまり、自動車市場は、大きさと性能に非常にセンシティブであり、消費市場は、大きさと性能に非常にセンシティブであり、医用計測市場は、性能にセンシティブであり、インダストリアルオートメーションは、性能に非常にセンシティブであるということを考慮に入れなければならない。また、この設計は、実行速度、信頼性、複雑性およびスケーラビリティを考慮にいれて提供されねばならない。
それ故、従来技術の不利点のうち少なくとも1つを防ぐか、軽減するコンピュータファイル管理の新しい方法およびシステムを提供することが本発明の目的である。
(本発明の要旨)
本発明の1つの局面は、以下のように広く定義される。すなわち、ソフトウェアアプリケーションと、コンピュータ上で作動するオペレーティングシステムとを含むコンピュータ環境において、このコンピュータは、グラフィックスカードとビデオディスプレイとを備え、このグラフィックスカードは、イメージをビデオディスプレイに提供するように動作可能である。この改善には、グラフィックスカード上でハードウェアレイヤをサポートするユニバーサルアプリケーションプログラミングインターフェース(API)を備えるオペレーティングシステムと、オペレーティングシステムは、ユニバーサルAPIを介してドローイベントを受信し、どのハードウェアレイヤがグラフィックスカード上で利用可能であり、それらのパラメータが何であるかを決定し、グラフィックスカード上で利用可能なハードウェアレイヤのいずれかに選択的にドロー要求をレンダリングすることによってソフトウェアアプリケーションからのドロー要求に応答するように動作可能であり、コンピュータ環境により、ソフトウェアアプリケーションがグラフィックスカード上で利用可能なハードウェアレイヤを利用することが可能になることとが含まれる。
好ましい本発明の実施形態において、ウィンドウ環境およびレイヤハードウェアが、ビデオレイヤについて知らないソフトウェアアプリケーションが、実際に、レイヤにレンダリングすることができるように、すなわち、ソフトウェアアプリケーションが、ビデオレイヤAPIを全く使用せずに、かつ、特別なドローコマンドを用いずに、レイヤにレンダリングされ得るように、設定されることを可能にするメカニズムが提供される。このメカニズムは、修正されないレガシーアプリケーションをレイヤのある環境で使用することを可能にする。
本発明は、さらに以下の手段を提供する。
(項目1)
コンピュータシステムにおけるビデオディスプレイを管理する方法であって、
該コンピュータシステムは、グラフィックスカードと、ビデオディスプレイと、オペレーティングシステムとを備え、
該コンピュータシステムは、ソフトウェアアプリケーションを作動するように動作可能であり、
該グラフィックスカードは、イメージを該ビデオディスプレイに提供するように動作可能であり、
該方法は、
グラフィックスカード上でハードウェアレイヤをサポートする該オペレーティングシステムのユニバーサルアプリケーションプログラミングインターフェース(API)を介して、該ソフトウェアアプリケーションからドローイベントを受信するステップと、
どのハードウェアレイヤが該グラフィックスカード上で利用可能であるのか決定し、かつ、それらのパラメータは何であるかを決定するステップと、
該オペレーティングシステムが、該グラフィックスカード上で該利用可能なハードウェアレイヤのうちの特定の1つに対応するビデオレイヤに選択的に該ドロー要求をレンダリングするステップと、
該グラフィックスカードが、該ビデオレイヤ上で、該ビデオディスプレイ上のディスプレイに該利用可能なハードウェアレイヤのうちの特定の1つにデータをマッピングするステップとを包含し、
該ソフトウェアアプリケーションは、ハードウェアレイヤの存在を知らずに、該グラフィックスカード上で利用可能なハードウェアレイヤを利用し得る、方法。
(項目2)
上記レンダリングするステップは、上記ドロー要求を特有のビデオレイヤにレンダリングすることによって、該特有のビデオレイヤの識別を含む該ドロー要求に応答するステップを包含する、項目1に記載の方法。
(項目3)
上記レンダリングするステップは、どのビデオレイヤに上記ドロー要求がレンダリングされるべきかを決定し、それに従って該ドロー要求をレンダリングすることによって特有のビデオレイヤを識別しない該ドロー要求に応答するステップを包含する、項目2に記載の方法。
(項目4)
上記決定するステップは、上記ドロー要求の幾何学およびドローセンシティブ領域の幾何学に従って、該ドロー要求が向けられるビデオレイヤを選択するステップを包含する、項目3に記載の方法。
(項目5)
上記グラフィックスカードは、非破壊的にビデオレイヤデータを格納するメモリを備える、項目3に記載の方法。
(項目6)
三次元Event Spaceを構築し、ドローイベントとソフトウェア領域とを管理する座標系を定義するステップであって、該ソフトウェア領域のそれぞれは該三次元Event Space内で平面領域として定義され、該ドローイベントのそれぞれは該三次元Event Space内でベクトルとして定義され、該ソフトウェア領域は、選択的に設定されることにより、該ソフトウェア領域中を通過するドローイベントに応答する、ステップをさらに包含する、項目5に記載の方法。
(項目7)
上記ドローイベントは、上記ビデオディスプレイ上にイメージ、ベクトルまたは文字を提示する要求を備える、項目6に記載の方法。
(項目8)
上記ソフトウェア領域のそれぞれは、上記三次元Event Space内で大きさおよび位置的なパラメータを含む、項目7に記載の方法。
(項目9)
上記グラフィックドライバの大きさ(dimension)は、フィジカルディスプレイの大きさに等しい、項目8に記載の方法。
(項目10)
上記三次元Event Spaceにおけるルート領域の大きさは、上記ビデオディスプレイの大きさより大きく、ドロー要求がスクリーンを離れたコンテクストに提供されることを可能にする、項目8に記載の方法。
(項目11)
上記コンピュータシステム上で作動する各ソフトウェアアプリケーションは、上記三次元Event Spaceにおける領域と関連付けられる、項目8に記載の方法。
(項目12)
少なくとも1つの上記ソフトウェア領域は、上記グラフィックスカードに適切なグラフィックドライバである、項目11に記載の方法。
(項目13)
2つ以上の上記ソフトウェア領域はグラフィックドライバであり、該2つ以上のグラフィックドライバは、該space内で重複せず、該2つ以上のグラフィックドライバは、別個のグラフィックハードウェアレイヤと関連付けられる、項目12に記載の方法。
(項目14)
上記グラフィックスカード上で関連付けられたハードウェアレイヤのパラメータに従ってドライバ領域を生成するステップをさらに包含する、項目5に記載の方法。
(項目15)
設定アプリケーションを用いて、ビデオサーフェスと、ドライバ領域と、レイヤ関連へのサーフェスと、レイヤ属性とを設定するステップをさらに包含する、項目5に記載の方法。
(項目16)
ビデオディスプレイを管理する方法であって、
設定アプリケーションを用いて、ビデオサーフェスと、ドライバ領域と、レイヤ関連へのサーフェスと、レイヤ属性とを設定するステップであって、どのハードウェアレイヤがグラフィックスカード上で利用可能であるのか決定し、それらのパラメータは何であるかを決定するステップを包含する、ステップと、
オペレーティングシステムのユニバーサルAPIを介して到達するドローイベントの受信に応答するステップであって、
ドロー要求が特有のビデオレイヤについて立てられる(flagged)かどうかを決定し、立てられる場合、該ドロー要求を該特有のビデオレイヤに向け、立てられない場合、Photon Event Spaceにおいてドローイベントを処理することと、
該Photon Event Spaceが、少なくとも三次元を有し、複数のプログラムのオペレーティング環境を表すEvent Spaceを定義することであって、該Event Spaceは、該Event Spaceの第1の端部にルート面を有しており、各セットの特徴は、大きさ特徴と位置特徴とを含み、該大きさ特徴は、該Event Space内で平面領域の一組の大きさを示し、該位置特徴は、該Event Space内で該平面領域の位置を該Event Space内で少なくとも第2の平面領域と比較して示す、こととによって、応答するステップと、
該グラフィックスカードが、該ビデオレイヤ上で、該ビデオディスプレイ上のディスプレイに該利用可能なハードウェアレイヤのうちの特定の1つにデータをマッピングするステップと
を包含する、方法。
(項目17)
上記設定するステップは、
設定アプリケーションによって行われるステップであって、
利用可能なハードウェアレイヤの数に対して、特定のディスプレイについてグラフィックスドライバをクエリーするステップと、
各ビデオレイヤの性能について、該グラフィックスドライバをクエリーするステップと、
所望された数のビデオサーフェスを生成するステップと、
該利用可能なハードウェアレイヤの数および性能に基づいて対応するレイヤを設定するステップと
を包含する、項目16に記載の方法。
(項目18)
ビデオサーフェスを特有のハードウェアレイヤと直接関連付けられるものと定義するステップをさらに包含する、項目に17記載の方法。
(項目19)
上記応答するステップは、
ソフトウェアアプリケーションプログラムから受信したイベントに応答するステップであって、第1のイベントシグナルは、イベントタイプと領域特性とを有しており、該領域特性は上記Event Space内でイベント領域を定義する、ステップと、
該イベント領域が第1のプログラム領域と交差するかどうかを決定するステップであって、該第1のプログラム領域は、該Event Space内で定義され、該第1のプログラムに対応し、交差すると決定される場合、
該第1のプログラムが該第1のイベントシグナルにセンシティブであるかどうか、該イベントタイプを検査することによって決定するステップであって、センシティブである場合、出力シグナルを該第1のプログラムに伝達し、該出力シグナルは該第1のイベントシグナルに対応する情報を含む、ステップと、
該第1のプログラムが該第1のイベントシグナルを修正することにあるかどうか、該イベントタイプを検査することによって決定するステップであって、修正することにある場合、該第1のプログラム領域を該イベント領域から切り抜くことによって、該領域特性を修正する、ステップと、
を行うステップと、
を包含する、項目18に記載の方法。
(項目20)
コンピュータシステムであって、
コンピュータと、
該コンピュータにインストールされたグラフィックスカードと、
該グラフィックスカードに電気的に接続されたビデオディスプレイと、
該コンピュータ上で作動するソフトウェアアプリケーションと、
該コンピュータ上で作動するオペレーティングシステムであって、該グラフィックスカード上でハードウェアレイヤをサポートするユニバーサルアプリケーションプログラミングインターフェース(API)を備えるオペレーティングシステムと、
該オペレーティングシステムは、該ユニバーサルAPIを介してドローイベントを受信し、どのハードウェアレイヤが該グラフィックスカード上で利用可能であるか、該ハードウェアレイヤのパラメータは何であるかを決定し、該ソフトウェアアプリケーションからのドロー要求に、該ドロー要求を該グラフィックスカード上で該利用可能なハードウェアレイヤのうち特定の1つに選択的にレンダリングすることによって応答するように、動作可能であり、
該ビデオディスプレイ上のディスプレイに該利用可能なハードウェアレイヤのうちの特定の1つに該ビデオレイヤ上でデータをマッピングするよう動作可能である該グラフィックスカードと
を備え、
該コンピュータ環境により、ソフトウェアアプリケーションが該グラフィックスカード上で利用可能なハードウェアレイヤを利用することが可能になる、コンピュータシステム。
(項目21)
上記オペレーティングシステムは、ドロー要求を特有のハードウェアレイヤにレンダリングすることによって該特有のハードウェアレイヤの識別を含む該ドロー要求に応答するようにさらに動作可能である、項目20に記載のコンピュータシステム。
(項目22)
上記オペレーティングシステムは、
三次元Event Spaceを構築し、ドローイベントとソフトウェア領域とを管理する座標系を定義するようにさらに動作可能であり、
該ソフトウェア領域のそれぞれは該三次元Event Space内で平面領域として定義され、
該ドローイベントのそれぞれは該三次元Event Space内でベクトルとして定義され、
該ソフトウェア領域は、選択的に設定されることにより、該ソフトウェア領域中を通過するドローイベントに応答する、項目20に記載のコンピュータシステム。
(項目23)
上記オペレーティングシステムは、上記グラフィックスカード上でハードウェアレイヤと関連付けられるドライバ領域を生成するようにさらに動作可能である、項目20に記載のコンピュータシステム。
(項目24)
上記システム上で作動する各ソフトウェアアプリケーションは、上記PhotonEvent Spaceにおける領域と関連付けられる、項目22に記載のコンピュータシステム。
(項目25)
上記オペレーティングシステムは、関連したハードウェアレイヤのパラメータに従って、ドライバ領域を定義するようにさらに動作可能である、項目20に記載のコンピュータシステム。
(摘要)
本発明は、一般的に、コンピュータグラフィックスに関し、より詳細には、単一のビデオディスプレイを構成するために用いられる複数のハードウェアグラフィックスレイヤを設定し、制御し、およびアクセスする方法とシステムとに関する。本発明の1つの局面は、以下のように広く定義される。すなわち、ソフトウェアアプリケーションと、コンピュータ上で作動するオペレーティングシステムとを含むコンピュータ環境において、このコンピュータは、グラフィックスカードとビデオディスプレイとを備え、このグラフィックスカードは、イメージをビデオディスプレイに提供するように動作可能である。この改善には、グラフィックスカード上でハードウェアレイヤをサポートするユニバーサルアプリケーションプログラミングインターフェース(API)を備えるオペレーティングシステムと、オペレーティングシステムは、ユニバーサルAPIを介してドローイベントを受信し、どのハードウェアレイヤがグラフィックスカード上で利用可能であり、それらのパラメータが何であるかを決定し、グラフィックスカード上で利用可能なハードウェアレイヤのいずれかに選択的にドロー要求をレンダリングすることによってソフトウェアアプリケーションからのドロー要求に応答するように動作可能であり、コンピュータ環境により、ソフトウェアアプリケーションがグラフィックスカード上で利用可能なハードウェアレイヤを利用することが可能になることとが含まれる。
一般的に言えば、本発明は、1.グラフィックスカード上のハードウェアレイヤをサポートするユニバーサルAPIを有するオペレーティングシステムと、2.どのレイヤが使用中のグラフィックスカード上で利用可能であるかを決定し、それらレイヤのパラメータが何であるかを決定するオペレーティングシステムと、3.利用可能なビデオレイヤを活かすことによってソフトウェアアプリケーションからのドロー要求に反応するオペレーティングシステムとを提供することによる従来技術における問題を扱う。このシステムは、グラフィカルハードウェアレイヤを与えるためにフィーチャートランスペアレンシーを提供する。本発明の多数の実施形態は、ここに記載されるが、明らかに、本発明は、多くの異なる方法で実行され得る。図2のブロック図は、本発明を採用する典型的なシステムの概観を示す。
図2のブロック図は、図1のブロック図と対照され得る。図2の場合において、ソフトウェアアプリケーション32が、イメージ、文字またはベクトルを表示画面14に描くことを望む場合、ソフトウェアアプリケーション32は、利用可能なレイヤサポートに関する知識を有し得るかもしれないし、有し得ないかもしれない。よって、システム30は、オペレーティングシステム36のAPI34に対する2つの異なるタイプのドロー要求をサポートする。すなわち、ハードウェアレイヤ情報を含む要求38と、含まない要求40とをサポートする。
本発明のオペレーティングシステム36は、ビデオサーフェス(レイヤに関連付けられ得る)38へターゲットするドロー要求をサポートするAPI34を有するが、ターゲットしないドローもまたサポートする。レガシーな第三者ソフトウェアアプリケーションをサポートするために、オペレーティングシステム36は、従来の方法で、レイヤのないタイプの要求40を操作しなければならない。あるいは、2つの種類のドローAPIが定義され得る。すなわち、ターゲットせず、それによりレイヤのない有能なAPIを提供する従来のAPIと、ビデオサーフェスと、レイヤとへの直接アクセスを提供するサーフェスまたはレイヤドローAPIとが定義され得る。
オペレーティングシステム36は、また、どのレイヤがグラフィックスカード20上で利用可能であるかを決定する手段をも有する。この知識は、例えば、システムインストレーションの一環としてそれぞれを起動する(on each boot−up)、またはハードコーディング(hard−coding)するといった様々な方法で、グラフィックスカード20からオペレーティングシステム36へ転送され得る。オペレーティングシステム36は、典型的に、グラフィックスカードといった出力デバイスに特有のソフトウェア「ドライバ」を備えるように設計される。ユーザが新しいグラフィックスカードをインストールするとき、インストレーション手順の一部に、グラフィックスカードドライバをシステム上にロードすることが含まれる。これらドライバは、一般的に、特定のオペレーティングシステム、およびグラフィックスカードの構成およびモデルに特異的である。ドライバはしばしば、CD−Rom上のグラフィックスカードとともに流通されるが、一般的にオンラインでも利用可能である。
本発明は、図1に関して記載されたグラフィックスカード20およびディスプレイ14への変更を必要としないことを留意されたい。ソフトウェアアプリケーション32もまた、利用可能なレイヤと、あるビデオハードウェアレイヤが使用されることを要求する能力とに関する知識を有さない場合、ソフトウェアアプリケーション12と同じであり得る。
ドロー要求を受信し次第、オペレーティングシステム36は、この要求を処理し、オペレーティングシステム36のAPI34およびグラフィックスカード20のAPI22を介して、適切な指示をグラフィックスカード20に送信する。オペレーティングシステム36が、グラフィックスカード20におけるハードウェアレイヤ24に関する知識を有さない図1のシステムとは異なって、本発明の場合におけるオペレーティングシステム36は、ハードウェアレイヤ24に関する知識を有しており、また、グラフィックスカード20のAPIを補完するAPI34内にドライバを有する。よって、ドロー要求は、オペレーティングシステム36によって決定されたレイヤに向けられ、場合によっては、このビデオハードウェアレイヤは、イメージ、文字またはベクトルを描くことを望んで、ソフトウェアアプリケーション32によって決定されるが、別の場合では、放出されたイベントの幾何学、ドローセンシティブ(draw sensitive)領域の幾何学およびデータの優先順位を用いて、オペレーティングシステム36自体が決定する。これにより、どのエレメントが位置的にどの領域に配信されるのか制御することが可能になる。
典型的な例は、例えば、ビデオサーフェスよりも優先するレイヤと関連する領域下に位置的に生じる警戒レンダリングを有しており、この警戒が他のコンテンツ、気候データまたは複合ディスプレイに表示されている映画の全てで可視的であることを確実にする。
イメージのこれらレイヤは全て個別に、グラフィックスカード20上に格納され、非破壊的に、単一の複合イメージ内に構成される。複合ビデオイメージはその後、上映するために、グラフィックスカード20によって表示画面14に送信される。
本発明のシステムは、下にあるハードウェアレイヤに関する知識を有するかどうかに関わらず、グラフィックスカードハードウェアレイヤが任意の第三者アプリケーションソフトウェアによって利用されることを可能にする。本発明のシステムはまた、均一なインターフェースを提供し、その結果、ソフトウェアアプリケーションは、特定のグラフィックスカードの細部を認識していなくてもよい。本発明の他の利点は、以下に続く本発明のさらに詳細な説明から明らかになる。
好ましい本発明の実施形態は、本発明は実質的にはいずれのオペレーティングシステム上でも実施され得るが、QNX(登録商標) RTOS(リアルタイムオペレーティングシステム)上で起動するPhoton(登録商標)ウィンドウシステムに関して説明される。本発明を他のオペレーティングシステムに適用するのに必要な変形は、本明細の説明から当業者にとって明らかである。
本発明の実施形態において、Photon Event spaceおよびQNXオペレーティングシステム環境50を象徴的に視覚化したものが図3に示される。
QNXオペレーティングシステムは、「メッセージパッシングオペレーティングシステム」である。これは、ソフトウェアアプリケーションと、オペレーティングシステム自体と、ウィンドウズ(登録商標)GUI(グラフィックユーザインターフェース)ソフトウェアとを含むソフトウェアの全てが、システム上で別個のソフトウェアプロセスとして作動することを意味する。これらソフトウェアプロセスは、図3のセクション52におけるブロックで描かれる。メッセージパッシングは、これらソフトウェアプロセス間におけるプロセス間通信(IPC)の基本的な手段である。メッセージは、特別な意味がメッセージのコンテンツに付随せずに、1つのプロセスから他のプロセスへパスされるバイトのパケットである。メッセージにおけるデータは、メッセージの送信器とその受信器とにとって意味を有するが、一般的に他にはどれに対しても意味を有さない。
Photon環境50は、三次元仮想「Event Space」54を提供し、ここで、ユーザ60は、見ているこの空間の外側にいるように想像され得る。Photon環境50は、アプリケーションプログラムが所有する「領域」を管理し、様々な「イベント」がこのEvent Space54における領域を流れるので、このイベントを切り抜くこと(clipping)と操縦することとを行うためだけに、自身を限定する。ソフトウェアアプリケーションは、このEvent Space54内に、パスされ得る様々なタイプのイベントにセンシティブ(敏感)な領域、または、不透明な領域、もしくはセンシティブで不透明な領域を置くことができる。
ソフトウェアアプリケーションは、それぞれのソフトウェアプロセス自身が所有するこれら長方形の領域のうち1つ以上からPhoton環境50に影響を及ぼし得る。例えば、特定のPhotonアプリケーション56は、領域58を生成し得る。領域は、イベントと呼ばれるオブジェクトを放出し、かつ収集し得る。これらイベントは、Event Space54を介していずれの方向にも(すなわち、ユーザ60に向けて、または、ユーザ60から離れて)動くことができる。イベントがEvent Space54中を移動するにつれて、イベントは他の領域と情報のやり取りをする。これは、ソフトウェアアプリケーションが互いに情報のやり取りをする方法である。領域は固定されているが、イベントはEvent Space54中を移動する。
イベントがEvent Space54中を流れるにつれて、その長方形セットは、他のソフトウェアプロセスによって、Event Space54内に置かれた領域と交差する。これが生じると、オペレーティングシステムは、イベントが交差される領域の属性に従って、イベントの長方形セットを調整する。
イベントは、様々な種類で現れ、様々な属性を有する。イベントは、発生領域、タイプ、方向、添付の長方形のリスト、および任意で、あるイベント特定のデータによって定義される。
・ キーを押すこと、キーボード状態情報と、
・ マウスボタンを押すことおよび放すことと、
・ (マウスボタンを押して、または押さずに)ポインタの動きと、
・ 領域境界交差と、
・ 露出された領域または覆われた領域と、
・ ドラッグ動作と、
・ドロー機能と
を表すために、イベントが用いられる。
グラフィックスドライバ64の通常動作は、フィジカルディスプレイデバイス14と同じ大きさと、イベントへの感度とによって、PhotonのEvent Space54に領域を生成することである。ドローイベント(例えば、出力イベント66)をグラフィックスドライバ領域下のエリアから放出する任意のソフトウェアアプリケーションは、そのイベントにグラフィックスドライバの領域と交差させ、かつ、イベントのデータは、グラフィックスドライバに配信される。グラフィックスドライバ64は、ドローイベント(photonドローストリーム)からのデータを用いて、所望のグラフィックスをビデオハードウェア20と、フィジカルディスプレイデバイス14上とに提供する。
領域は、イベントが領域と交差するときに、イベントがどのように処理されるのかを制御する2つの属性、すなわち、感度および不透明度を有する。領域が、特定のタイプのイベントにセンシティブであると、次いで、領域の所有者が領域と交差するそのタイプのイベントの一部を収集する。感度の属性は、イベントの長方形セットを改変せず、また、Event Space中を流れ続けるイベントの能力に影響を及ぼさない。特有のイベントタイプに不透明な領域は、そのタイプのイベントの長方形セットの部分がさらにEvent Spaceにおいて動くことを妨げる。領域がイベントタイプに不透明である場合、領域と交差するそのタイプのいずれかのイベントは、交差エリアを切り抜くように調整された長方形セットを有する。イベントが完全に不透明な領域の交差点によって切り抜かれる場合、ドローイベントは消滅する。
以下の表は、領域の属性がどのように領域と交差するイベントに影響を及ぼすのかをまとめたものである。
Figure 2006073001
Event Space全体に領域を置くことによって、プロセスは、その領域を通過する任意のイベントをインターセプトし、かつ修正することができる。領域がセンシティブ(敏感)かつ不透明である場合、イベントの修正版を再度放出することを選ぶことができる。
ルート領域62と呼ばれる特別な領域は、常に、ユーザ60から最も離れた領域である。全ての他の領域は、何らかの方法で、ルート領域62から伝わったものである。ユーザ60から離れて動くイベントがルート領域62に到達するとすぐに、そのイベントは消滅する。
本発明は、この概念を広げることにより、ソフトウェアアプリケーションがPhotonのEvent Spaceにおいて具現しない「スクリーンを離れたコンテクスト」または「ビデオサーフェス」にレンダリングされることを可能にする。これを達成するために、ビデオサーフェスが生成された時にグラフィックスドライバから提供された識別子は、そのビデオサーフェスを独自に識別するドローストリーム内に挿入される。グラフィックスドライバは、その後、識別されたビデオサーフェス内に直接ドロー要求を与える。
言い換えると、ソフトウェアアプリケーションは、Photon Event Space54において出力イベントを放出するソフトウェアプロセスを開始し得る。この出力イベントは、出力イベントが向けられているのはどのビデオレイヤかを示す識別子を含み得る。グラフィックスドライバは、そのサーフェス内に与えるためにビデオサーフェス識別子を含む、要求されたビデオサーフェスを生成することによって、識別子の存在に応答する。
特有のビデオサーフェスをターゲットにするドローストリームを含むイベントは、グラフィックスドライバの領域に直接放出され得る。言い換えると、特定のビデオサーフェスをターゲットにしたドローストリームは、Photon Event Space54中を動かずにグラフィックスドライバに直接与えられ得、ドローイベントの長方形のうちの一部、または全てをブロックする領域の可能性を排除する。
ハードウェアレイヤへのトランスペアレントなアクセスを提供するために、2つの考えが混合された。
1.グラフィックスドライバが、ビデオサーフェスに与えられたその領域上で収集されたドローストリームを有するPhotonのEvent Space54にドライバ領域を生成する機能が加えられた(すなわち、ドライバ領域はコレクターのように機能し、その感度と一致するイベントはグラフィックスドライバに配信される)。
2.スクリーンを離れたコンテクストまたはビデオサーフェスをグラフィックスカード上のレイヤハードウェアに関連付ける能力もまた加えられた。
APIを提供し、かつ、ソフトウェアアプリケーションが、利用可能なハードウェアレイヤの数をクエリーすることと、どの性能を各ハードウェアレイヤがサポートするのかを決定することと、ハードウェアレイヤによって課された制限に一致するスクリーンを離れたコンテクスト/ビデオサーフェスを生成することと、ドライバ領域がそのサーフェスをターゲットにするPhoton spaceに生成されることを要求することと、最後に、サーフェスをレイヤリングハードウェアの一面に関連付けて、レイヤリングハードウェアの性能を設定することとを可能にするドライバをサポートすることによって、任意のソフトウェアアプリケーションは、いかなる方法でもソフトウェアアプリケーションを修正する必要がなく、かつ、ビデオハードウェアレイヤが存在することを知っていても、ソフトウェアアプリケーションなしで、レイヤへのアクセスを与えられ得る。
設定アプリケーションは、ビデオサーフェスと、ドライバ領域と、レイヤ関連へのサーフェスと、レイヤ属性とを設定する。設定されるとすぐに、設定アプリケーションが要求されるドライバ領域の下に位置づけられる任意のソフトウェアアプリケーションは、そのドライバ領域がターゲットにするサーフェスにレンダリングされ、続いて、レイヤリングハードウェアを介してプライマリディスプレイにレンダリングされる。
図4は、この概念の例示的なグラフィック図を示す。
・ レイヤは、レイヤが関連付けられるビデオサーフェスのコンテンツをプライマリディスプレイに複合する(ビデオサーフェスは、システムのオペレーティングシステム側で管理されるソフトウェアエンティティである一方で、レイヤは、グラフィックスカード上のファームウェアエンティティであることを思い起こす)ことと、
・ ビデオサーフェスは、レイヤと関連付けられるかもしれないし、関連付けられないかもしれないことと、
・ ソフトウェアアプリケーションは、特定のビデオサーフェスをターゲットにしたドローストリームまたは複数のビデオサーフェスの存在を無視するドローストリームを放出し得ることと、
・ ドローが特有のビデオサーフェスをターゲットにしていない場合、イベントは、Photon Event Space中を流れ、イベントが交差するドローにセンシティブな任意の領域によって収集されることと、
・ ドローが特有のビデオサーフェスをターゲットにしている場合、ドローイベントは、ターゲットにされたビデオサーフェスを所有するドライバによって生成された領域に直接配信され、他の領域はドローイベントをブロックしたり、もしくは修正することができるPhoton Event Spaceを介して、通常のイベント伝達をバイパスすることと
に留意する。
複数のドライバ領域は、プライマリディスプレイと関連する1つのビデオサーフェス以外のビデオサーフェスをターゲットにする単一のドライバによってPhotonのEvent Space内に置かれ得る。これは実質的に、ドローが最終的にどこに行くのかを知っているソフトウェアアプリケーションなしで、その領域下のソフトウェアアプリケーションが、ドライバ領域が関連付けられるビデオサーフェスにレンダリングされることを引き起こす。
そのような領域が、レイヤと関連付けられるビデオサーフェスをターゲットにする場合、ドライバ領域下のソフトウェアアプリケーションからのドローコマンドは、ビデオサーフェスにレンダリングされ、かつ、レイヤによって複合される。
よって、ソフトウェアアプリケーションは、レイヤに明白にレンダリングされず、それらは、Photon spaceを介してドローを捕まえるものならどれにでもレンダリングされるか、特有のビデオサーフェスにレンダリングされる。ビデオサーフェスがレイヤと関連していたという事実により、ソフトウェアアプリケーションが描くときに使用するコマンド/APIはもたらされない。
図4において、ソフトウェアアプリケーションAPP 1は、Photon Event Space80を介して描いている。そのドローは、図らずも、プライマリディスプレイ(グラフィックスカード上で最上位のハードウェアレイヤ)と関連付けられるビデオサーフェス84をターゲットにするドライバ領域82と交差する。すなわち、ビデオドライバ94が領域82から受信する任意のドローイベントは、サーフェス84にレンダリングされる。
ソフトウェアアプリケーションAPP 2は、APP 1と同じ方法で描くが、そのドローは、ビデオサーフェス88をターゲットにしているか、もしくはビデオサーフェス88と関連するドライバ領域86と交差する。このビデオサーフェス88は、グラフィックスカード上の別のレイヤと関連付けられる。
ソフトウェアアプリケーションAPP 3は、アプリケーションAPP 1およびAPP 2と同じドローイングAPIを用いて描くが、APP 3は、そのドローターゲットを意図的にビデオサーフェス90に設定している。この用いられたメカニズムは、プライマリサーフェス領域に直接送信されたAPP 3のドローストリームを有する。ドローストリームは、このドローストリームがこの場合においてビデオサーフェス90にレンダリングされるべきであることをイベントのコレクター、グラフィックスドライバに通知する識別子を有する。図4において、ビデオサーフェス90は、第3のレイヤと関連付けられる。
ここでも再び、ソフトウェアアプリケーションは、ビデオサーフェスにレンダリングされるのであって、特にグラフィックスカード上のレイヤにレンダリングされるのではないことを注記する。ビデオサーフェス88および90は、容易にレイヤ関連を全く有さないこともあり得る。その場合に見られるそれらサーフェスのコンテンツについて、ビデオサーフェス84に関連付けられるレイヤにブリットされねばならない。
グラフィックスカード上のレイヤハードウェア92は、ビデオサーフェス84、88、90を操作し、かつ、それらをグラフィックス情報ルート内に引っ張り、フィジカルディスプレイデバイス14上で見られる複合ディスプレイを生成する。ビデオサーフェス84、88、90は、単に、従来技術において周知の通り、ビデオハードウェアのビデオメモリ96における定義された領域である。
よって、第三者ソフトウェアアプリケーションのソフトウェアプロセスによって生成されたドロー指示は、これらビデオサーフェス84、88、90のいずれかに位置づけられ得、かつそれに従って処理される。
好ましい本発明の実施形態において、図4に示されるPhoton Event Spaceにおけるビデオレイヤおよびグラフィックドライバ領域の設定は、「設定アプリケーション」と呼ばれる別個のソフトウェアプロセスによって生成される。この設定アプリケーションは、例えば、図5のフローチャートに示される工程を行うことにより、この環境を設定し得る。
ステップ100において、設定アプリケーションは、利用可能なハードウェアレイヤの数に対して、特定のフィジカルディスプレイデバイス14についてグラフィックスドライバをクエリーする。グラフィックスドライバは、特定のグラフィックスカード20への専用であるが、レイヤサポートを有する全てのPhotonドライバは、レイヤハードウェアのクエリーおよび制御のための同一のインターフェースを有する。
設定アプリケーションは、その後、各ビデオレイヤの性能について、ステップ102においてグラフィックスドライバをクエリーする。この情報は、各ビデオレイヤの大きさ、カラー数、大きさ(dimension)、解像度、スケール係数、仮想大きさの限界、クロマキー、アルファブレンディング性能といったパラメータと、特有の環境毎に他のパラメータとを含む。
グラフィックスドライバからこの情報を装備して、設定アプリケーションは、その後、ステップ104において、要求された数のビデオサーフェス(Photonで「スクリーンを離れたコンテクスト」と呼ばれる)を生成し、ステップ106において、利用可能なハードウェアレイヤの数と性能とに基づいて対応するレイヤを設定する。
設定アプリケーションは、その後任意で、ステップ108において、それらドライバ領域をPhoton Event Space80内に置く。Photon Event Space80に全てのドライバ領域を置くことを所望されない可能性もあるので、このステップは任意である(ビデオサーフェスについてphoton space内のドライバ領域の欠如は、そのサーフェスにレンダリングされることを特に意図していないソフトウェアアプリケーションが不注意にレンダリングされることを防ぐ)。上記のように、Photon Event Space80を通過する必要なく、特定のビデオレイヤに直接いくつかのドロー要求を送信することが所望され得、あるドロー要求が他の領域によって修正またはブロックされる可能性を避ける。
例えば、レイヤを設定してアラーム状態をユーザに提示することが所望され得る。このレイヤは、Photon Event Space80の外で設定されて、これらアラーム状態がとにかくユーザ60に提示されることを保障し得る。
この時点で、システムは、グラフィックスカードのハードウェアレイヤの性能を利用するよう設定される。
設定アプリケーションは、その後、終了し得、上記のように設定されたPhotonシステムを残す。レイヤと関連するビデオサーフェスをターゲットにしたグラフィックドライバ領域の下に位置づけられる任意の第三者ソフトウェアアプリケーションは、実質的にそのレイヤにレンダリングされる。第三者ソフトウェアアプリケーションは、レイヤが存在していることさえも知る必要がないので、マルチレイヤシステムにおいてレンダリングされる修正は一切必要ない。
この時点で、レイヤと関連するビデオサーフェスに接続されるドライバ領域の下からレンダリングする任意のアプリケーションは、そのレイヤ内にレンダリングされ、かつ、ハードウェアは、レイヤ属性の設定に基づいて最終的なディスプレイ内へのレンダリングの結果を複合する。
ビデオサーフェスに接続されるドライバ領域の下からレンダリングする任意のソフトウェアアプリケーションは、そのビデオサーフェス内にレンダリングされることを留意されたい。必ずしも、ビデオサーフェスはレイヤリングハードウェアにも接続されるということはない。例えば、スクリーンセイバーは、ドライバ領域が1024,768〜2047,1535において生成されることを要求し得、およびその領域を0,0において操作および表示するビデオサーフェスに関連付け得る。その結果は、コンソール5上のソフトウェアアプリケーションからのコンテンツを使用するスクリーンセイバーであり、解像度を1024×768と仮定してそのディスプレイを生成する。
Photon Event Spaceにおけるデフォルトウィンドウマネージャ配置が図6に示される。ディスプレイフレームワークは、「コンソール」からなり、コンソール5は、コンソール1から右側に1つ、下側に1つ目のコンソールである。
システムが設定されるとすぐに、ドロー要求は、図7のフローチャートに提示される方法で処理され得る。このフローチャートは、実際のソフトウェアコードがどのように構成されるのかを表すものとは対照的に、プロセスの流れを表示するために簡易化されている。例えば、オペレーティングシステムの現実の実施は、一般的に、ステップ120に関して示される「no」ループを含まない。オペレーティングシステムは一般的に、応答待ちする処理ループにいるよりもむしろ、インタラプトの到着、関数呼出しの発行、または、周期的なポーリングへの応答に対応する。しかしながら、本発明の実際のソフトウェアコード実施は、この単純化した方法で、本発明の説明から当業者にとって明らかである。
ドローイベントがステップ120において受信されると、あるいは同様に、イメージ、ベクトルまたは文字をフィジカルディスプレイに提供する任意の要求が受信されると、制御がステップ122にパスされる。ステップ122において、ルーチンは、特有のビデオハードウェアレイヤにドロー要求が出されるかどうかを決定する。出さない場合、次いで、ステップ124毎に、ドローイベントがPhoton Event Space80を介して送信される。そのようなイベントは、ステップ125において、その後、Photon Event Space80内の領域に配信される。ドローイベントが割り当てられる領域を決定することが、ドローイベントのソースの幾何学によって決定される。上記したように、例えば、ビデオイメージより高い優先順位を有する領域にアラームディスプレイを送信することが所望され得る。実際、一般的なレイヤを成すインターフェースを実行するために、サーフェス/レイヤドローイベントが影響を及ぼして終了することを制御可能であることは、必要である。
ステップ122で識別されるドローイベントが特有のビデオサーフェスに向けられるものである場合、次いで、放出(emitter)領域からPhoton space中を動かなくてもグラフィック領域に直接パスされる。図5のステップ108に関して上記したように、いくつかのドロー要求を特定のハードウェアレイヤに直接パスすることが所望され得、よって、ドロー要求が別の領域によってブロックまたは修正される可能性を避ける。ドロー要求がPhoton Event Space80に意図される場合、次いで、制御はステップ124にパスされる。他方で、ドロー要求がハードウェアレイヤに直接行くことが意図される場合、制御はステップ130にパスされる。
ステップ132において、Photon Event Space80の全体が図3および図4に関して記載されたように処理される。これにより、Photon Event Space80内で処理され、場合によっては1つ以上のグラフィックドライバ領域上に与えられるドローイベントがもたらされる。
これらグラフィックドライバ領域は、ステップ134において、特定のビデオハードウェアレイヤと関連付けられているので、それらビデオハードウェアレイヤ上に与えられる。ドローイベントがステップ130にパスされた場合、次いで、単純に、Photon Event Space80におけるドライバ領域に直接放出され、ドローのソースとドライバ領域との間の全ての介在する領域を、ドローソースの幾何学または受信するドライバ領域を問わずにバイパスする。ドローは、その後、所望のハードウェアレイヤ134に提供される。
ステップ136において、ビデオハードウェアレイヤがその後、グラフィックスカードによって処理され、フィジカル表示画面上に提示される。制御はその後ステップ120に戻り、さらなるドローイベントの到達を待ち受ける。
そのような方法で構成されたシステムにより、第三者ソフトウェアアプリケーションは、グラフィックスカードにおけるビデオハードウェアレイヤサポートを利用することが、そのようなハードウェアレイヤが存在していることすら気づかずに可能である。そのようなシステムにより、例えば、pip(ピクチャーインピクチャー)ウィンドウで、テレビディスプレイがコンピュータディスプレイまたは電子メールをサポートできるようになった。電子メールフィーチャーは、(スポーツイベント中のスコアを不明瞭にし過ぎないように)テレビが別個のレイヤ上で表示して、電子メールアプリケーションのユーザ設定可能なトランスペアレンシー制御を可能にする標準的な電子メールアプリケーションであり得る。同様に、スタンドアロンマッピングアプリケーションは、1つのレイヤ上に置かれ得、自動車情報(旅行コンピュータ情報、hvac設定等)は、システムのマイクロプロセッサに与える影響を最小限にして地図上で表示され得る。
本発明の特定の実施形態が図示され、かつ説明されてきたが、本発明の真の範囲および精神から逸脱せずに、改変および修正がそのような実施形態にされ得ることは明らかである。
本発明の方法ステップは、オブジェクトコードまたはソースコードといった様々なフォーマットで格納された実行可能な機械コードの実施形態であり得る。そのようなコードは、単純化するために、ここでは包括的にプログラミングコードまたはソフトウェアコードと記載される。明らかに、実行可能な機械コードは、他のプログラムのコードと統合され得、外部のプログラムコールによって、あるいは、従来技術で周知の他の技術によって、サブルーチンとして実行される。
本発明の実施形態は、コンピュータプロセッサ、または、方法ステップの方法でプログラムされた類似のデバイスによって実施され得、あるいは、これらステップを実施する手段を提供される電子システムによって実施され得る。マイクロプロセッサ、デジタルシグナルプロセッサ(DSP)、マイクロコントローラ、および特定用途向け集積回路(ASIC)は、そのような実施が可能であるデバイスの典型的な例である。同様に、コンピュータディスケット、CD−Rom、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)あるいは、周知の類似するコンピュータソフトウェア記憶媒体といった電子メモリメディアは、本発明の方法を行うのに要求されるソフトウェアコードを格納するために使用されえる。その上、これら方法ステップを表す電気信号もまた、通信ネットワークを介して伝達され得る。
従来技術で周知のレイヤをサポートするビデオレイヤを有するコンピュータシステムのブロック図を示す。 本発明の実施形態において、レイヤをサポートするビデオを有するコンピュータシステムのブロック図を示す。 本発明の実施形態において、Photon(登録商標)Event SpaceおよびQNX(登録商標)オペレーティングシステム環境を象徴的に視覚化したものを示す。 本発明の実施形態において、ビデオハードウェアレイヤ管理をサポートする修正されたPhoton Event Spaceを象徴的に視覚化したものを示す。 本発明の実施形態において、ビデオレイヤサポートを設定する方法のフローチャートを示す。 本発明の実施形態において、デフォルトウィンドウマネージャコンソール配置の図を示す。 本発明の実施形態において、ドローイベントを操作する方法のフローチャートを示す。
符号の説明
14 ディスプレイ
20 ビデオカード
22 ビデオカードAPI
24 レイヤ
30 システム
32 ソフトウェアアプリケーション
34 レイヤを有するAPI
36 オペレーティングシステム
60 ユーザ
62 ルート領域
64 グラフィックスドライバ
66 出力イベント
92 ハードウェアレイヤ
94 ビデオドライバ
96 ビデオメモリ

Claims (25)

  1. コンピュータシステムにおけるビデオディスプレイを管理する方法であって、
    該コンピュータシステムは、グラフィックスカードと、ビデオディスプレイと、オペレーティングシステムとを備え、
    該コンピュータシステムは、ソフトウェアアプリケーションを作動するように動作可能であり、
    該グラフィックスカードは、イメージを該ビデオディスプレイに提供するように動作可能であり、
    該方法は、
    グラフィックスカード上でハードウェアレイヤをサポートする該オペレーティングシステムのユニバーサルアプリケーションプログラミングインターフェース(API)を介して、該ソフトウェアアプリケーションからドローイベントを受信するステップと、
    どのハードウェアレイヤが該グラフィックスカード上で利用可能であるのか決定し、かつ、それらのパラメータは何であるかを決定するステップと、
    該オペレーティングシステムが、該グラフィックスカード上で該利用可能なハードウェアレイヤのうちの特定の1つに対応するビデオレイヤに選択的に該ドロー要求をレンダリングするステップと、
    該グラフィックスカードが、該ビデオレイヤ上で、該ビデオディスプレイ上のディスプレイに該利用可能なハードウェアレイヤのうちの特定の1つにデータをマッピングするステップとを包含し、
    該ソフトウェアアプリケーションは、ハードウェアレイヤの存在を知らずに、該グラフィックスカード上で利用可能なハードウェアレイヤを利用し得る、方法。
  2. 前記レンダリングするステップは、前記ドロー要求を特有のビデオレイヤにレンダリングすることによって、該特有のビデオレイヤの識別を含む該ドロー要求に応答するステップを包含する、請求項1に記載の方法。
  3. 前記レンダリングするステップは、どのビデオレイヤに前記ドロー要求がレンダリングされるべきかを決定し、それに従って該ドロー要求をレンダリングすることによって特有のビデオレイヤを識別しない該ドロー要求に応答するステップを包含する、請求項2に記載の方法。
  4. 前記決定するステップは、前記ドロー要求の幾何学およびドローセンシティブ領域の幾何学に従って、該ドロー要求が向けられるビデオレイヤを選択するステップを包含する、請求項3に記載の方法。
  5. 前記グラフィックスカードは、非破壊的にビデオレイヤデータを格納するメモリを備える、請求項3に記載の方法。
  6. 三次元Event Spaceを構築し、ドローイベントとソフトウェア領域とを管理する座標系を定義するステップであって、該ソフトウェア領域のそれぞれは該三次元Event Space内で平面領域として定義され、該ドローイベントのそれぞれは該三次元Event Space内でベクトルとして定義され、該ソフトウェア領域は、選択的に設定されることにより、該ソフトウェア領域中を通過するドローイベントに応答する、ステップをさらに包含する、請求項5に記載の方法。
  7. 前記ドローイベントは、前記ビデオディスプレイ上にイメージ、ベクトルまたは文字を提示する要求を備える、請求項6に記載の方法。
  8. 前記ソフトウェア領域のそれぞれは、前記三次元Event Space内で大きさおよび位置的なパラメータを含む、請求項7に記載の方法。
  9. 前記グラフィックドライバの大きさは、フィジカルディスプレイの大きさに等しい、請求項8に記載の方法。
  10. 前記三次元Event Spaceにおけるルート領域の大きさは、前記ビデオディスプレイの大きさより大きく、ドロー要求がスクリーンを離れたコンテクストに提供されることを可能にする、請求項8に記載の方法。
  11. 前記コンピュータシステム上で作動する各ソフトウェアアプリケーションは、前記三次元Event Spaceにおける領域と関連付けられる、請求項8に記載の方法。
  12. 少なくとも1つの前記ソフトウェア領域は、前記グラフィックスカードに適切なグラフィックドライバである、請求項11に記載の方法。
  13. 2つ以上の前記ソフトウェア領域はグラフィックドライバであり、該2つ以上のグラフィックドライバは、該space内で重複せず、該2つ以上のグラフィックドライバは、別個のグラフィックハードウェアレイヤと関連付けられる、請求項12に記載の方法。
  14. 前記グラフィックスカード上で関連付けられたハードウェアレイヤのパラメータに従ってドライバ領域を生成するステップをさらに包含する、請求項5に記載の方法。
  15. 設定アプリケーションを用いて、ビデオサーフェスと、ドライバ領域と、レイヤ関連へのサーフェスと、レイヤ属性とを設定するステップをさらに包含する、請求項5に記載の方法。
  16. ビデオディスプレイを管理する方法であって、
    設定アプリケーションを用いて、ビデオサーフェスと、ドライバ領域と、レイヤ関連へのサーフェスと、レイヤ属性とを設定するステップであって、どのハードウェアレイヤがグラフィックスカード上で利用可能であるのか決定し、それらのパラメータは何であるかを決定するステップを包含する、ステップと、
    オペレーティングシステムのユニバーサルAPIを介して到達するドローイベントの受信に応答するステップであって、
    ドロー要求が特有のビデオレイヤについて立てられるかどうかを決定し、立てられる場合、該ドロー要求を該特有のビデオレイヤに向け、立てられない場合、Photon Event Spaceにおいてドローイベントを処理することと、
    該Photon Event Spaceが、少なくとも三次元を有し、複数のプログラムのオペレーティング環境を表すEvent Spaceを定義することであって、該Event Spaceは、該Event Spaceの第1の端部にルート面を有しており、各セットの特徴は、大きさ特徴と位置特徴とを含み、該大きさ特徴は、該Event Space内で平面領域の一組の大きさを示し、該位置特徴は、該Event Space内で該平面領域の位置を該Event Space内で少なくとも第2の平面領域と比較して示す、こととによって、応答するステップと、
    該グラフィックスカードが、該ビデオレイヤ上で、該ビデオディスプレイ上のディスプレイに該利用可能なハードウェアレイヤのうちの特定の1つにデータをマッピングするステップと
    を包含する、方法。
  17. 前記設定するステップは、
    設定アプリケーションによって行われるステップであって、
    利用可能なハードウェアレイヤの数に対して、特定のディスプレイについてグラフィックスドライバをクエリーするステップと、
    各ビデオレイヤの性能について、該グラフィックスドライバをクエリーするステップと、
    所望された数のビデオサーフェスを生成するステップと、
    該利用可能なハードウェアレイヤの数および性能に基づいて対応するレイヤを設定するステップと
    を包含する、請求項16に記載の方法。
  18. ビデオサーフェスを特有のハードウェアレイヤと直接関連付けられるものと定義するステップをさらに包含する、請求項に17記載の方法。
  19. 前記応答するステップは、
    ソフトウェアアプリケーションプログラムから受信したイベントに応答するステップであって、第1のイベントシグナルは、イベントタイプと領域特性とを有しており、該領域特性は前記Event Space内でイベント領域を定義する、ステップと、
    該イベント領域が第1のプログラム領域と交差するかどうかを決定するステップであって、該第1のプログラム領域は、該Event Space内で定義され、該第1のプログラムに対応し、交差すると決定される場合、
    該第1のプログラムが該第1のイベントシグナルにセンシティブであるかどうか、該イベントタイプを検査することによって決定するステップであって、センシティブである場合、出力シグナルを該第1のプログラムに伝達し、該出力シグナルは該第1のイベントシグナルに対応する情報を含む、ステップと、
    該第1のプログラムが該第1のイベントシグナルを修正することにあるかどうか、該イベントタイプを検査することによって決定するステップであって、修正することにある場合、該第1のプログラム領域を該イベント領域から切り抜くことによって、該領域特性を修正する、ステップと、
    を行うステップと、
    を包含する、請求項18に記載の方法。
  20. コンピュータシステムであって、
    コンピュータと、
    該コンピュータにインストールされたグラフィックスカードと、
    該グラフィックスカードに電気的に接続されたビデオディスプレイと、
    該コンピュータ上で作動するソフトウェアアプリケーションと、
    該コンピュータ上で作動するオペレーティングシステムであって、該グラフィックスカード上でハードウェアレイヤをサポートするユニバーサルアプリケーションプログラミングインターフェース(API)を備えるオペレーティングシステムと、
    該オペレーティングシステムは、該ユニバーサルAPIを介してドローイベントを受信し、どのハードウェアレイヤが該グラフィックスカード上で利用可能であるか、該ハードウェアレイヤのパラメータは何であるかを決定し、該ソフトウェアアプリケーションからのドロー要求に、該ドロー要求を該グラフィックスカード上で該利用可能なハードウェアレイヤのうち特定の1つに選択的にレンダリングすることによって応答するように、動作可能であり、
    該ビデオディスプレイ上のディスプレイに該利用可能なハードウェアレイヤのうちの特定の1つに該ビデオレイヤ上でデータをマッピングするよう動作可能である該グラフィックスカードと
    を備え、
    該コンピュータ環境により、ソフトウェアアプリケーションが該グラフィックスカード上で利用可能なハードウェアレイヤを利用することが可能になる、コンピュータシステム。
  21. 前記オペレーティングシステムは、ドロー要求を特有のハードウェアレイヤにレンダリングすることによって該特有のハードウェアレイヤの識別を含む該ドロー要求に応答するようにさらに動作可能である、請求項20に記載のコンピュータシステム。
  22. 前記オペレーティングシステムは、
    三次元Event Spaceを構築し、ドローイベントとソフトウェア領域とを管理する座標系を定義するようにさらに動作可能であり、
    該ソフトウェア領域のそれぞれは該三次元Event Space内で平面領域として定義され、
    該ドローイベントのそれぞれは該三次元Event Space内でベクトルとして定義され、
    該ソフトウェア領域は、選択的に設定されることにより、該ソフトウェア領域中を通過するドローイベントに応答する、請求項20に記載のコンピュータシステム。
  23. 前記オペレーティングシステムは、前記グラフィックスカード上でハードウェアレイヤと関連付けられるドライバ領域を生成するようにさらに動作可能である、請求項20に記載のコンピュータシステム。
  24. 前記システム上で作動する各ソフトウェアアプリケーションは、前記PhotonEvent Spaceにおける領域と関連付けられる、請求項22に記載のコンピュータシステム。
  25. 前記オペレーティングシステムは、関連したハードウェアレイヤのパラメータに従って、ドライバ領域を定義するようにさらに動作可能である、請求項20に記載のコンピュータシステム。
JP2005248506A 2004-08-30 2005-08-29 ハードウェアグラフィックレイヤへのトランスペアレントなアクセスを提供するシステム Pending JP2006073001A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/928,698 US7830372B2 (en) 2004-08-30 2004-08-30 Method and system for providing transparent access to hardware graphic layers

Publications (1)

Publication Number Publication Date
JP2006073001A true JP2006073001A (ja) 2006-03-16

Family

ID=35517664

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005248506A Pending JP2006073001A (ja) 2004-08-30 2005-08-29 ハードウェアグラフィックレイヤへのトランスペアレントなアクセスを提供するシステム

Country Status (6)

Country Link
US (5) US7830372B2 (ja)
EP (2) EP2631784B1 (ja)
JP (1) JP2006073001A (ja)
KR (1) KR101228708B1 (ja)
CN (1) CN1770129A (ja)
CA (1) CA2516881C (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014526077A (ja) * 2011-07-07 2014-10-02 ▲騰▼▲訊▼科技(深▲セン▼)有限公司 グラフィックスレンダリングエンジンおよびその実施方法
KR101939309B1 (ko) * 2018-05-30 2019-01-16 주식회사 바탕건축사사무소 건축물 외장 장치

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100914120B1 (ko) * 2002-04-15 2009-08-27 마이크로소프트 코포레이션 비디오 렌더러와 그래픽 디바이스 드라이버, 및 이들간의 상호 작용을 용이하게 하기 위한 장치, 시스템, 방법 및 전자적으로 액세스 가능한 매체
US7830372B2 (en) 2004-08-30 2010-11-09 Qnx Software Systems Gmbh & Co. Kg Method and system for providing transparent access to hardware graphic layers
US20070150364A1 (en) * 2005-12-22 2007-06-28 Andrew Monaghan Self-service terminal
US7971208B2 (en) * 2006-12-01 2011-06-28 Microsoft Corporation Developing layered platform components
CN101067924B (zh) * 2007-05-28 2010-05-19 广东威创视讯科技股份有限公司 一种基于第三方播放软件的视频加速方法
US8884981B2 (en) * 2007-09-04 2014-11-11 Apple Inc. Dynamically reconfigurable graphics layer system and method
US8234668B2 (en) * 2008-12-23 2012-07-31 Microsoft Corporation Content access
CN102117477B (zh) * 2010-01-06 2014-12-03 康佳集团股份有限公司 一种嵌入式设备显示等待动画的方法及系统
US9396001B2 (en) * 2010-11-08 2016-07-19 Sony Corporation Window management for an embedded system
KR101334526B1 (ko) * 2011-03-02 2013-11-28 박재현 투명 윈도를 이용한 그리기 동작 제어 방법
BR112014005551A2 (pt) * 2011-09-12 2017-03-21 Intel Corp múltiplas exibições simultâneas na mesma tela
US20130069981A1 (en) * 2011-09-15 2013-03-21 Research In Motion Limited System and Methods for Managing Composition of Surfaces
US9286122B2 (en) * 2012-05-31 2016-03-15 Microsoft Technology Licensing, Llc Display techniques using virtual surface allocation
US9936002B2 (en) * 2014-02-21 2018-04-03 Dell Products L.P. Video compose function
CN104133671B (zh) * 2014-06-30 2017-10-27 汉柏科技有限公司 一种数字处理设备的硬件接口屏蔽装置及方法
CN105446585B (zh) * 2014-08-29 2019-03-15 优视科技有限公司 一种安卓智能终端浏览器视频显示方法及装置
EP3217360B1 (en) 2014-11-07 2022-04-20 Samsung Electronics Co., Ltd. Display device and method of controlling display device
EP3230885B1 (en) 2014-12-08 2024-04-17 Umbra Technologies Ltd. Method for content retrieval from remote network regions
CN113225369A (zh) 2015-01-06 2021-08-06 安博科技有限公司 用于中立应用程序编程接口的系统和方法
EP3251301A4 (en) 2015-01-28 2018-10-10 Umbra Technologies Ltd. System and method for a global virtual network
WO2016162748A1 (en) 2015-04-07 2016-10-13 Umbra Technologies Ltd. Multi-perimeter firewall in the cloud
WO2016178446A1 (ko) * 2015-05-07 2016-11-10 에스피테크놀러지주식회사 그래픽 처리 장치와 이에 포함되는 크로스 드라이버 제어 모듈 및 그 제어방법
CN112583744B (zh) 2015-06-11 2023-04-18 安博科技有限公司 用于网络挂毯多协议集成的系统和方法
WO2017047848A1 (ko) * 2015-09-18 2017-03-23 (주)재플 다중화 특성을 이용한 재핑 광고 시스템
CN114726847A (zh) 2015-12-11 2022-07-08 安博科技有限公司 用于网络挂毯和瞬间粒度上的信息弹弓的系统和方法
CN109416618B (zh) 2016-04-26 2022-02-25 安博科技有限公司 由信息弹弓提供动力的数据信标脉冲发生器
KR101849224B1 (ko) * 2016-10-20 2018-04-17 한화시스템 주식회사 단일 보드 컴퓨터를 위한 그래픽 카드 및 그래픽 api 제공방법
CN108132719A (zh) * 2016-12-01 2018-06-08 龙芯中科技术有限公司 基于VxWorks操作系统的鼠标滚轮的实现方法及装置
US10380038B2 (en) * 2017-08-24 2019-08-13 Re Mago Holding Ltd Method, apparatus, and computer-readable medium for implementation of a universal hardware-software interface
JP6800125B2 (ja) * 2017-09-29 2020-12-16 太陽誘電株式会社 回路基板及び回路モジュール
CN112074805B (zh) * 2018-05-07 2023-03-28 华为技术有限公司 一种用于生成显示内容的方法、装置和计算机程序
US10710536B1 (en) 2019-03-25 2020-07-14 Himax Technologies Limited Function safety system for vehicle malfunction display
CN115904148A (zh) * 2022-11-14 2023-04-04 京东方科技集团股份有限公司 触控事件的处理方法及装置、存储介质、电子设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5734852A (en) * 1993-12-02 1998-03-31 Object Technology Licensing Corp. Method and apparatus for displaying hardware dependent graphics in an object-oriented operating system
US6397262B1 (en) * 1994-10-14 2002-05-28 Qnx Software Systems, Ltd. Window kernel

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2118201C (en) 1994-10-14 2003-02-04 Patrick M. Hayden Photon windowing kernel
JPH10507853A (ja) * 1994-10-25 1998-07-28 オブジェクト テクノロジー ライセンシング コーポレイション ウィンドウをサービスするためのオブジェクト指向システム
US5546518A (en) * 1995-01-06 1996-08-13 Microsoft Corporation System and method for composing a display frame of multiple layered graphic sprites
JP3210603B2 (ja) * 1997-07-04 2001-09-17 インターナショナル・ビジネス・マシーンズ・コーポレーション イメージの処理方法、サーバ及び記録媒体
US6832266B1 (en) * 2000-02-07 2004-12-14 Sun Microsystems, Inc. Simplified microkernel application programming interface
US7051282B2 (en) * 2003-06-13 2006-05-23 Microsoft Corporation Multi-layer graphical user interface
US7830372B2 (en) * 2004-08-30 2010-11-09 Qnx Software Systems Gmbh & Co. Kg Method and system for providing transparent access to hardware graphic layers

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5734852A (en) * 1993-12-02 1998-03-31 Object Technology Licensing Corp. Method and apparatus for displaying hardware dependent graphics in an object-oriented operating system
US6397262B1 (en) * 1994-10-14 2002-05-28 Qnx Software Systems, Ltd. Window kernel

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014526077A (ja) * 2011-07-07 2014-10-02 ▲騰▼▲訊▼科技(深▲セン▼)有限公司 グラフィックスレンダリングエンジンおよびその実施方法
US9129395B2 (en) 2011-07-07 2015-09-08 Tencent Technology (Shenzhen) Company Limited Graphic rendering engine and method for implementing graphic rendering engine
KR101939309B1 (ko) * 2018-05-30 2019-01-16 주식회사 바탕건축사사무소 건축물 외장 장치

Also Published As

Publication number Publication date
EP2631784B1 (en) 2020-06-24
US8416235B2 (en) 2013-04-09
US20060048164A1 (en) 2006-03-02
CA2516881C (en) 2019-06-04
US8098246B2 (en) 2012-01-17
KR20060050830A (ko) 2006-05-19
US9274677B2 (en) 2016-03-01
US20130222362A1 (en) 2013-08-29
CA2516881A1 (en) 2006-02-28
US20110050688A1 (en) 2011-03-03
EP2631784A3 (en) 2013-10-16
US8648852B2 (en) 2014-02-11
KR101228708B1 (ko) 2013-02-01
US7830372B2 (en) 2010-11-09
CN1770129A (zh) 2006-05-10
US20140143711A1 (en) 2014-05-22
US20120256930A1 (en) 2012-10-11
EP2631784A2 (en) 2013-08-28
EP1635253B1 (en) 2018-04-18
EP1635253A2 (en) 2006-03-15
EP1635253A3 (en) 2010-04-21

Similar Documents

Publication Publication Date Title
CA2516881C (en) System for providing transparent access to hardware graphic layers
CN109388467B (zh) 地图信息显示方法、装置、计算机设备及存储介质
RU2491609C2 (ru) Прокрутка изображения виртуального рабочего стола
US8458619B2 (en) Method, system and program product for screensaver breakthrough of prioritized messages
US7783990B2 (en) Association of display elements
US20030052923A1 (en) Exclusive use display surface areas and persistently visible display of contents including advertisements
US20070234212A1 (en) Selective window exclusion for captured content
US8077143B2 (en) Motion based display management
JP2000207088A (ja) 表示要素を移動するための方法および装置
CN115546410A (zh) 窗口展示方法、装置、电子设备及存储介质
WO2024175006A1 (zh) 虚拟环境中的交互方法、装置、设备和存储介质
CN115185408A (zh) 一种车载娱乐信息显示方法、装置、设备和介质
JP2023097301A5 (ja)
KR20080009978A (ko) 이동통신 단말기의 메뉴화면 구성 방법
CN115562736A (zh) 显示处理方法、装置、电子设备及介质
WO2013132647A1 (ja) 情報処理装置、情報処理方法、情報処理プログラムが記録された記録媒体及び情報処理プログラム
JP2003524843A (ja) 表示面上の相補的なユーザインターフェースを制御する方法およびシステム
CN114579222A (zh) 屏幕控制方法、行车记录仪及存储介质
CN117909018A (zh) 应用程序图标的显示方法及装置、存储介质、电子设备
CN116400841A (zh) 界面显示方法、装置、电子设备和可读存储介质
CN117149318A (zh) 一种数据处理方法及电子设备
CN118295750A (zh) 显示方法、装置、车辆、介质及程序产品
CN117608715A (zh) 一种应用共享方法、装置、设备及存储介质
CN117671210A (zh) 视角切换方法、装置、设备及存储介质
CN118295612A (zh) 一种智能表面的显示方法及智能表面显示设备

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080714

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101221

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110705