(57)【要約】      （修正有）【課題】オブジェクトグループの形状に対応するクリッピングチャネルを形成することにより、合成を行う。【解決方法】グラフィックオブジェクトグループ（Ｂ）を合成する方法（１０００）。方法（１０００）は、一時バッファ（Ｗ）内にオブジェクトグループ（Ｂ）を形成する。オブジェクトグループ（Ｂ）中の各オブジェクト（Ｃ、Ｄ）に対して、対応するクリッピングパスが提供される。クリッピングパスの結合により規定された合成クリッピングパス（Ｚ）が計算される。合成クリッピングパス（Ｚ）を介して、一時バッファ（Ｗ）からのオブジェクトグループを主バッファ（Ｖ）に合成する。【選択図】図１０
2005235205.tif 000002
【特許請求の範囲】
【請求項１】
特定の合成動作を使用して、主バッファ上にグラフィックオブジェクトグループを合成する方法であって、
一時バッファ内に前記オブジェクトグループを形成し、
前記オブジェクトグループ中の各オブジェクトに対して、対応するクリッピングパスを提供し、
前記クリッピングパスの結合により規定される合成クリッピングパスを計算し、
前記特定の合成動作を使用して、前記合成クリッピングパスを介して前記一時バッファからのオブジェクトグループを主バッファに合成する
ことを特徴とする方法。
【請求項２】
前記オブジェクトのうちの少なくとも１つは、１００％未満の不透明度を有することを特徴とする請求項１に記載の方法。
【請求項３】
前記オブジェクトグループは、１００％未満の不透明度を有することを特徴とする請求項１又は２に記載の方法。
【請求項４】
前記合成は、clear、A、A in B、A rin B、A out B、A ratop Bより成る群から選択された合成動作を使用して行われることを特徴とする請求項１乃至３の何れか１項に記載の方法。
【請求項５】
前記形成は、前記グループ中の前記各オブジェクトを、前記一時バッファに描画することを含むことを特徴とする請求項１乃至３の何れか１項に記載の方法。
【請求項６】
前記描画は、順次行われ、前記提供は、描画された前記各オブジェクトに対して行われることを特徴とする請求項５に記載の方法。
【請求項７】
前記合成の前に、前記主バッファは、更なるグラフィックオブジェクトのうちの少なくとも１つを描画することを特徴とする請求項１乃至３の何れか１項に記載の方法。
【請求項８】
前記クリッピングパスの前記提供は、形状及びテキストのうちの１つを規定する前記オブジェクトを規定しているパスを使用して行われることを特徴とする請求項１乃至３の何れか１項に記載の方法。
【請求項９】
前記クリッピングパスの前記提供は、前記ストロークを行ったオブジェクトに対して、ストロークを行ったパスをクリッピングパスに変換することにより行われることを特徴とする請求項１乃至３の何れか１項に記載の方法。
【請求項１０】
前記クリッピングパスの前記提供は、ビットマップ画像オブジェクトに対して、ビットマップ画像オブジェクトのエッジ、又は範囲を使用して行われることを特徴とする請求項１乃至３の何れか１項に記載の方法。
【請求項１１】
前記オブジェクトのうちの１つが、効果を表す領域を有する効果オブジェクトである場合、前記クリッピングパスの前記提供は、前記領域の範囲をクリッピングパスに変換することを含むことを特徴とする請求項１乃至３の何れか１項に記載の方法。
【請求項１２】
前記合成では、
前記特定の合成動作と相補する合成動作を使用して、前記一時バッファ内の前記オブジェクトグループ上に前記主バッファを合成し、
前記合成クリッピングパスを介して、前記主バッファ上に前記一時バッファをコピーすることを特徴とする請求項１に記載の方法。
【請求項１３】
前記合成では、
前記主バッファをコピーし、
前記特定の合成動作を使用して、前記一時バッファからの前記オブジェクトグループを前記主バッファのコピーに合成し、
前記合成クリッピングパスを介して、前記主バッファのコピーを前記主バッファ上にコピーすることを特徴とする請求項１に記載の方法。
【請求項１４】
前記オブジェクトは不透明であり、前記合成では、前記特定の合成動作から導出された第２の合成動作を使用して、前記一時バッファからの前記オブジェクトグループを前記主バッファに合成することを特徴とする請求項１に記載の方法。
【請求項１５】
グラフィックオブジェクトのグループを合成する装置であって、
一時バッファ内に前記オブジェクトグループを形成するオブジェクト形成手段と、
前記オブジェクトグループ中の各オブジェクトに対して、対応するクリッピングパスを提供するクリッピングパス提供手段と、
前記クリッピングパスの結合により規定された合成クリッピングパスを計算する計算手段と、
前記合成クリッピングパスを介して、前記一時バッファからの前記オブジェクトグループを主バッファに合成する合成手段と
を備えることを特徴とする装置。
【請求項１６】
グラフィックオブジェクトグループを合成する手順を、コンピュータに実行させるように構成されたプログラムが記録されたコンピュータ可読媒体であって、前記方法は、
一時バッファ内に前記オブジェクトグループを形成するためのコードと、
前記オブジェクトグループ中の各オブジェクトに対して、対応するクリッピングパスを提供するためのコードと、
前記クリッピングパスの結合により規定された合成クリッピングパスを計算するためのコードと、
前記合成クリッピングパスを介して、前記一時バッファからの前記オブジェクトグループを主バッファに合成するためのコードと
を備えることを特徴とするコンピュータ可読媒体。
【請求項１７】
グラフィックオブジェクトグループを合成するためのコンピュータプログラムであって、
一時バッファ内に前記オブジェクトグループを形成するためのコードと、
前記オブジェクトグループ中の各オブジェクトに対して、対応するクリッピングパスを提供するためのコードと、
前記クリッピングパスの結合により規定された合成クリッピングパスを計算するためのコードと、
前記合成クリッピングパスを介して、前記一時バッファからの前記オブジェクトグループを主バッファに合成するためのコードと
を備えることを特徴とするコンピュータプログラム。
【請求項１８】
特定の合成動作を使用して、主バッファ上にグラフィックオブジェクトグループを合成する方法であって、
一時バッファ内に前記オブジェクトグループを形成し、
前記オブジェクトグループ中の各オブジェクトに対して、対応するクリッピングパスを提供し、
前記クリッピングパスの結合により規定された合成クリッピングパスを計算し、
前記特定の合成動作と相補する合成動作を使用して、前記一時バッファ内の前記オブジェクトグループ上に前記主バッファを合成し、
前記合成クリッピングパスを介して、前記主バッファに前記一時バッファをコピーすることを特徴とする方法。
【請求項１９】
不透明なグラフィックオブジェクトの境界の外側に固定の画素値を保持するように、特定の合成動作を使用して、第２の不透明なグラフィックオブジェクト上に前記不透明なグラフィックオブジェクトを合成する方法であって、
少なくとも、前記特定の合成動作から導出された第２の合成動作を使用して、前記第２のグラフィックオブジェクト上に前記不透明なグラフィックオブジェクトを合成することを特徴とする方法。
【請求項２０】
前記不透明なグラフィックオブジェクトは、複数の更なる不透明なグラフィックオブジェクトを有するグループであることを特徴とする請求項１９に記載の方法。
【請求項２１】
前記特定の合成動作が「clear」動作である場合、前記第２の合成動作は、「rout」動作であることを特徴とする請求項１９に記載の方法。
【請求項２２】
前記特定の合成動作が「src」動作である場合、前記第２の合成動作は、「over」動作であることを特徴とする請求項１９に記載の方法。
【請求項２３】
前記特定の合成動作が「in」動作である場合、前記第２の合成動作は、「atop」動作であることを特徴とする請求項１９に記載の方法。
【請求項２４】
前記特定の合成動作が「rin」動作である場合、前記第２の合成動作は、「dst」動作であることを特徴とする請求項１９に記載の方法。
【請求項２５】
前記特定の合成動作が「out」動作である場合、前記第２の合成動作は、「xor」動作であることを特徴とする請求項１９に記載の方法。
【請求項２６】
前記特定の合成動作が「ratop」動作である場合、前記第２の合成動作は、「rover」動作であることを特徴とする請求項１９に記載の方法。
【請求項２７】
特定の合成動作を使用して、主バッファ上にグラフィックオブジェクトグループを合成する装置であって、
一時バッファ内に前記オブジェクトグループを形成するオブジェクト形成手段と、
前記オブジェクトグループ中の各オブジェクトに対して、対応するクリッピングパスを提供するクリッピングパス提供手段と、
前記クリッピングパスの結合により規定された合成クリッピングパスを計算する計算手段と、
前記特定の合成動作と相補する合成動作を使用して、前記一時バッファ内の前記オブジェクトグループ上に前記主バッファを合成する合成手段と、
前記合成クリッピングパスを介して、前記主バッファに前記一時バッファをコピーするコピー手段と
を備えることを特徴とする装置。
【請求項２８】
特定の合成動作を使用して、主バッファ上にグラフィックオブジェクトグループを合成する手順を、コンピュータに実行させるように構成されたプログラムが記録されたコンピュータ可読媒体であって、前記プログラムは、
一時バッファ内に前記オブジェクトグループを形成するためのコードと、
前記オブジェクトグループ中の各オブジェクトに対して、対応するクリッピングパスを提供するためのコードと、
前記クリッピングパスの結合により規定された合成クリッピングパスを計算するためのコードと、
前記特定の合成動作と相補する合成動作を使用して、前記一時バッファ内の前記オブジェクトグループ上に前記主バッファを合成するためのコードと、
前記合成クリッピングパスを介して、前記主バッファ上に前記一時バッファをコピーするためのコードと
を備えることを特徴とするコンピュータ可読媒体。
【請求項２９】
特定の合成動作を使用して、主バッファ上にグラフィックオブジェクトグループを合成するためのコンピュータプログラムであって、
一時バッファ内に前記オブジェクトグループを形成するためのコードと、
前記オブジェクトグループ中の各オブジェクトに対して、対応するクリッピングパスを提供するためのコードと、
前記クリッピングパスの結合により規定された合成クリッピングパスを計算するためのコードと、
前記特定の合成動作と相補する合成動作を使用して、前記一時バッファ内の前記オブジェクトグループ上に前記主バッファを合成するためのコードと、
前記合成クリッピングパスを介して、前記主バッファに前記一時バッファをコピーするためのコードと
を備えることを特徴とするコンピュータプログラム。
【請求項３０】
特定の合成動作を使用して、クリッピングパスを介して第２のグラフィックオブジェクト上にグラフィックオブジェクトを合成する方法であって、少なくとも、
前記特定の合成動作と相補する第２の合成動作を使用して、前記グラフィックオブジェクトを含むバッファ上に前記第２のグラフィックオブジェクトを合成し、
前記クリッピングパスを介して、前記第２のグラフィックオブジェクトを含む第２のバッファ上に前記バッファの内容をコピーすることを特徴とする方法。
【請求項３１】
特定の合成動作を使用して、クリッピングパスを介して第２のグラフィックオブジェクト上にグラフィックオブジェクトを合成する装置であって、
前記特定の合成動作と相補する第２の合成動作を使用して、前記グラフィックオブジェクトを含むバッファ上に前記第２のグラフィックオブジェクトを合成する合成手段と、
前記クリッピングパスを介して、前記第２のグラフィックオブジェクトを含む第２のバッファ上に前記バッファの内容をコピーするコピー手段と
を備えることを特徴とする装置。
【請求項３２】
特定の合成動作を使用して、クリッピングパスを介して第２のグラフィックオブジェクト上にグラフィックオブジェクトを合成する手順を、コンピュータに実行させるように構成されたプログラムが記録されたコンピュータ可読媒体であって、前記プログラムは、
前記特定の合成動作と相補する第２の合成動作を使用して、前記グラフィックオブジェクトを含むバッファ上に前記第２のグラフィックオブジェクトを合成するためのコードと、
前記クリッピングパスを介して、前記第２のグラフィックオブジェクトを含む第２のバッファ上に前記バッファの内容をコピーするためのコードと
を備えることを特徴とするコンピュータ可読媒体。
【請求項３３】
特定の合成動作を使用して、クリッピングパスを介して第２のグラフィックオブジェクト上にグラフィックオブジェクトを合成するためのコンピュータプログラムであって、
前記特定の合成動作と相補する第２の合成動作を使用して、前記グラフィックオブジェクトを含むバッファ上に前記第２のグラフィックオブジェクトを合成するためのコードと、
前記クリッピングパスを介して、前記第２のグラフィックオブジェクトを含む第２のバッファ上に前記バッファの内容をコピーするためのコードと
を備えることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般には、画像作成に関し、特に、グラフィックオブジェクトの重複グループの描画に関する。
【背景技術】
【０００２】
グラフィックオブジェクトとは、線、曲線、テキスト、色等、画像全体を構成するある特徴を示す表現である。これは、一般にベクトルグラフィックスとして知られている。画像は、単一のオブジェクトで形成されても、定義された相互作用を有する複数のオブジェクトの組み合わせで形成されてもよい。通常はメモリ内又はページ上にグラフィックオブジェクトを、順次描画することにより、このグラフィックオブジェクトをビットマップ画像に変換し、ビットマップ画像を形成する。
【０００３】
１つの出力ビットマップのために組み合わせ可能なオブジェクトの種類には、以下のものが含まれる。
【０００４】
−形状（線、曲線、フィル及びストロークの色等）
−テキスト
−画像
−効果（ぼかし又は照明効果等）
上記オブジェクトのうち、２つ以上のオブジェクトをグループ化又は組み合わせることが一般的である。グループ化後は、オブジェクト群を単一の供給元オブジェクトとして扱う。グループ化及び組み合わせは、以下の理由により、行われていた。
【０００５】
−オブジェクトグループに効果を適用するため（例えば、グループ内の全ての項目をぼかすか、又はグループ全体を一部透明にする）。
【０００６】
−オブジェクトグループを再利用するため。
【０００７】
−オブジェクトをグループとして変換するため（例えば、グループ内のオブジェクトを単一のオブジェクトとしてアニメ化し、ページ上を共に移動させる）。
【０００８】
オブジェクトを描画する場合、メモリ内のページへの描画、又は印刷可能なページへの直接の描画のいずれの場合も、そのページ上に逐次描画することが最も一般的である。一部透明なオブジェクトが別のオブジェクト上にある場合、最終的な画素の色結果を得るために両方のオブジェクトの色情報を組み合わせる。この組み合わせは、合成として知られており、多様な効果の実現のために用いることができる。合成効果の一例は、色ガラスを通して見た画像を得ることである。
【０００９】
上述のように、オブジェクトを互いの上に置くことが一般的であるが、他の数学的方法を用いたオブジェクトの組み合わせが有用な場合がある。例えば、１つのオブジェクトを別のオブジェクトの影として用いたり、別のオブジェクトと交差させることが有用な場合もある。オブジェクトの組み合わせには２つの技術が一般に用いられる。第１の技術は、研究論文である「Compositing Digital Images」（T.Porter、T.Duff、Computer Graphics、第１８巻、第３号、１９８４年７月、２５３〜２５９ページ）に掲載されている。この論文では、現在「Ｐｏｒｔｅｒ＆Ｄｕｆｆ合成」として一般に知られる技術を記載している。別の合成技術は、Adobe systems社発行のPortable Document Format(PDF)の仕様書記載の「Adobe（登録商標） Blending Modes」と呼ばれるものである。
【００１０】
多くの場合、各オブジェクトが合成画像を形成するためにページ上に配置される際、そのオブジェクトは合成画像に追加される。Ｐｏｒｔｅｒ＆Ｄｕｆｆ「in」動作のようないくつかの動作では、ページ上に配置された新しいオブジェクトはページ上の既存のオブジェクトと交差される。その結果、最終画像データが、新しいオブジェクトを描画する前の画像データより減少することがある。その後、ある動作を用いてオブジェクトを画像に合成すると、その画像からデータが削除される。
【００１１】
描画動作において、画像は、多くの場合描画されたオブジェクトの範囲内でのみ影響を受ける。例えば、このような描画動作の１つを用いて背景上に円を描画する場合、円の外側は、全く変更されない。Ｐｏｒｔｅｒ＆Ｄｕｆｆ「in」動作のようないくつかの動作では、円等の範囲外の背景はクリアされる。オブジェクト内においてはＰｏｒｔｅｒ＆Ｄｕｆｆ「in」動作の実行が望ましい一方で、描画されたオブジェクトの範囲外の背景がクリアされるという余分な副作用は、望ましくない場合がある。
【００１２】
Sun Microsystems（登録商標）社製のJava（登録商標）2Dのようないくつかの描画システムでは、この副作用を防止できる。単一のオブジェクトを背景上に合成する場合、Java（登録商標）2Dのようなシステムでは、どの画素がオブジェクトの範囲内か否かの判定により、どの出力画像画素をクリアするべきかあるいはか残すかを判定できる。Microsoft（登録商標） Windows（登録商標） Graphics Device Interface (GDI)のようないくつかの描画システムにおいても、規定のクリッピングパスを介して（Ｐｏｒｔｅｒ＆Ｄｕｆｆ「over」動作と等価の動作を用いて）背景上のオブジェクトを合成可能とすることで、この副作用を防止する。しかしながら、Microsoft（登録商標） Windows（登録商標） GDIのような、従来の多くの描画システムは、残りのＰｏｒｔｅｒ＆Ｄｕｆｆ合成動作をサポートしていないか、又は所定のクリッピングパスと連携してこの動作を行わない。
【００１３】
更に、多数のオブジェクトを共に組み合わせてグループ化する場合、従来の多くの描画システムは、組み合わせたオブジェクトの範囲のビットマップ表現（すなわち、「形状チャネル」）を格納せずに、どのエリア（すなわち、これらの画素）がオブジェクトグループの範囲内か否かを判定することは困難である。
【００１４】
従って、グラフィックオブジェクト合成方法の改善の必要性は明らかである。
【発明の開示】
【発明が解決しようとする課題】
【００１５】
本発明の目的は、既存の構成の１つ以上の欠点をほぼ解決する、あるいは、少なくとも改善することである。
【課題を解決するための手段】
【００１６】
本発明は、オブジェクトグループの形状に対応するクリッピングチャネルを形成することにより、上述の問題の解決を図る構成を開示する。
【００１７】
一構成例において、合成動作が変更されることにより、主バッファの代わりに既存の一時バッファに対して、新規の合成動作が行われる。このような構成により、合成結果バッファの必要性を排除し、メモリの使用とコピー動作を削減する。
【００１８】
１つの面によれば、本発明は、特定の合成動作を使用して、主バッファ上にグラフィックオブジェクトグループを合成する方法であって、
一時バッファ内に前記オブジェクトグループを形成し、
前記オブジェクトグループ中の各オブジェクトに対して、対応するクリッピングパスを提供し、
前記クリッピングパスの結合により規定された合成クリッピングパスを計算し、
前記特定の合成動作を使用して、前記合成クリッピングパスを介して前記一時バッファからの前記オブジェクトグループを主バッファに合成することを特徴とする方法を提供する。
【００１９】
別の面によれば、本発明は、グラフィックオブジェクトを合成する装置であって、
一時バッファ内に前記オブジェクトグループを形成するオブジェクト形成手段と、
前記オブジェクトグループ中の各オブジェクトに対して、対応するクリッピングパスを提供するクリッピングパス提供手段と、
前記クリッピングパスの結合により規定された合成クリッピングパスを計算する計算手段と、
前記合成クリッピングパスを介して、前記一時バッファからの前記オブジェクトグループを主バッファに合成する合成手段とを備えることを特徴とする装置を提供する。
【００２０】
更に別の面によれば、本発明は、グラフィックオブジェクトグループを合成する手順を、コンピュータに実行させるように構成されたプログラムが記録されたコンピュータ可読媒体であって、前記方法は、
一時バッファ内に前記オブジェクトグループを形成するためのコードと、
前記オブジェクトグループ中の各オブジェクトに対して、対応するクリッピングパスを提供するためのコードと、
前記クリッピングパスの結合により規定された合成クリッピングパスを計算するためのコードと、
前記合成クリッピングパスを介して、前記一時バッファからの前記オブジェクトグループを主バッファに合成するためのコードとを備えることを特徴とするコンピュータ可読媒体を提供する。
【００２１】
更に別の面によれば、本発明は、グラフィックオブジェクトグループを合成するためのコンピュータプログラムであって、
一時バッファ内に前記オブジェクトグループを形成するためのコードと、
前記オブジェクトグループ中の各オブジェクトに対して、対応するクリッピングパスを提供するためのコードと、
前記クリッピングパスの結合により規定された合成クリッピングパスを計算するためのコードと、
前記合成クリッピングパスを介して、前記一時バッファからの前記オブジェクトグループを主バッファに合成するためのコードとを備えることを特徴とするプログラムを提供する。
【００２２】
更に別の面によれば、本発明は、特定の合成動作を使用して、主バッファ上にグラフィックオブジェクトグループを合成する方法であって、
一時バッファ内に前記オブジェクトグループを形成し、
前記オブジェクトグループ中の各オブジェクトに対して、対応するクリッピングパスを提供し、
前記クリッピングパスの結合により規定された合成クリッピングパスを計算し、
前記特定の合成動作と相補する合成動作を使用して、前記一時バッファ内の前記オブジェクトグループ上に前記主バッファを合成し、
前記合成クリッピングパスを介して、前記主バッファに前記一時バッファをコピーすることを特徴とする方法を提供する。
【００２３】
更に別の面によれば、本発明は、不透明なグラフィックオブジェクトの境界の外側に固定の画素値を保持するように、特定の合成動作を使用して、第２の不透明なグラフィックオブジェクト上に前記不透明なグラフィックオブジェクトを合成する方法であって、少なくとも、前記特定の合成動作から導出された第２の合成動作を使用して、前記第２のグラフィックオブジェクト上に前記不透明なグラフィックオブジェクトを合成することを特徴とする方法を提供する。
【００２４】
更に別の面によれば、本発明は、特定の合成動作を使用して、主バッファ上にグラフィックオブジェクトグループを合成する装置であって、
一時バッファ内に前記オブジェクトグループを形成するオブジェクト形成手段と、
前記オブジェクトグループ中の各オブジェクトに対して、対応するクリッピングパスを提供するクリッピングパス提供手段と、
前記クリッピングパスの結合により規定された合成クリッピングパスを計算する計算手段と、
前記特定の合成動作と相補する合成動作を使用して、前記一時バッファ内の前記オブジェクトグループ上に前記主バッファを合成する合成手段と、
前記合成クリッピングパスを介して、前記主バッファに前記一時バッファをコピーするコピー手段とを備えることを特徴とする装置を提供する。
【００２５】
更に別の面によれば、本発明は、特定の合成動作を使用して、主バッファ上にグラフィックオブジェクトグループを合成する手順を、コンピュータに実行させるように構成されたプログラムが記録されたコンピュータ可読媒体であって、前記プログラムは、
一時バッファ内に前記オブジェクトグループを形成するためのコードと、
前記オブジェクトグループ中の各オブジェクトに対して、対応するクリッピングパスを提供するためのコードと、
前記クリッピングパスの結合により規定された合成クリッピングパスを計算するためのコードと、
前記特定の合成動作と相補する合成動作を使用して、前記一時バッファ内の前記オブジェクトグループ上に前記主バッファを合成するためのコードと、
前記合成クリッピングパスを介して、前記主バッファ上に前記一時バッファをコピーするためのコードとを備えることを特徴とするコンピュータ可読媒体を提供する。
【００２６】
更に別の面によれば、本発明は、特定の合成動作を使用して、主バッファ上にグラフィックオブジェクトグループを合成するためのコンピュータプログラムであって、
一時バッファ内に前記オブジェクトグループを形成するためのコードと、
前記オブジェクトグループ中の各オブジェクトに対して、対応するクリッピングパスを提供するためのコードと、
前記クリッピングパスの結合により規定された合成クリッピングパスを計算するためのコードと、
前記特定の合成動作と相補する合成動作を使用して、前記一時バッファ内の前記オブジェクトグループ上に前記主バッファを合成するためのコードと、
前記合成クリッピングパスを介して、前記主バッファに前記一時バッファをコピーするためのコードとを備えることを特徴とするコンピュータプログラムを提供する。
【００２７】
更に別の面によれば、本発明は、特定の合成動作を使用して、クリッピングパスを介して第２のグラフィックオブジェクト上にグラフィックオブジェクトを合成する方法であって、少なくとも、
前記特定の合成動作と相補する第２の合成動作を使用して、前記グラフィックオブジェクトを含むバッファ上に前記第２のグラフィックオブジェクトを合成し、
前記クリッピングパスを介して、前記第２のグラフィックオブジェクトを含む第２のバッファ上に前記バッファの内容をコピーすることを特徴とする方法を提供する。
【００２８】
更に別の面によれば、本発明は、特定の合成動作を使用して、クリッピングパスを介して第２のグラフィックオブジェクト上にグラフィックオブジェクトを合成する装置であって、
前記特定の合成動作と相補する第２の合成動作を使用して、前記グラフィックオブジェクトを含むバッファ上に前記第２のグラフィックオブジェクトを合成する合成手段と、
前記クリッピングパスを介して、前記第２のグラフィックオブジェクトを含む第２のバッファ上に前記バッファの内容をコピーするコピー手段とを備えることを特徴とする装置を提供する。
【００２９】
更に別の面によれば、本発明は、特定の合成動作を使用して、クリッピングパスを介して第２のグラフィックオブジェクト上にグラフィックオブジェクトを合成する手順を、コンピュータに実行させるように構成されたプログラムが記録されたコンピュータ可読媒体であって、前記プログラムは、
前記特定の合成動作と相補する第２の合成動作を使用して、前記グラフィックオブジェクトを含むバッファ上に前記第２のグラフィックオブジェクトを合成するためのコードと、
前記クリッピングパスを介して、前記第２のグラフィックオブジェクトを含む第２のバッファ上に前記バッファの内容をコピーするためのコードとを備えることを特徴とするコンピュータ可読媒体を提供する。
【００３０】
更に別の面によれば、本発明は、特定の合成動作を使用して、クリッピングパスを介して第２のグラフィックオブジェクト上にグラフィックオブジェクトを合成するためのコンピュータプログラムであって、
前記特定の合成動作と相補する第２の合成動作を使用して、前記グラフィックオブジェクトを含むバッファ上に前記第２のグラフィックオブジェクトを合成するためのコードと、
前記クリッピングパスを介して、前記第２のグラフィックオブジェクトを含む第２のバッファ上に前記バッファの内容をコピーするためのコードとを備えることを特徴とするコンピュータプログラムを提供する。
【００３１】
本発明の他の面も開示される。
【発明を実施するための最良の形態】
【００３２】
１つ以上の添付の図面において同一符号で示すステップ及び／又は特徴は、別途指示されない限り、同一の機能又は動作を表す。
【００３３】
尚、「背景技術」及び従来技術の構成に関連する以下の記載は、それぞれ出版物及び／又は使用法を通して公知の知見を構成する、文書又は装置の記載に関する。当該技術に共通の公知の知見の一部を何らかの形態で構成する文書又は装置は、本発明の発明者又は本特許出願人による表現と解釈するべきではない。
【００３４】
Ｐｏｒｔｅｒ＆Ｄｕｆｆ「ｉｎ」動作のようないくつかの合成動作では、背景（すなわち、描画供給元オブジェクトの境界の外側のエリア）はクリアされる。このような効果は、望ましくない場合がある。この効果の防止方法の１つは、供給元オブジェクトの境界内への合成動作のクリップ方法である。これは「クリップ・トゥ・セルフ」合成と呼ばれる。全てのＰｏｒｔｅｒ＆Ｄｕｆｆ動作をサポートする必要がある場合、上述されたMicrosoft Windows（登録商標） GDIのような従来の多くの描画システムは、使用するバッファが３つ（すなわち、「供給元」バッファ、「背景」バッファ、「合成結果」バッファ）未満の場合、「クリップ・トゥ・セルフ」合成を実行できない。このような従来の描画システムによる供給元オブジェクトの描画には、合成結果バッファが背景バッファに初期化される。次に、対応するＰｏｒｔｅｒ＆Ｄｕｆｆ合成動作が、供給元バッファの内容（例えばオブジェクト）及び合成結果バッファの内容に実行される。合成結果バッファは、クリップパスを介して「src」動作により背景バッファにコピーされる。このため、供給元オブジェクトを描画するには、合成結果バッファのための追加メモリが必要となる。更に、背景バッファを合成結果バッファへコピーするコピー動作が、合成動作ごとに必要である。
【００３５】
以下、オブジェクト合成方法１０００（図１０参照）を、図１から図１４を参照して説明する。方法１０００は、特定の合成動作を用いる背景と共に、単一のオブジェクト合成でも、オブジェクトグループの合成に用いてもよい。方法１０００は、合成結果バッファを必要性を排除し、且つメモリ使用量及びコピー動作を減少させる。
【００３６】
方法１０００は、図１１に示されるような汎用コンピュータシステム１１００を用いて実行されてもよい。図１１において、図１から図１０に示されるプロセスは、コンピュータ１１００の内部で実行するアプリケーションプログラムのようなソフトウェアとして実現されてもよい。特に、方法１０００のステップは、そのソフトウェアにおいて、コンピュータにより実行される指示に従って行われてもよい。これらの指示は、１つ以上の特定のタスクを実行するための１つ以上のコードモジュールとして構成されてもよい。ソフトウェアは２つの個別の区分に分割されてもよい。そのソフトウェアにおいて、第１の区分は合成方法を実行し、第２の区分は第１の区分とユーザとの間のユーザインタフェースを管理する。ソフトウェアは、例えば、以下で説明される記憶装置等を含むコンピュータ可読媒体に格納されてもよい。ソフトウェアは、コンピュータ可読媒体からコンピュータへ読み込まれ、その後コンピュータにより実行されてもよい。このようなソフトウェア又はそれに記録されたコンピュータプログラムを有するコンピュータ可読媒体は、コンピュータプログラム製品である。コンピュータにおけるこのコンピュータプログラム製品の使用により、オブジェクト合成に有用な装置に好ましい効果をもたらす。
【００３７】
コンピュータシステム１１００は、コンピュータモジュール１１０１と、キーボード１１０２及びマウス１１０３等の入力装置と、プリンタ１１１５、表示装置１１１４及びスピーカ１１１７を含む出力装置とにより構成される。変復調装置（モデム）トランシーバ装置１１１６は、例えば電話線１１２１又は他の機能媒体を介して接続可能な通信ネットワーク１１２０と、コンピュータモジュール１１０１との通信を行うコンピュータモジュール１１０１によって用いられる。モデム１１１６は、インターネット、ローカルエリアネットワーク（ＬＡＮ）やワイドエリアネットワーク（ＷＡＮ）等他のネットワークシステムへのアクセスに用いられてもよい。また、いくつかの実現例において、モデム１１１６は、コンピュータモジュール１１０１内に組み込まれてもよい。
【００３８】
コンピュータモジュール１１０１は、通常、少なくとも１つのプロセッサユニット１１０５と、例えば、半導体ランダムアクセスメモリ（ＲＡＭ）及び読み出し専用メモリ（ＲＯＭ）から成るメモリユニット１１０６とを具備する。また、モジュール１１０１は、ビデオ表示装置１１１４及びスピーカ１１１７に接続するオーディオ−ビデオインタフェース１１０７を有する多数の入出力（Ｉ／Ｏ）インタフェースと、キーボード１１０２及びマウス１１０３及び任意のジョイスティック（不図示）用のＩ／Ｏインタフェース１１１３と、モデム１１１６及びプリンタ１１１５用のインタフェース１１０８とを具備する。いくつかの実現例において、モデム１１１６を、インタフェース１１０８等のコンピュータモジュール１１０１に内蔵してもよい。記憶装置１１０９は、通常、ハードディスクドライブ１１１０とフロッピディスクドライブ１１１１とを具備する。磁気テープドライブ（不図示）が用いられてもよい。ＣＤ−ＲＯＭドライブ１１１２は、通常、データの不揮発性供給元として取り付けられる。コンピュータモジュール１１０１の構成要素１１０５から構成要素１１１３は、当業者に知られるように、通常、相互接続バス１１０４を介して、コンピュータシステム１１００が動作する従来の方法による態様で通信を行う。上述の構成が実現されるコンピュータの例として、ＩＢＭ−ＰＣ及び互換機、Sun Sparcstations又はそれから派生した類似のコンピュータシステムが挙げられる。
【００３９】
アプリケーションプログラムは、通常、ハードディスクドライブ１１１０に内蔵され、ドライブ１１１０の作動時にプロセッサ１１０５により読み出され、制御される。このプログラム及びネットワーク１１２０から取り込まれた任意のデータの中間格納には、半導体メモリ１１０６を用いることにより遂行されてもよい。これは、ハードディスクドライブ１１１０との協働により行われてもよい。いくつかの例において、アプリケーションプログラムは、ＣＤ−ＲＯＭ又はフロッピディスク上で符号化され、且つ対応するドライブ１１１２又は１１１１を介して読み取られた状態でユーザに提供されてもよい。あるいは、アプリケーションプログラムは、モデム装置１１１６を介してネットワーク１１２０からユーザに読み取られてもよい。更に、ソフトウェアは、複数の他のコンピュータ可読媒体からコンピュータシステム１１００に読み込み可能でもある。ここで用いられる「コンピュータ可読媒体」とは、実行及び／又は処理のための指示及び／又はデータのコンピュータシステム１１００への提供に関わる任意の記憶又は伝送媒体である。記憶媒体の例には、フロッピディスク、磁気テープ、ＣＤ−ＲＯＭ、ハードディスクドライブ、ＲＯＭ又は集積回路、光磁気ディスク、ＰＣＭＣＩＡカードのようなコンピュータ可読カード等が含まれる。これらの装置は、コンピュータモジュール１１０１の内部又は外部のいずれに設けられてもよい。伝送媒体の例は、無線伝送チャネル、赤外線伝送チャネル並びに別のコンピュータ又はネットワーク装置とのネットワーク接続、及びウェブサイト上等に記録されたＥメール伝送及び情報を含むインターネット又はイントラネットを含む。
【００４０】
方法１０００は、上記アプリケーションプログラムとして実現され、通常、デスクトップパブリッシングシステム等のより大規模なアプリケーションの構成要素、若しくはサブプログラムを構成する。以下に、方法１０００の例を説明する。この例において、方法１０００は、図１に示す初期オブジェクトＡ及び図５に示すオブジェクトグループＢを含む３つのオブジェクトに対し動作する。オブジェクトグループＢは、第１のグループオブジェクトＣと第２のグループオブジェクトＤにより構成される。
【００４１】
まず、ステップ１００２において、図１に示すように、初期オブジェクトＡが主画像バッファＶの背景上に描かれる（すなわち、描画される）。ステップ１００２は、バッファＶが空でもよく、あるいは前の合成結果又は他の動作結果を含んでもよいことを例証している。バッファＶは、メモリ１１０６に形成されてもよいが、容量が制限される場合は、部分的又は全体的にＨＤＤ１１１０に形成されてもよい。所定の言語によってオブジェクトＡの記述を解釈し、且つバッファＶに画素色値を出力するプロセッサ１１０５によって描画される。背景は、画像要素を含んでも含まなくてもよい。この例では、オブジェクトＡ、オブジェクトＣ及びオブジェクトＤは、図示の簡略化のためにそれぞれ矩形とする。しかしながら、テキストや画像と共に、どのような規則的形状、任意の形状を用いても良い。
【００４２】
ステップ１００４において、図２に示すように、図５に示すオブジェクトグループＢが描画される一時バッファＷが生成される。バッファＷは、バッファＶと同様の形態で形成される。続くステップ１００６において、空の「合成クリッピングパス」が生成される。この合成クリッピングパスは、次の動作後に合成グループクリッピングパスになる。合成クリッピングパス等のクリッピングパスは、エッジの配列として表される。エッジは、開始座標（start_x,start_y)及び１つ以上のセグメント記述によって記述される。各セグメント記述は、エッジにおける次のセグメントを示すメモリアドレスと、エッジを終了させるための終了セグメントを含む。エッジのセグメントは、各セグメントの開始点がその前のセグメントの終了点と一致するという意味で互いに隣接している。直線のセグメントは、セグメントの開始点と終了点との間の水平及び垂直の差（Dx,Dy)によって記述される。エッジの配列として表された合成クリッピングパスは、メモリ１１０６及び／又はＨＤＤ１１１０に格納される。クリッピングパスは、描画動作又は合成動作を実行する場合に、変更された画素を判定するのに用いられる。
【００４３】
次のステップ１００８において、図３に示すように、第１のグループオブジェクトＣがバッファＷに描画される。
【００４４】
図４に示すように、ステップ１０１０において、オブジェクトＣの範囲に対応するクリッピングパスＸが生成される。クリッピングパスＸは、単純なアウトラインのパスであることが好ましい。すなわち、クリッピングパスＸは、一様な向き及びノンゼロワインディング規則を有する単一の連続パスであることが好ましい。図４に示すパスＸは、この種類のパスである。クリッピングパスＸは、メモリ１１０６に格納される。
【００４５】
次に、ステップ１０１２において、ステップ１０１０で形成されたクリッピングパスとステップ１００６の合成クリッピングパス（最初は空）との結合を行う。ステップ１０１０で形成されたクリッピングパスとステップ１００６の合成クリッピングパスとの結合は、各パスを記述するエッジの配列を連結することで決定される。ステップ１０１２の結合の結果は、メモリ１１０６に合成クリッピングパスとして格納される。
【００４６】
次に、ステップ１０１４において、処理すべきグループオブジェクトがまだ存在するか否かを検査し判定する。オブジェクトが存在する場合、ステップ１００８に戻る。この例では、図５に示すように、２度目に実行するステップ１００８において、グループオブジェクトＤが、一時バッファＷに描画される。ステップ１０１０において、グループオブジェクトＤの範囲に対応するクリッピングパスＹが、メモリ１１０６に生成される。これを図６に示す。
【００４７】
ステップ１０１２において、クリッピングパスＸとクリッピングパスＹとの結合を行う。この例では、図７に示すように、オブジェクトＣとオブジェクトＤの範囲を結合したアウトラインを示すクリッピングパスＺを、メモリ１１０６に規定する。クリッピングパスＺは、合成クリッピングパスとして、メモリ１１０６に格納される。
【００４８】
ステップ１０１４において、グループオブジェクトの存在を再び検査する。この例では、グループオブジェクトが存在しないので、ステップ１０１５に進む。
【００４９】
別の構成において、ステップ１０１０とステップ１０１２は、ステップ１００８に先行してもよいので、ステップ１０１４からステップ１０１０へ戻り、続いてステップ１０１２、ステップ１００８を実行し、次にステップ１０１４を再び実行してもよい。
【００５０】
以下に説明するように、続くステップ１０１５とステップ１０１６において、主バッファＶ及び一時バッファＷ上でクリップ・トゥ・セルフ合成を実行する。従来、そのようなクリップ・トゥ・セルフ合成を実行するために、Ｐｏｒｔｅｒ＆Ｄｕｆｆ供給元オペランド（例えば、一時バッファＷの１つ以上のオブジェクト）は、特定のＰｏｒｔｅｒ＆Ｄｕｆｆ動作を用いて、メモリ１１０６に格納された合成クリッピングパスを介して、Ｐｏｒｔｅｒ＆Ｄｕｆｆ供給先オペランド（例えば、主バッファＶの背景）と合成される。しかしながら、前述したように、Windows（登録商標） GDI等の従来の描画システムは、個別の合成過程及びクリッピング過程をサポートするために、別のバッファ（すなわち、合成結果バッファ）を必要とする。
【００５１】
以下により詳細に説明するように、方法１０００において、ステップ１０１５で合成されるべきＰｏｒｔｅｒ＆Ｄｕｆｆオペランドを逆にして、相補するＰｏｒｔｅｒ＆Ｄｕｆｆ動作を選択し、逆オペランドを合成する。合成動作の結果は、前段落で説明した方法で元のオペランドを合成した結果と実質的に等価である。しかしながら、方法１０００では、個別の合成過程とクリッピング過程とをサポートするのに、合成結果バッファを必要としない。
【００５２】
ステップ１０１５において、Ｐｏｒｔｅｒ＆Ｄｕｆｆ合成動作が、供給元オぺランドとしての主バッファＶの内容（すなわち、背景）及び供給先オペランドとしての一時バッファＷの内容（すなわち、オブジェクトグループＢ）に対して実行される。この結果、一時バッファＷは、Ｐｏｒｔｅｒ＆Ｄｕｆｆ合成動作の結果を含むように変更される。ステップ１０１５で実行されたＰｏｒｔｅｒ＆Ｄｕｆｆ合成動作は、主バッファＶの内容（すなわち、背景）と一時バッファＷの内容（すなわち、オブジェクトグループＢ）との合成のために特定された本来のクリップ・トゥ・セルフ合成動作と相補する動作である。例えば、以下の表１に示すように、特定のクリップ・トゥ・セルフ合成動作が「src」である場合、ステップ１０１５において、表１の「相補する」欄より対応する動作「dst」が選択され、逆オペランドが合成される。
【００５３】
表１
特定の合成動作    相補する合成動作
Clear              Clear
Src                Dst
Dst                Src
Over                Rover
Rover              Over
In                  Rin
Rin                In
Out                Rout
Rout                Out
Atop                Ratop
Ratop              Atop
Xor                Xor
この例において、ステップ１０１５で表１を用いると、特定のクリップ・トゥ・セルフ動作は、動作「rin」と相補するべきＰｏｒｔｅｒ＆Ｄｕｆｆ「in」動作である。
【００５４】
図８は、この例によるステップ１０１５において、相補する合成動作を実行した後の一時バッファＷの状態を示す。
【００５５】
次に、ステップ１０１６において、一時バッファＷの内容（すなわち、合成動作１０１５の結果）を主バッファＶの内容（すなわち、オブジェクトＡ）の上に、合成クリッピングパスＺを介してコピーする。その際、合成クリッピングパスＺの外側の領域にある背景は、ステップ１０１６によって影響を受けない。図９に示すように、合成後の画素は、合成クリッピングパスＺ内でオブジェクトＡの画素と置き換わる。しかしながら、オブジェクトＡは、合成クリッピングパスＺの外側で影響を受けない。これを破線のアウトラインで示す。このような画像生成処理が終了後、ステップ１０１８を実行し、ビデオ画面１１１４へ表示するため、あるいはプリンタ１１１５を介してハードコピーを複製するために、図９に示す主バッファＶの内容を出力する。更に別のオブジェクトを合成する場合、パス１０２０を介してステップ１００４に戻る。ここで、この時点での主バッファＶの内容は、初期オブジェクトＡとして解釈される。
【００５６】
ステップ１０１０におけるクリッピングパスの生成は、以下のように実行される。
（ａ）図形及びテキストの場合、クリッピングパスとしてオブジェクトを定義するパスを用いる。
（ｂ）ストロークオブジェクトの場合、ストロークパスをクリッピングパスに変換する。
（ｃ）ビットマップ画像オブジェクトの場合、画像のエッジ又は境界を用いる。
（ｄ）効果（例えば、ぼかし）の場合、効果が動作する領域が存在し、その領域の境界がクリッピングパスに変換される。
【００５７】
図１２は、不透明な供給元（src又はＡ）オペランドと供給先（dest又はＢ）オペランドとの間の様々な基本Ｐｏｒｔｅｒ＆Ｄｕｆｆ合成動作を示す。尚、図１２は、表１の相補する動作は示さない。また、図１２は、クリップ・トゥ・セルフ機能を実現する方法１０００を用いて、同一の不透明なオブジェクトに対してＰｏｒｔｅｒ＆Ｄｕｆｆ動作を実行した結果を示す。上記例は、図１２の「A in B」で例示する「in」動作を参考としているが、上述の原理は、他の動作によって起こる問題に対処するために用いられる。これら動作は、以下を含む。
【００５８】
clear ; A ; A in B ; A rin B ; A out B ; A ratop B
前述で開示される方法は、１つ以上のグループオブジェクトが完全に不透明でない場合にも、同様に適用可能である。図１４は、不透明なオブジェクトに対するＰｏｒｔｅｒ＆Ｄｕｆｆ合成動作を示す。図１３は、供給先オペランド（Ｂ）が不透明度７０％の場合に、クリップ・トゥ・セルフ機能を用いたＰｏｒｔｅｒ＆Ｄｕｆｆ合成動作及びクリップ・トゥ・セルフ機能を用いないＰｏｒｔｅｒ＆Ｄｕｆｆ合成動作の両方の結果を示す。更に、ステップ１０１６の最終合成動作により、グループを含む一時バッファの不透明度は、１００％未満となる。前述で開示される方法は、この場合にも同様に適用可能である。
【００５９】
前述の方法１０００は、単一のオブジェクトの処理にも用いられる。この場合、方法１０００のステップ１００８からステップ１０１４の一度の繰り返しのみが必要となる。
【００６０】
方法１０００は、オブジェクト又はオブジェクトグループが、追加バッファ及びクリップ・トゥ・セルフ動作ごとのコピーのオーバヘッドを用いない従来の合成動作と互換性を有するように、全クリップ・トゥ・セルフ合成機能を用いて処理される手法を提供する。上述したように、これは、一時バッファを供給先バッファとして利用するためにオペランドを逆にし、合成動作を、特定の合成動作と相補する動作に変更することによって達成される。これにより、各クリップ・トゥ・セルフ動作のための追加一時バッファの使用と、そのためのコピーのオーバヘッドが不要となる。単一のオブジェクト又はグループ化オブジェクトのためのクリップ・トゥ・セルフ機能は、合成機能が欠如するシステム上で、クリッピングパスと連携して実現される。方法１０００を用いることにより、クリップ・トゥ・セルフ合成は、形状チャネルの使用、又は追加メモリバッファ及び対応するコピー動作のオーバヘッドの使用を必要とせずに実行される。
【００６１】
別の構成において、供給元オブジェクト（又は、オブジェクトグループの場合は、全ての供給元オブジェクト）及び供給先オブジェクト（又は、全ての供給先オブジェクト）が不透明であれば、特定のクリップ・トゥ・セルフ動作は、単純なＰｏｒｔｅｒ＆Ｄｕｆｆ合成動作に置き換えることができる。この場合、合成クリッピングパスを保持する必要がなく、ステップ１００６、ステップ１０１０、ステップ１０１２又はステップ１０１６を実行する必要もない。更に、ステップ１０１５において、以下に示す表２の対応する行の「不透明なクリップ・トゥ・セルフ合成動作」欄に示すように、単純なＰｏｒｔｅｒ＆Ｄｕｆｆ合成動作を用いて、一時バッファＷは、主バッファＶ上に合成される。
【００６２】
表２
特定の合成動作    不透明クリップ・トゥ・セルフ合成動作
Clear              Rout
Src                Over
Dst                Dst
Over                Over
Rover              Rover
In                  Atop
Rin                Dst
Out                Xor
Rout                Rout
Atop                Atop
Ratop              Rover
Xor                Xor
例えば、特定のクリップ・トゥ・セルフ動作が、供給元オブジェクト（又は、グループの場合は、全ての供給元オブジェクト）及び供給先オブジェクト（又は、全ての供給先オブジェクト）が不透明である箇所を合成するためのＰｏｒｔｅｒ＆Ｄｕｆｆ「in」動作である場合、ステップ１０１５において、供給元オブジェクト（又は、全ての供給元オブジェクト）と供給先オブジェクト（又は、全ての供給先オブジェクト）は、表２より、動作「atop」を用いて合成される。
【００６３】
方法１０００の更に別の構成において、図１５に示すように、ステップ１０１５及びステップ１０１６は、ステップ１５１６に置き換えることができる。ステップ１５１６において、一時バッファＷの内容は、クリッピングパスＺを介して主バッファＶの内容の上に合成される。ここで、ステップ１５１６のクリップ・トゥ・セルフ合成の実行方法１７００を示すフローチャートを、図１７を参照して説明する。
【００６４】
方法１７００は、ステップ１７０１から開始する。ステップ１７０１において、プロセッサ１１０５は、主バッファＶ（すなわち、オブジェクトＡ）のコピーＵを作成する。次のステップ１７０３において、プロセッサ１１０５は、一時バッファＷの内容（すなわち、オブジェクトグループＢ）を合成するために特定されたＰｏｒｔｅｒ＆Ｄｕｆｆ合成動作を用いて、一時バッファＷの内容を主バッファのコピーＵの内容（すなわち、オブジェクトＡ）の内容の上に合成する。この例では、図１２の「A in B」で例示される「src_in」動作がステップ１７０３で用いられる。次のステップ１７０５において、プロセッサ１１０５は、オブジェクトグループＢを含む主バッファのコピーＵの内容を、合成クリッピングパスＺを介して、主バッファＶ上にコピーする。ステップ１５１６の結果を図１６に示す。図１６では、オブジェクトグループＢがオブジェクトＡと交差している。しかしながら、オブジェクトＡは、合成クリッピングパスＺの外側で影響されない。また、ステップ１５１６の結果は、合成クリッピングパスＺのアウトラインを示す図９の描画と同一である。
【００６５】
図１５から図１７の例では、「src_in」動作を参考としているが、上述の原理は、他の動作によって起こる問題に対処するために用いられる。これら動作は、以下を含む。
【００６６】
clear ; A ; A in B ; A rin B ; A out B ; A ratop B
図１５の構成は、上述したように、いくつかの従来の描画システムを用いる場合、Ｐｏｒｔｅｒ＆Ｄｕｆｆ合成動作の全集合をサポートするために、合成結果バッファ（すなわち、主バッファのコピーＵ）を必要とする。このような従来の描画システムでは、合成結果バッファの使用の必要性を防止するために、図１０に示すような方法１０００を用いることができる。
【産業上の利用可能性】
【００６７】
説明した構成が、コンピュータグラフィックス及び画像処理産業に適用可能なことは、上述により明らかである。
【００６８】
上述では、本発明のいくつかの実施の形態を述べたのみである。また、本発明の趣旨の範囲から逸脱せずに変形及び／又は変更が可能であり、実施の形態は、例証するものであり制限するものではない。
【図面の簡単な説明】
【００６９】
【図１】主バッファにおける初期オブジェクトを示す図である。
【図２】一時バッファを示す図である。
【図３】一時バッファに描画された更なるオブジェクトを示す図である。
【図４】図３の更なるオブジェクトと関連付けられたクリッピングパスを示す図である。
【図５】一時バッファに描画された追加オブジェクトを示す図である。
【図６】図５の追加オブジェクトと関連付けられたクリッピングパスを示す図である。
【図７】図４及び図６のクリッピングパスの結合を示す図である。
【図８】図１の主バッファを図５の一時バッファ上に合成した結果を示す図である。
【図９】図７のクリッピングパスに基づいて、図５のオブジェクトを図１のオブジェクトに対して最終的に描画した状態を示す図である。
【図１０】オブジェクト合成方法を示すフローチャートである。
【図１１】説明した構成を実現可能な汎用コンピュータを概略的に示すブロック図である。
【図１２】様々なＰｏｒｔｅｒ＆Ｄｕｆｆ合成動作が、クリップ・トゥ・セルフ機能を用いずに実現された場合とクリップ・トゥ・セルフ機能を用いて実現された場合とを示す図である。
【図１３】図１２の様々なＰｏｒｔｅｒ＆Ｄｕｆｆ合成動作が、不透明でない供給先オブジェクトに対して、クリップ・トゥ・セルフ機能を用いずに実現された場合とクリップ・トゥ・セルフ機能を用いて実現された場合とを示す図である。
【図１４】不透明なオブジェクトに対する単純なＰｏｒｔｅｒ＆Ｄｕｆｆ合成を示す図である。
【図１５】オブジェクトの別の合成方法を示すフローチャートである。
【図１６】図１５の方法を用いて、図１の主バッファを図５の一時バッファ上に合成した結果を示す図である。
【図１７】図１５の方法のクリップ・トゥ・セルフ合成の実行方法を示すフローチャートである。
【図１】
2005235205.tif 000003
【図２】
2005235205.tif 000004
【図３】
2005235205.tif 000005
【図４】
2005235205.tif 000006
【図５】
2005235205.tif 000007
【図６】
2005235205.tif 000008
【図７】
2005235205.tif 000009
【図８】
2005235205.tif 000010
【図９】
2005235205.tif 000011
【図１０】
2005235205.tif 000012
【図１１】
2005235205.tif 000013
【図１２】
2005235205.tif 000014
【図１３】
2005235205.tif 000015
【図１４】
2005235205.tif 000016
【図１５】
2005235205.tif 000017
【図１６】
2005235205.tif 000018
【図１７】
2005235205.tif 000019
【外国語明細書】
2. Title of the Invention
COMPOSITING WITH CLIP-TO-SELF FUNCTIONALITY WITHOUT USING A SHAPE CHANNEL
3. Detailed Description of Invention
2005235205.tif 000020
2005235205.tif 000021
2005235205.tif 000022
2005235205.tif 000023
2005235205.tif 000024
2005235205.tif 000025
2005235205.tif 000026
2005235205.tif 000027
2005235205.tif 000028
Detailed Description of the Preferred Embodiments
2005235205.tif 000029
2005235205.tif 000030
2005235205.tif 000031
2005235205.tif 000032
2005235205.tif 000033
2005235205.tif 000034
2005235205.tif 000035
2005235205.tif 000036
2005235205.tif 000037
2005235205.tif 000038
2005235205.tif 000039
2005235205.tif 000040
2005235205.tif 000041
4. Brief Description of the Drawings
2005235205.tif 000042
2005235205.tif 000043
1. What is claimed is
2005235205.tif 000044
2005235205.tif 000045
2005235205.tif 000046
2005235205.tif 000047
2005235205.tif 000048
2005235205.tif 000049
2005235205.tif 000050
2005235205.tif 000051
2005235205.tif 000052
abstract
2005235205.tif 000053
2005235205.tif 000054
2005235205.tif 000055
2005235205.tif 000056
2005235205.tif 000057
2005235205.tif 000058
2005235205.tif 000059
2005235205.tif 000060
2005235205.tif 000061
2005235205.tif 000062
2005235205.tif 000063
2005235205.tif 000064