"ハードウェアにおいて少なくとも部分的に実施される1又はそれ以上のモジュールを有し、該1又はそれ以上のモジュールは、複数のアプリケーションへ1又はそれ以上のアプリケーションプログラミングインターフェースを介してアクセス可能である単一のコンポジションエンジンを実施するよう構成され、該コンポジションエンジンは、ディスプレイデバイスでの表示のために前記コンポジションエンジンによってレンダリングされるよう前記複数のアプリケーションの夫々からの要素を記述するデータを受信するよう構成される、システム。前記要素は、前記複数のアプリケーションの中の第1のアプリケーションに対応する第1のウィンドウと、前記複数のアプリケーションの中の第2のアプリケーションに対応する第2のウィンドウとを含む、請求項1に記載のシステム。前記要素の中の第1の要素は、前記複数のアプリケーションの中の第1のアプリケーションによって供給され、前記要素の中の第2の要素は、前記複数のアプリケーションの中の第2のアプリケーションによって供給される、請求項1に記載のシステム。前記1又はそれ以上のモジュールは、前記第1の要素がレンダリングされる場合に前記第2の要素によってふさがれるかどうかを決定し、前記第1の要素がふさがれるとの決定に応答して、前記第1の要素のレンダリングをスキップするよう構成される、請求項3に記載のシステム。前記1又はそれ以上のモジュールは、前記第1の要素がレンダリングされる場合に前記第2の要素とディスプレイデバイス上の同じ位置を共有することを決定し、前記決定に応答して、1又はそれ以上の視覚的効果を適用し、該1又はそれ以上の視覚的効果の適用の前且つ前記決定の後に前記第1の要素及び前記第2の要素を別々にレンダリングすることなく前記第1の要素及び前記第2の要素が同じ位置を共有するように結果を生成するよう構成される、請求項3に記載のシステム。前記1又はそれ以上のモジュールは更に、該1又はそれ以上のモジュールを含むコンピューティングデバイスのカーネルにおいてオブジェクトデータベースモジュールを実施するよう構成され、該オブジェクトデータベースモジュールは、前記1又はそれ以上のアプリケーションプログラミングインターフェースから前記コンポジットエンジンへ前記データの少なくとも一部を伝えるよう構成される、請求項1に記載のシステム。前記データの前記少なくとも一部は、前記要素のリストの開始及び終了を記述し、前記オブジェクトデータベースモジュールは、前記複数のアプリケーションの中の対応するアプリケーションからの前記リストの終了のインジケーションの受信に応答して前記要素のリストを前記コンポジットエンジンへ供給するよう構成される、請求項6に記載のシステム。前記オブジェクトデータベースモジュールは、前記要素の中のどれが前記複数のアプリケーションの中のどれに対応するのかを追跡するよう構成される、請求項6に記載のシステム。前記オブジェクトデータベースモジュールは、前記コンポジットエンジンによるレンダリングのための基準を前記データが満たすとのバリデーションを実行するよう構成される、請求項6に記載のシステム。前記オブジェクトデータベースモジュールは、変更された要素を記述する前記データの前記少なくとも一部を前記コンポジットエンジンへ伝え、変更されていない要素を記述する前記データの他の部分を伝えないよう構成される、請求項6に記載のシステム。大域的コンポジションシステムが記載される。1又はそれ以上の実施において、大域的コンポジションシステムは、複数のアプリケーションのためのレンダリングを実施するよう構成されてよい。例えば、大域的コンポジションシステムは、アプリケーションにアクセス可能である1又はそれ以上のアプリケーションプログラミングインターフェースAPIを顕在化させるよう構成される。次いで、APIは、単一のコンポジションエンジンに複数のアプリケーションのためのレンダリングを実施させるために使用されてよい。単一のコンポジションエンジンの使用は、どのような要素がアプリケーションの夫々によって供給されるのか、及び如何にしてそれらの項目がディスプレイデバイスへのレンダリングのために関連するのかを知ることによって効率的なレンダリングを実施するために、使用されてよい。この項目は、詳細な説明において以下で更に記載される簡単化された形態において概念の選択を導入するために設けられている。この項目は、請求対象の重要な特徴又は必須の特徴を特定するよう意図されず、且つ、請求対象の適用範囲を決定する助けとして使用されるよう意図されない。詳細な説明は、添付の図面を参照して記載される。図面において、参照符号の最左の数字は、その参照符号が最初に現れる図を特定する。明細書及び図面における異なる事例での同じ参照符号の使用は、類似する又は同一の項目を示すことができる。コンピューティングデバイスによって要素をレンダリングするために用いられる従来技術は、各アプリケーションが対応するコンポジションエンジンを割り当てられている分散システムを採用した。このため、異なるコンポジションエンジンは、他のコンポジションエンジンによって何が実行されているのかに気付かなかった。これは、従来技術を実施するコンピューティングデバイスの効率を妨げうる冗長性、要素の不必要な分離、等を生じさせ、従って、そのような従来技術をシンthinコンピューティングデバイスによる使用に不向きなものとした。大域的コンポジション技術がここで記載される。1以上のウィンドウにおいて、単一のコンポジションエンジンは、1以上のAPIを介して複数の異なるアプリケーションによってアクセス可能である。よって、コンポジションエンジンは、何が様々なアプリケーションによって導かれているのかと、如何にしてそれらの要素が関連するのかとを認識することができる。この認識は、次いで、アプリケーションの要素のレンダリングにおける効率を改善するために利用されてよい。1又はそれ以上の実施において、コンポジションエンジンは、それらのアプリケーションに属するスレッドからの非同期性を実行し、これは、アプリケーションが、コンテンツをそれらのウィンドウ内で動画化させ、異種のレンダリング技術を用いてそのようなコンテンツをラスタライズすることを可能にする。更に、システムにおける各アプリケーションからのコンポジションデータは、コンポジションエンジンが閉塞検出のような大域的最適化を実行するとともに、効率的且つ完全な方法で複数のアプリケーションからのコンテンツを混合しマッチさせることを可能にする単一のグラフ例えば、大域的コンポジションツリーにおいて管理されてよい。それら及び他の技術についての更なる議論は、上記の図面に関連して見出され得る。以下の議論において、例となる環境が最初に記載され、該環境は、ここで記載される技術を用いてよい。次いで、例となるプロシージャが記載され、該プロシージャは、例となる環境及び他の環境において実行されてよい。結果として、例となるプロシージャの実行は、例となる環境に制限されず、且つ、例となる環境は、例となるプロシージャの実行に制限されない。[例となる環境]図1は、ここで記載される技術を用いるよう動作する例となる実施における環境100の説明図である。表される環境100は、ネットワーク106を介してウェブサービス104へ通信上結合されるコンピューティングデバイス102を含む。コンピューティングデバイス102、及びウェブサービス104を実施することができるコンピューティングデバイスは、様々な方法において構成されてよい。例えば、コンピューティングデバイスは、デスクトップコンピュータ、移動局、エンターテイメント装置、ディスプレイデバイスへ通信上結合されるセットトップボックス、無線電話、ゲーム機、等のような、ネットワーク106上で通信可能であるコンピュータとして構成されてよい。よって、コンピューティングデバイス102は、十分なメモリ及びプロセッサリソースを備えた完全リソースデバイス例えば、パーソナルコンピュータ、ゲーム機から、メモリ及び/又は処理リソースが限られた低リソースデバイス例えば、従来型のセットトップボックス、携帯型ゲーム機へ及んでよい。更に、単一のコンピューティングデバイス102が示されているが、コンピューティングデバイス102は、ウェブサービス104、リモートコントロール及びセットトップボックスの組み合わせ、画像捕捉デバイス、並びにジェスチャを捕捉するよう構成されるゲーム機、等によるような動作を実行するようビジネスで利用される複数のサーバのような複数の異なるデバイスを代表してよい。ネットワーク106はインターネットとして表されているが、ネットワークは多種多様の構成を前提としてよい。例えば、ネットワーク106は、ワイドエリアネットワークWAN、ローカルエリアネットワークLAN、無線ネットワーク、公衆電話網、イントラネット、等を含んでよい。更に、単一のネットワーク106が示されているが、ネットワーク106は、複数のネットワークを含むよう構成されてよい。コンピューティングデバイス102は更に、オペレーティングシステム108を含むよう表されている。オペレーティングシステム108は、コンピューティングデバイス102で実行可能であるアプリケーション110に対してコンピューティングデバイス102の基礎的機能を抽出するよう構成される。例えば、オペレーティングシステム108は、コンピューティングデバイス102の処理、メモリ、ネットワーク、及び/又は表示機能を抽出してよく、それにより、アプリケーション110は、如何にしてこの基礎的機能が実施されるのかを知らずに書かれ得る。アプリケーション110は、例えば、ディスプレイデバイス112によってレンダリング及び表示されるよう、如何にしてこのレンダリングが実行されるのかを知らずに、オペレーティングシステム108へデータを供給してよい。オペレーティングシステム108はまた、例えば、コンピューティングデバイス102のユーザによってナビゲーション可能であるファイルシステム及びユーザインターフェースを管理するといった、様々な他の機能を表してよい。これの例は、コンピューティングデバイス102のディスプレイデバイス112に表示されるデスクトップとして表されている。オペレーティングシステム108はまた、大域的コンポジションシステム114を含むよう表されている。大域的コンポジションシステム114は、アプリケーション110が大域的コンポジションエンジン116以降、単にコンポジションエンジン116とも呼ばれる。を用いて項目をディスプレイデバイス112において描くことを可能にするよう構成される直接コンポジションコンポーネントを含むシステムを表してよい。オペレーティングシステム108の部分として表されているが、大域的コンポジションシステム114は、ブラウザの部分、スタンドアローン型モジュール、等のように、様々な他の方法において実施されてよい。更に、大域的コンポジションシステム114は、ネットワーク106にわたって分散されてよく、その例は、ウェブサービス104における大域的コンポジションシステム118の包含として表されている。ユーザ経験例えば、アプリケーション110のために生成されるユーザインターフェースは、ウィンドウ、アニメーション例えば、テキストのスクローリング、等のような、相互作用することが可能なかなりの数の要素を含んでよい。ディスプレイデバイス112において表されているように、例えば、第1のウィンドウ120は、電子メールアプリケーションに対応してよく、第2のウィンドウ122はブラウザに対応してよい。よって、多数の異なるレンダリングコンポーネントが、いずれか1つの特定の時点で関連してよい。更に、それらの異なる要素は、映像及び静的なテキストを伴う時計表示のアニメーションのように、異なるリフレッシュレートを有してよい。大域的コンポジションシステム114は、異なるアプリケーション110がこのレンダリングをアンロードして、如何にしてレンダリングが実行されるのかに気付かないような機能を抽出するために利用されてよい。例えば、アプリケーション110は、レンダリングされる要素、要素の配置、及び如何にして要素が相互に関連するのかを記述するデータを提供してよい。更に、大域的コンポジションシステム114は、独立したアニメーションをサポートしてよい。アプリケーション110は、例えば、如何にしてアニメーションがレンダリングされるのかを記述するアニメーションの宣言記述declarationdescriptionを送ってよい。例えば、記述は、何が動画化されているのか、再描画が起こるべきレート、アニメーションが始まる位置、アニメーションが動く曲線、アニメーションの終了位置、アニメーションがレンダリングされる時間の量、等を示してよい。このレンダリングは、次いで、大域的コンポジションシステム114によって実行され、更なる命令なしで続いてよい。このように、アニメーションのレンダリングは、呼び出し側例えば、アプリケーション110とは無関係であり、それにより、アプリケーション110との通信の損失、アプリケーション110の非一貫性プロセッシング、等は、アニメーションのレンダリングに対する影響を有さない。それによって、これは、アニメーションをレンダリングするためのアプリケーション110による通信の数を削減することによって、コンピューティングデバイス102及び以下で更に記載されるネットワーク106のリソースとともに、アニメーションの滑らかさ及び流動性を改善するために利用されてよい。通常、コンピューティングデバイスによって実行されるアプリケーション110の夫々は、夫々のアプリケーションのための表示の処理及びレンダリングを実行するよう、対応するコンポジションエンジンと相互に作用した。従って、従来のコンポジションエンジンはしばしば、プロセス毎に実施された。然るに、従来技術は、常に複数の異なるコンポジションエンジンの実行を伴うことがある。更に、従来のコンポジションエンジンは、通常、他のコンポジションエンジンによって実行されるレンダリングに気付いていなかった。これは、ウィンドウを、たとえそれが他のウィンドウによってふさがれ得るとしても描くといった、コンピューティングデバイス102のリソースの非効率的な使用をもたらしうる。それは、コンピューティングデバイス102のプロセッサ、グラフィカルプロセッサ、メモリ、及び他のリソースの不必要な使用をもたらしうる。1又はそれ以上の実施において、大域的コンポジションシステム114は、複数のアプリケーション110が例えばアプリケーションプログラミングインターフェースを介してコンポジションエンジン116にアクセスするような大域的アーキテクチャに従う。例えば、単一のコンポジションエンジン116は、現在実行中であるアプリケーションからの要素及びデスクトップ全体に関与してよい。よって、単一のコンポジションエンジン116は、複数のアプリケーションについてレンダリングされる異なる要素を認識し、然るべく反応してよい。前述の例を続けて、コンポジションエンジン116は、アプリケーション例えば、ウィンドウの要素が、他のアプリケーション例えば、他のウィンドウについてレンダリングする要素によってふさがれることを認識してよい。図1で示されるように、例えば、アプリケーションは、電子メールアプリケーションに対応するウィンドウ120の後ろに表示されるウィンドウを有してよい。従前は、たとえアプリケーションの対応するウィンドウがコンピューティングデバイス102のユーザに可視的でないとしても、ウィンドウはやはりレンダリングされた。しかし、コンポジションエンジン116は、ふさがれるウィンドウのレンダリングをスキップするよう本技術を用いてよく、それによりコンピューティングデバイス102のリソースを節約する。大域的コンポジションシステム114は、多種多様の機能を提供するために使用されてよい。上述されたように、大域的コンポジションシステム114は、何が複数のアプリケーションによってレンダリングされるのかの大域的解析を実行し、例えば、要素のレンダリングが上述されたようにスキップされ得る閉塞の場合に、要素のどれが描かれるのかを効率良く決定してよい。更に、リソースは、例えば、エンジン自体及び何がエンジンによって描かれているのかによって、従来のコンポジションエンジンにより消費されうる断片化メモリの代わりに、複数のアプリケーション110によって中間記憶を共有するように、大域的コンポジションシステム114によってプールされてよい。大域的コンポジションシステム114はまた、セキュリティ技術をサポートしてよい。例えば、大域的コンポジションシステム114は、暗号化された映画及び対応するライセンシングのような、保護された映像を描画するために用いられてよい。従来のコンポジションエンジンに関し、アプリケーションはコンテンツを構成し、次いでコンテンツを対応するコンポジションエンジンへ転送する。これは、コンテンツが保護なしで障害なく転送されることをもたらし例えば圧縮されていない映像フレームの転送、従って、コンテンツは、悪意のある第三者に晒され得る。しかし、ここで記載される1又はそれ以上の実施では、コンテンツは大域的コンポジションシステム114へ提供されてよく、アプリケーション110によって直接に触れることができない保護された領域内で実行されてよい。よって、更にコンテンツを伝達しないとのコンポジションエンジン116の信頼は、そのコンテンツを保護するために使用されてよい。例えば、コンポジションエンジンは、レンダリングのためのピクセルを、コンピューティングデバイス102によって実行されるアプリケーションへそれらピクセルを露わにすることなく生成するために利用されてよい。よって、この一方向フローは、例えば、悪意のあるエンティティからの不適切なアプリケーションが保護されていないコンテンツを受信しないことを確かにするのを助けることができる。更に、従来のコンポジションエンジン及び対応するアプリケーションは、ディスプレイデバイス112の画面の特定の部分を支配していた。従って、幾つかのディスプレイ技術は、そのような従来技術によりサポートするのが困難であった。そのような技術の1つは、ディスプレイデバイス112の領域が1つ又は他の従来のコンポジションエンジンによって両方によってではなく支配されうるので、複数のアプリケーションについてトランスペアレンシーであった。例えば、ディスプレイデバイス112の特定の領域は、少なくとも2つの異なるアプリケーション及びそれらの対応する従来のコンポジションエンジンからのウィンドウを伴ってよい。通常、トランスペアレンシーのような技術をサポートするよう、ウィンドウの各インスタンスはメモリへ書き込まれ、次いで、効果は組み合わせに適用された。これはリソース消費型であった。しかし、大域的コンポジションシステム114は異なるウィンドウを認識し、然るべく反応するので、所望の結果が、予めメモリへ別個にウィンドウを書き込み、次いで視覚的な効果をそれらのウィンドウに適用することなしに、達成され得る。例えば、大域的コンポジションシステム114は、レンダリングされる要素を記述する単一の階層ツリーを利用して、如何にして要素が関連するのかを知ることができる。従って、大域的コンポジションシステム114は、従来技術により実行された中間ステップなしで、コンピューティングデバイス102のメモリへ直接に書き込んでよい。よって、そのような技術は、メモリ及び/又はプロセッシング制限により従来のコンポジションエンジンを用いることができなかったシンコンピューティングデバイスによって用いられてよい。更に、従来のコンポジションエンジンは、一般的に、異なるアプリケーションによる異なるレンダリングレートをサポートするよう非同期的に実行されていた。これは、一構成に関連するアプリケーションによって特定されるレンダリングが他のアプリケーションによって特定されるレンダリングに影響しないような機能をサポートするが、これは、コンピューティングデバイス102のリソースの非効率的な使用をもたらした。更に、異なる従来のコンポジションエンジンへ割り当てられるプライオリティは、従来のコンポジションエンジン及び関連するアプリケーションの両方にエラーを引き起こすことがある。例えば、従来のコンポジションエンジンは、コンピューティングデバイス102のプロセッサによる実行のために、比較的高いプライオリティを与えられてよい。しかし、インスタンスは起こることがあり、このとき、コンポジションエンジンは、例えば、複数のアニメーションをサポートするために、相当量のリソースを消費する。このため、コンポジションエンジン及びアプリケーション自体は、そのようなリソース消費タスクに直面した場合に、意図されるように実行するために利用可能な十分なリソースを有さないことがある。1又はそれ以上の実施において、コンポジションエンジン116は、高いプライオリティを割り当てられてよい。例えば、高いスレッドプライオリティが、コンピューティングデバイス102によって実行される他のスレッドに割り当てられるプライオリティに対して、コンポジションエンジン116へ割り当てられてよい。大域的コンポジションシステム114は、次いで、異なるソースからの要素が如何にしてコンポジションエンジン116によってレンダリングされるのかのプライオリティを管理してよい。これは、レンダリングが起こることを確かにするよう高いプライオリティを与えられる。例えば、大域的コンポジションシステム114は、どの要素が更新されるのか、この更新が起こる頻度例えば、60Hzから30Hzへ切り替えること、等を管理してよい。よって、大域的コンポジションシステム114は、レンダリングのための要素を提供するアプリケーション110のように、他の使用のためのコンピューティングデバイス102の利用可能性を進展させるのを助けることができる。図2は、大域的コンポジションシステム114が図1のコンポジションエンジン116とともに、ユーザモードライブラリ202及びオブジェクトデータベースモジュール204を含むように、より詳細に表されている例となるシステム200を表す。ユーザモードライブラリ202は、オブジェクトデータベースモジュール204と相互作用するよう夫々のアプリケーションプロセス210,212によって使用されるように表されている様々なAPI206,208をサポートする。コンポジションエンジン116は、それ自体のプロセス214内で実行されるようにこの例となるシステム200において表されている。複数の分散されたコンポジションエンジンの従来の使用は、エンジンとともにコンピューティングデバイスのアプリケーションの実行を互いから保護した。例えば、第1のアプリケーションが機能しなくなる場合に、第1のアプリケーションへ結合されている第1の従来のコンポジションエンジンも機能しなくなる。しかし、異なる従来のコンポジションエンジンへ結合されている第2のアプリケーションは、従来のコンポジションエンジンが互いの認識を欠いていることによる不具合によって保護された。1又はそれ以上の実施において、大域的コンポジションシステム114は、レンダリングのための要素を提供するアプリケーション110によるコンポジションエンジン116の状態の変造から保護する技術を用いてよい。そのような技術の1つは、オペレーティングシステム108のカーネル216内でコンポジションエンジン116を用いることである。よって、コンポジションエンジン116は、やはりカーネル216において実行される他のコンポーネントを信頼してよい。このように、大域的コンポジションシステム114は、カーネルによってチェックが行われるように、ユーザモード218とカーネルモード220との間の信頼境界を用いてよい。1又はそれ以上の実施において、アプリケーションは、大域的コンポジションシステム114によって行われる処理の効率性を改善するよう、パラメータチェックのようなアプリケーションによって提供される正確性を決定するために利用されてよい。他のそのような技術は、どのデータ例えば、レンダリングのための要素がどのアプリケーションに属するのかを大域的コンポジションシステム114が知るように、トラッキングを伴う。従って、1つのアプリケーションの不具合例えば、クラッシュは、他のアプリケーションの要素に影響を及ぼさない。更に、大域的コンポジションシステム114は、所定量の時間後に要素がレンダリングされなくなるように、そのような不具合の場合に要素を片付けてよい。このように、大域的コンポジションシステム114は、アプリケーションが正常に機能しなくなり他のアプリケーション及びレンダリングされる対応する要素に影響を及ぼさないことを可能にしてよい。表されるように、コンポジションエンジン116は、専用のシステムプロセス214で実行される。システムプロセス214は、コンピューティングデバイス102の他のアプリケーションプロセス210,212のような、他のコードを実行するために使用されるプロセスとは異なる。更に、このプロセス214は、高度な信頼性及びプライオリティを割り当てられてよい。このプロセス214は、例えば、コンポジションデータを得る観点から信頼され得、従って、保護された映像データ、権利管理により保護された電子メール、等のような保護されたデータのために使用されてよい。図2で表されるように、大域的コンポジションシステム114は、3つの部分により実施されてよい。第1の部分は、コンポジションエンジン116として表されている。コンポジションエンジン116は、レンダリングを実行する機能、すなわち、ディスプレイデバイス112への描画の実行を代表する。第2の部分は、ユーザモードライブラリ202として表されている。ユーザモードライブラリ202は、アプリケーションプログラミングインターフェースAPI206,208を顕在化させることによってアプリケーションによって呼び出されるエンティティを代表する。例えば、ユーザモードライブラリ202は、例えば動的リンクライブラリDLLの使用により、アプリケーションからコンポジションデータを受信するようメールスロットとして動作してよい。第3の部分は、カーネル216に存在するよう表されているオブジェクトデータベースモジュール204として表されている。オブジェクトデータベースモジュール204は、ユーザモードライブラリ202とコンポジションエンジン116との間でデータを移動することに関与する機能を代表する。オブジェクトデータベースモジュール204はまた、バリデーションを実行してよい。例えば、アプリケーションは、ビットマップのような要素を生成するためにユーザモードライブラリ202を呼び出してよい。要求される要素がオブジェクトデータベースモジュール204によって強いられる基準例えば、N個よりも少ないピクセルを満たさない場合は、オブジェクトデータベースモジュール204は、ユーザモードライブラリ202を呼び出したアプリケーションへ失敗メッセージを返す。よって、オブジェクトデータベースモジュール204は、何がコンポジションエンジン116へ提供されるのかを制御するようカーネル216内で動作してよい。様々な他のポリシーが、オブジェクトデータベースモジュール204によって強いられてよい。従って、コンポジションエンジン116は、オブジェクトデータベースモジュール204によって実施されるポリシーを満たすと、オブジェクトデータベースモジュール204によって提供されるデータを信頼してよい。つまり、コンポジションエンジンは、データが有効であり且つ正確であり、従ってレンダリングに適すると考えてよい。結果として、バリデーションは、オブジェクトデータベースモジュール204によって1度実行されて、更なるバリデーションなしでレンダリングを実行するためにコンポジションエンジン116によって利用されてよい。オブジェクトデータベースモジュール204はまた、レンダリングされるデータがいつ変わったかをコンポジションエンジン116に知らせる機能を代表してよい。例えば、ユーザモードライブラリを介して実施されるAPIは、何がレンダリングされるのかを記述するグラフを消費するよう構成されてよい。これの例は図3において示される。グラフ300は、レンダリングされる要素のリストとともに、ディスプレイデバイス112上のどこに要素をレンダリングするのかの記述を含んでよい。ディスプレイデバイス112上のどこに要素をレンダリングするのかの記述は、アニメーションの場合に如何にして要素が動くことができるのかを含んでよい。更に、レンダリングされる要素は、サブ要素を用いて形成されてよく、よって、グラフ300は、階層構造を前提としてよい。更に、グラフ300は、如何にして要素がレンダリングされるのか、例えば、1度にテキストを描画する、アニメーションをレンダリングする、等を記述してよい。よって、グラフ300は、要素と、如何にしてそれらの要素が互いに関連するのかとを記述してよい。グラフ300は、場面と、一緒に構成されるビットマップと、それらのビットマップが構成される空間的な関係を定義するビジュアルとをレンダリングするためにコンポジションエンジン116によって使用され得るオブジェクトの2つの組を表す。このモデルにおいて、ビットマップは何whatであり、ビジュアルはコンポジションエンジン116のどのようにhowである。それらのオブジェクトは、3つの構造において配置され、構成のために最高位の又は子供のウィンドウに結合される。この図では、子ビジュアル4はまた、DXビットマップを指し示すように表されている。これは、開発者が複数のUI要素について同じ内容を使用することを可能にするコンポジションシステムの機能を記述し、コンピューティングデバイス102のリソース例えば、メモリを節約するのを助ける。図2に戻って、コンポジションエンジン116によって受信されると、アプリケーションは、要素をレンダリングし続けるようコンポジションエンジン116を更に呼び出す必要がない。よって、コンポジションエンジン116は、ディスプレイデバイス112のリフレッシュレートでアニメーションをレンダリングするために毎秒60回の呼び出しをアプリケーションが行うことを要した従来技術と比較して、リソースを節約することができる。よって、アプリケーション110は、構造を構成するユーザモードライブラリ202のAPIと、コンポジションエンジン116によってレンダリングされる要素を構成するAPIとを呼び出してよい。コンポジションエンジン116によってレンダリングされる内容を変更するために、アプリケーションは、構造及び/又は要素を更新するようユーザモードライブラリ202の他のアプリケーションプログラミングインターフェースを呼び出してよい。例えば、アプリケーションは、株式相場表示用アニメーションのために使用される情報を提供する更新APIを介してデータを提供してよい。1又はそれ以上の実施において、バッチング技術はまた、どの要素がフレームによりレンダリングされるのかを定義するために利用されてよい。上述されたように、大域的コンポジションシステム114は、様々な異なるレートでのレンダリングのために様々な異なる要素を受け取ってよい。然るに、大域的コンポジションシステム114は、一緒にレンダリングされる要素のリストが形成される構造をサポートしてよい。よって、大域的コンポジションシステム114は、要素の始まり及び終わりの定義を実施してよく、該定義において、始まりと終わりとの間に受け取られる要素は、終わりが受け取られるまでレンダリングされない。よって、フレームは、特定のフレームのための要素のレンダリングに対する全部かゼロかのアプローチをサポートし、望まれる場合に要素が表示のためにまとめてレンダリングされることを確かにする。例えば、オブジェクトデータベースモジュール204は、アプリケーションについて2つの異なる状態を追跡してよい。第1の状態は、現在の表示用である要素を参照してよい。第2の状態は、第1の状態の後で表示される要素及び変更される要素を参照してよい。よって、第2の状態は、要素のリストが終了すると、例えば、リストが終了したとのインジケーションがアプリケーションから受け取られると、コンポジションエンジン116によるレンダリングのための要素のリストを構築するために利用されてよい。終了すると、変更はコンポジションエンジン116へ送信されてよい。更に、リストが終了したとのアプリケーションからのインジケーションの受信のタイミングは、いつそれらの変更が表示されるのか、例えば、どのフレームか、を決定するために使用されてよい。よって、コンポジションエンジン116は、終了する1又はそれ以上のリストにおいて記述される変更のバッチを受け取ってよいが、終了と示されていないリストは送信されない。このバッチングは、よって、コンポジションエンジン116によってレンダリングされる表示を制限するのを助けることができる。更に、これは、そのような定義をサポートしなかった従来技術により起こりうる誤った視覚的なアーティファクトの表示を制限するのを助けることができる。当然に、フレームに対応する時間の量は、望まれるように様々な異なる量について設定されてよい。よって、オブジェクトデータベースモジュール204は、何が以前にコンポジションエンジン116によってレンダリングされたのかを記憶しており、更に、何がレンダリングされることになっているのかを認識してよい。従って、オブジェクトデータベースモジュール204は、この情報を比較することによって、どの要素が変更されるのかを決定してよい。然るに、オブジェクトデータベースモジュール204は、変更されない情報をコンポジションエンジン116へ送信することなしに、このような変更を記述する情報を送信してよい。更に、フレームの使用は、効率を更に改善することができる。例えば、アプリケーションは、オブジェクトが特定の距離を移動されて原の位置へ戻ることを記述するデータを送信してよい。オブジェクトデータベースモジュール204は、このような移動が単一のフレームの時間期間内に起こることを決定してよい。然るに、オブジェクトデータベースモジュール204は、このデータをコンポジションエンジン116へ送信するのを控え、むしろ、オブジェクトをその前の状態のままにさせてよい。例えば、このような移動は、ディスプレイデバイス112をリフレッシュするために使用される時間期間内に起こってよく、従って、とにかくユーザには視認されない。このように、オブジェクトデータベースモジュール204は、レンダリングのためにコンポジションエンジン116へ提供されるリストの構成における中間の状態を放棄してよい。次いで、このリストは、様々な方法例えば、変更を実施するようコンポジションエンジン116によって実行されるコマンドの配列において送信されてよい。更に、この技術はまた、単一のインスタンスがコンポジションエンジンに報告されるので、アプリケーションによって送信される限りないデータのインスタンスをアドレッシングするために使用されてよい。オブジェクトデータベースモジュール204及びコンポジションエンジン116はまた、変更が実施されたことを記述する確認応答技術を用いてよい。例えば、コンポジションエンジン116は、なされる変更を記述するオブジェクトデータベースモジュール204の通信を受け取ってよい。変更が行われている間、オブジェクトデータベースモジュール204は、前の変更がなされたとの確認応答が受信されるまで追加の変更を送信するのを待ってよい。確認応答がオブジェクトデータベースモジュール204によって受信されると、次いで、追加の変更がコンポジションエンジン116へ送られてよい。更に、この技術は、スロットリングを提供するために使用されてよく、従って、コンピューティングデバイス102のリソースを更に節約することができる。例えば、アプリケーションは、ディスプレイデバイスがリフレッシュされるレートを上回る多数のリクエストを行うことがある。フレームを用いて変更をバッチすることによって、さもなければ消費されうるリソースの量は、削減される。ユーザモードライブラリ202のAPIを呼び出すことによって何が表示されるのかを変更するアプリケーションは、マルチスレッド化されてよい。然るに、1又はそれ以上の実施において、オブジェクトデータベースモジュール204は、単一のアプリケーションの複数のスレッドからの複数の呼び出しが状態を改悪しないような技術を用いてよい。これは、アプリケーションが自身のスレッドをまとめてロックすることによって実行されてよい。例えば、1のスレッドは、アプリケーションの他のスレッドがタスクを完了する間ブロックされてよい。次いで、複数のスレッドからの変更は、例えば、異なるスレッドが他のスレッドへ制御を渡す前に変更を完了させることができるような変数について用いられるインターロックドアクセスにより、オペレーティングシステム108によって管理されるキューにおいて記憶されてよい。これは、コンポジションエンジン116によって処理される原始単位の作業に到達するよう上記のフレーム技術をサポートしてよい。更に、更新が受信されないフレームについて、コンポジションエンジンの実行は、次のフレームまでポーズされてよく、それによりコンピューティングデバイス102のリソースは更に節約される。カーネル216はまた、大域的コンポジションシステム114とともに様々な機能を追加してよい。例えば、アプリケーションが機能しなくなる例えば、クラッシュする場合に、カーネル216は、コンポジションエンジン116にこの発生を知らせてよい。次いで、コンポジションエンジン116は、アプリケーションが通常の終了プロシージャにより当然に実行を中止した場合に使用されるのと同様の技術を実行してよい。このように、コンポジションエンジン116は、アプリケーションに対応する要素がコンピューティングデバイス102のディスプレイデバイス112上の表示から除去されるようなクリーンアップ状態に達してよい。よって、これは、コンポジションエンジン116の実行においてロバスト性を進展させる。コンポジションエンジン116の実行はまた、ユーザモードライブラリ202について書き出し専用APIを実施することによって、保証され得る。このように、コンポジションエンジン116は、ピクセルを、それらのピクセルをアプリケーションにさらすことなく生成することができ、それにより画像を悪意のある第三者から保護する。上述されたように、これら技術の実施はまた、コンピューティングデバイス102の外のデバイスを伴ってよく、該デバイスは、ウェブサービス104のような1又はそれ以上のエンティティにわたって分散されてよい。例えば、そのような技術は、ネットワーク106を介した特性例えば、図3のグラフ300のようなコンポジションツリー及び要素のバッチの通信を通じて端末サービス、遠隔デスクトップ環境、等をサポートするために用いられてよい。よって、グラフ300は、例えば、ウェブサービス104におけるユーザモードライブラリ202及び/又はオブジェクトデータベースモジュール204の実施を通じて他の場所で生成されて、コンピューティングデバイス102の実行を通じてコンポジションエンジン116によるレンダリングのためにコンポジションツリーを伝達してよい。このように、アニメーションは、ネットワーク106が信頼できない場合でさえ、滑らかに表示され得る。これら及び他の技術についての更なる議論は、以下のプロシージャに関連して知られ得る。大域的コンポジションシステム114はまた、動作を実行するためにハードウェア例えば、グラフィクスカードから利用可能な機能を利用するよう構成されてよい。これは、動作がより高速に行われて、より良い性能を示すことができることを意味する。その例は、透明性をコンポジション要素UIの一部、ウィンドウ全体に加えるグラフィクス処理ユニットGPUの使用、2つのオーバレイする半透明のウィンドウを混合すること、幾何学的なクリップ丸みを帯びた角を描くこと、等を含む。ハードウェア例えば、GPUが利用可能でない場合に、大域的コンポジションシステム114は、ソフトウェアレンダリングへフォールバックすることによって、依然としてそのような動作を実行することができる。一般に、ここで記載される機能の何れも、ソフトウェア、ファームウェア、ハードウェア例えば、固定ロジック回路、又はそれら実施の組み合わせを用いて実施され得る。ここで使用される語モジュール、機能及びエンジンは、一般に、ソフトウェア、ファームウェア、ハードウェア、又はそれらの組み合わせを表す。ソフトウェア実施の場合に、モジュール、機能、又はエンジンは、プロセッサ例えば、1又はそれ以上のCPUで実行される場合に、指定されるタスクを実行するプログラムコードを表す。プログラムコードは、1又はそれ以上のコンピュータ可読メモリデバイスにおいて記憶され得る。以下で記載される技術の特徴は、プラットフォーム非依存であり、これは、それらの技術が、様々なプロセッサを有する様々な市販のコンピュータプラットフォームで実施されてよいことを意味する。例えば、コンピューティングデバイス102はまた、コンピューティングデバイス102のハードウェアに動作、例えば、プロセッサ、機能ブロック、等を実行させるエンティティ例えば、ソフトウェアを含んでよい。例えば、コンピューティングデバイス102は、コンピューティングデバイス、及び特にコンピューティングデバイス102のハードウェアに動作を実行させる命令を保持するよう構成されるコンピュータ可読媒体を含んでよい。よって、命令は、動作を実行するようにハードウェアを構成するよう機能し、このように、機能を実行するようハードウェアの変形をもたらす。命令は、様々な異なる構成を通じてコンピューティングデバイス102へコンピュータ可読媒体によって提供されてよい。コンピュータ可読媒体のそのような構成の1つは、信号搬送媒体であり、よって、例えばネットワークを介して、コンピューティングデバイスのハードウェアへ例えば、搬送波として命令を送信するよう構成される。コンピュータ可読媒体はまた、コンピュータ可読記憶媒体として構成されてよく、よって信号搬送媒体ではない。コンピュータ可読記憶媒体の例は、ランダムアクセスメモリRAM、読出専用メモリROM、光ディスク、フラッシュメモリ、ハードディスクメモリ、並びに磁気、光及び他の技術を用いて命令及び他のデータを記憶することができる他のメモリデバイスを含む。[例となるプロシージャ]以下の議論は、上記のシステム及びデバイスを用いて実施され得る大域的コンポジションシステム技術について記載する。プロシージャの夫々の態様は、ハードウェア、ファームウェア、若しくはソフトウェア、又はそれらの組み合わせにおいて実施されてよい。プロシージャは、1又はそれ以上のデバイスによって実行される動作を特定するブロックの組として示され、夫々のブロックによる動作の実行のために示される順序に必ずしも制限されない。以下の議論の各部で、図1の環境100、図2のシステム200、及び図3のグラフ300が参照される。図4は、単一のコンポジションエンジンによるレンダリングのための要素を記述するグラフが生成されるところの例となる実施におけるプロシージャ400を表す。グラフが生成されるブロック402。グラフは、1又はそれ以上のコンピューティングデバイスによって実行される複数のアプリケーションによるレンダリングのために特定されている要素を記述する。図3で示されるように、グラフ300は、レンダリングされる要素のリストと、ディスプレイデバイス112上のどこに要素をレンダリングするのかの記述とを含んでよい。後者の記述は、如何にして要素がアニメーションの場合に動くのかを含んでよい。更に、レンダリングされる要素は、サブ要素を用いて形成されてよく、グラフ300は、階層構造を前提としてよい。更に、グラフ300は、如何にして要素がレンダリングされるのかを記述してよい。よって、グラフ300は、要素と、如何にして要素が互いに関連するのかとを記述してよい。様々な他のグラフも考えられる。グラフは、要素をレンダリングさせるよう単一のコンポジションエンジンによる受信のために送信されるブロック404。これは、様々な方法において実行されてよい。例えば、グラフは、単一のコンポジションエンジンを実行するコンピューティングデバイスによる受信のためにウェブサービスからネットワークを介して、例えば、ウェブサービス104の大域的コンポジションシステム118からネットワーク106を介してコンピューティングデバイス102のコンポジションエンジン116へ、送信されてよいブロック406。他の例において、グラフは、オブジェクトデータベースモジュールから単一のコンポジションエンジンへ送信されてよいブロック408。オブジェクトデータベースモジュール204は、例えば、複数のアプリケーションから受け取ったデータに基づきグラフを生成し、そのグラフを、更新される要素を参照するためにコンポジションエンジンへ送信してよい。様々な他の例も考えられる。[例となるシステム及びデバイス]図5は、図1を参照して記載されたコンピューティングデバイス102を含む例となるシステム500を表す。例となるシステム500は、パーソナルコンピュータPC、テレビジョンデバイス、及び/又はモバイルデバイスでアプリケーションを実行するときに、シームレスなユーザ経験のためのユビキタス環境を可能にする。サービス及びアプリケーションは、アプリケーションを利用しながら、ビデオゲームで遊びながら、ビデオを鑑賞しながら等に、1のデバイスから次のデバイスへ移るときに、共通のユーザ経験のために3つ全ての環境において略同じに実行される。表される例では、コンピューティングデバイス102は、上記の大域的コンポジションシステム114の少なくとも部分を実施するように表されている。例となるシステム500では、複数のデバイスが中央のコンピューティングデバイスを通じて相互接続されている。中央のコンピューティングデバイスは、複数のデバイスにとって局所的であってよく、又は複数のデバイスから遠く離れて配置されてよい。一実施形態において、中央のコンピューティングデバイスは、ネットワーク、インターネット、又は他のデータ通信リンクを介して複数のデバイスへ接続されている1又はそれ以上のサーバコンピュータのクラウドであってよい。一実施形態において、この相互接続アーキテクチャは、複数のデバイスのユーザへ共通した且つシームレスな経験を与えるよう複数のデバイスにわたって提供される機能を可能にする。複数のデバイスの夫々は、異なる物理的な要件及び能力を有してよく、中央のコンピューティングデバイスは、各デバイスに合わせられていながら全てのデバイスに共通である経験を各デバイスへ提供することを可能にするプラットフォームを用いる。一実施形態において、対象のデバイスの分類が作成され、経験は一般的な分類のデバイスに合わせられる。デバイスの分類は、物理的な特徴、使用のタイプ、又はデバイスの他の共通した特性によって定義されてよい。様々な実施において、コンピューティングデバイス102は、例えばコンピュータ502、モバイル504、及びテレビジョン506等の使用のために、様々な異なる構成を前提としてよい。それらの構成の夫々は、概して異なる構造及び機能を有するデバイスを含み、よって、コンピューティングデバイス102は、異なるデバイス分類の1又はそれ以上に従って構成されてよい。例えば、コンピューティングデバイス102は、パーソナルコンピュータ、デスクトップコンピュータ、マルチスクリーンコンピュータ、ラップトップコンピュータ、ネットブック、等を含むデバイスのコンピュータ502分類として実施されてよい。コンピューティングデバイス102はまた、携帯電話、携帯型音楽プレーヤ、携帯型ゲーム機、タブレット型コンピュータ、マルチスクリーンコンピュータ、等のモバイルデバイスを含むデバイスのモバイル502分類として実施されてよい。コンピューティングデバイス102はまた、臨時の視聴環境において概してより大きいスクリーンを有するか又はそのようなスクリーンへ接続されるデバイスを含むデバイスのテレビジョン506分類として実施されてよい。かかるデバイスは、テレビジョン、セットトップボックス、ゲーム機、等を含む。ここで記載される技術は、コンピューティングデバイス102のそれらの様々な構成によってサポートされてよく、ここで記載される具体例としての技術に制限されない。クラウド508は、コンテンツサービス512のためのプラットフォーム510を含み、且つ/あるいは、それを代表する。プラットフォーム510は、クラウド508のハードウェア例えば、サーバ及びソフトウェアのリソースの基礎的な機能を抽出する。プラットフォームは、ユーザモードライブラリ202及び/又はオブジェクトデータベースモジュール204のような、大域的コンポジションシステム118の少なくとも部分をサポートするように表されている。よって、プラットフォームは、大域的コンポジションシステム118の全て又は一部の遠隔処理をサポートするのを助けることができる。プラットフォーム510は、コンピューティングデバイス102を他のコンピューティングデバイスと接続するリソース及び機能を抽出してよい。プラットフォーム510はまた、プラットフォーム510を介して実施される大域的コンポジションシステム118について直面される要求に対して対応するレベルのスケールを提供するリソースのスケーリングを抽出する働きをしてよい。然るに、相互接続デバイス環境において、ここで記載される機能の実施は、システム500の全体にわたって分配されてよい。例えば、機能は、クラウド508の機能を抽出するプラットフォーム510を介するとともに、コンピューティングデバイス102において部分的に実施されてよい。図6は、ここで記載されるジェスチャ技術の実施形態を実施するよう図1、図2及び図5を参照して記載された如何なるタイプのコンピューティングデバイスとしても実施され得る例となるデバイス600の様々な構成要素を表す。デバイス600は、デバイスデータ604例えば、受信されたデータ、受信されているデータ、送信を予定されているデータ、データのデータパケット、等の有線及び/又は無線通信を可能にする通信デバイス602を有する。デバイスデータ604又は他のデバイスコンテンツは、デバイスのコンフィグレーション設定、デバイスに記憶されるメディアコンテンツ、及び/又はデバイスのユーザに関連する情報を含むことができる。デバイス600に記憶されるメディアコンテンツは、如何なるタイプのオーディオ、ビデオ、及び/又は画像データも含むことができる。デバイス600は、1又はそれ以上のデータ入力部606を有し、それらを介して、如何なるタイプのデータ、メディアコンテンツ、及び/又は入力も受信され得る。例えば、ユーザ選択可能な入力、メッセージ、音楽、テレビジョンメディアコンテンツ、録画されたビデオコンテンツ、並びにあらゆる他のタイプのオーディオ、ビデオ、及び/又は画像データが、如何なるコンテンツ及び/又はデータ源からも受信される。デバイス600はまた、シリアル及び/又はパラレルインターフェース、無線インターフェース、あらゆるタイプのネットワークインターフェース、モデム、並びにあらゆる他のタイプの通信インターフェースとしても実施され得る通信インターフェース608を有する。通信インターフェース608は、デバイス600と通信ネットワークとの間の接続及び/又は通信リンクを提供し、それによって、他の電子、コンピュータ、及び通信デバイスがデバイス600とデータをやり取りする。デバイス600は、デバイス600の動作を制御し且つここで記載される技術の実施形態を実施するよう様々なコンピュータ実行可能な又は読出可能な命令を処理する1又はそれ以上のプロセッサ610例えば、マイクロプロセッサ、コントローラ、等の何れかを有する。代替的に、又は追加的に、デバイス600は、全体として612で特定される処理及び制御回路に関連して実施されるハードウェア、ファームウェア、又は固定ロジック回路のいずれか1つ又は組み合わせにより実施され得る。図示されていないが、デバイス600は、デバイス内の様々な構成要素を結合するシステムバス又はデータ伝送システムを有することができる。システムバスは、様々なバスアーキテクチャの何れかを利用するメモリバス若しくはメモリコントローラ、ペリフェラルバス、ユニバーサルシリアルバス、及び/又はプロセッサ若しくはローカルバスのような、異なるバス構造の何れか1つ又は組み合わせを有することができる。デバイス600はまた、1又はそれ以上のメモリコンポーネントのようなコンピュータ可読媒体614を有する。その例は、ランダムアクセスメモリRAM、不揮発性メモリ例えば、読出専用メモリROM、フラッシュメモリ、EPROM、EEPROM、等のいずれか1つ又はそれ以上、及びディスク記憶デバイスを含む。ディスク記憶デバイスは、ハードディスクドライブ、書込可能及び/又は書換可能コンパクトディスクCD、あらゆるタイプのデジタルバーサタイルディスクDVD、等のような如何なるタイプの磁気若しくは光学記憶デバイスとしても実施されてよい。デバイス600はまた、大容量記憶媒体デバイス616を有することができる。コンピュータ可読媒体614は、様々なデバイスアプリケーション618並びにデバイス600の動作態様に関連するあらゆる他のタイプの情報及び/又はデータとともに、デバイスデータ604を記憶するよう、データ記憶メカニズムを提供する。例えば、オペレーティングシステム620は、コンピュータ可読媒体614によりコンピュータアプリケーションとして保持され、プロセッサ610で実行され得る。デバイスアプリケーション618は、デバイスマネージャ例えば、制御アプリケーション、ソフトウェアアプリケーション、信号処理及び制御モジュール、特定のデバイスに固有であるコード、特定のデバイスのためのハードウェア抽象レイヤ、等を有することができる。デバイスアプリケーション618はまた、ここで記載される技術の実施形態を実施するよう、如何なるシステムコンポーネント又はモジュールも有する。この例では、デバイスアプリケーション618は、ソフトウェアモジュール及び/又はコンピュータアプリケーションとして示されるインターフェースアプリケーション622及び入出力モジュール624を有する。入出力モジュール624は、タッチスクリーン、トラックパッド、カメラ、マイクロホン等のような、入力を捕捉するよう構成されるデバイスとのインターフェースを提供するために使用されるソフトウェアを代表する。代替的に、又は追加的に、インターフェースアプリケーション622及び入出力モジュール624は、ハードウェア、ソフトウェア、ファームウェア、又はそれらのいずれかの組み合わせとして実施され得る。更に、入出力モジュール624は、視覚入力及び音声入力を夫々捕捉する別個のデバイスのような複数の入力デバイスをサポートするよう構成されてよい。デバイス600はまた、オーディオシステム628へオーディオデータを提供し且つ/あるいは表示システム630へビデオデータを提供するオーディオ及び/又はビデオ入出力システム626を有する。オーディオシステム628及び/又は表示システム630は、オーディオ、ビデオ、及び画像データを処理し、表示し、及び/又は別なふうにレンダリングする如何なるデバイスも有することができる。ビデオ信号及びオーディオ信号は、デバイス600からオーディオデバイスへ及び/又は表示デバイスへRF無線周波数リンク、Sビデオリンク、コンポジットビデオリンク、コンポーネントビデオリンク、DVIデジタルビデオインターフェース、アナログオーディオ接続、又は他の同様の通信リンクを介して伝送され得る。実施形態において、オーディオシステム628及び/又は表示システム630は、デバイス600の外部構成要素として実施される。代替的に、オーディオシステム628及び/又は表示システム30は、例となるデバイス600の内蔵構成要素として実施される。[結び]本発明は、構造的な特徴及び/又は方法論的な動作に特有の言語において記載されてきたが、特許請求の範囲において定義される発明は、必ずしも、記載される具体的な特徴又は動作に制限されないことが理解されるべきである。むしろ、具体的な特徴及び動作は、請求される発明を実施する例となる形態として開示される。"