(57)【特許請求の範囲】
【請求項１】
ヒットテストを実行する方法であって、
複数の特別コンテンツレイヤ（SCL）を含むアプリケーションに関連付けられたユーザインターフェースを通じてユーザアクションを検出することと、
前記ユーザアクションと前記アプリケーションの少なくとも１つの特別コンテンツレイヤ（SCL）の１つまたは複数の画素との交差を検出することに応答して、ヒットを識別することであって、前記検出することは、前記ユーザアクションの近位にある前記ユーザインターフェース上の領域のテクスチャコンテンツに基づいて、前記アプリケーションのＳＣＬ処理モジュールにおいて前記アプリケーションの前記特別コンテンツレイヤの前後処理を実行することを含む、ことと、
前記ヒットに応答して、前記アプリケーションを通じたオブジェクトの直接操作が前記少なくとも１つのＳＣＬによって有効化されているかどうかを決定することと、
前記アプリケーションを通じた前記オブジェクトの前記直接操作が前記少なくとも１つのＳＣＬによって有効化されている場合に、前記アプリケーションを通じた前記オブジェクトの前記直接操作を自動的に開始することと、
を含む方法。
【請求項２】
前記アプリケーションを通じた前記オブジェクトの前記直接操作が前記少なくとも１つのＳＣＬによって有効化されていない場合に、前記直接操作を無効化することをさらに含む、請求項１に記載の方法。
【請求項３】
前記アプリケーションに関連付けられた前記ユーザインターフェースを通じて前記ユーザアクションを検出することに応答して、前記アプリケーションが前記少なくとも１つのＳＣＬを含むかどうかを決定することをさらに含む、請求項１に記載の方法。
【請求項４】
前記ユーザアクションは、タッチ入力、ジェスチャ入力、マウス入力、ペン入力、視線追跡入力、音声コマンド入力、ジャイロスコープ入力、および／またはキーボード入力のうちの１つまたは複数を含む、請求項１に記載の方法。
【請求項５】
ヒットテストを実行するコンピューティングデバイスであって、
命令を記憶するように構成されたメモリと、
前記メモリに連結されたプロセッサであって、複数の特別コンテンツレイヤ（SCL）を含むアプリケーションを実行し、前記アプリケーションに関連付けられたユーザインターフェースを提示させる、プロセッサと、を備え、前記アプリケーションは、
前記アプリケーションに関連付けられた前記ユーザインターフェースを通じてユーザアクションを検出し、
前記ユーザアクションと前記ＳＣＬのうちの少なくとも１つの、１つまたは複数の画素との交差を検出することに応答して、ヒットを識別し、前記検出することは、前記ユーザアクションの近位にある前記ユーザインターフェース上の領域のテクスチャコンテンツに基づいて、前記アプリケーションのＳＣＬ処理モジュールにおいて前記アプリケーションの前記特別コンテンツレイヤの前後処理を実行することを含み、
前記ヒットに応答して、前記アプリケーションを通じたオブジェクトの直接操作が前記少なくとも１つのＳＣＬによって有効化されているかどうかを決定し、
前記少なくとも１つのＳＣＬが前記アプリケーションを通じた前記オブジェクトの前記直接操作を有効化する場合に、前記アプリケーションを通じた前記オブジェクトの前記直接操作を自動的に開始するように構成される、コンピューティングデバイス。
【請求項６】
前記少なくとも１つのＳＣＬの前記１つまたは複数の画素は、前記アプリケーションに関連付けられた前記ユーザインターフェース上に表示される前記オブジェクトに対応する、請求項５に記載のコンピューティングデバイス。
【請求項７】
前記オブジェクトの少なくとも一部は、前記ユーザアクションの近位にある前記ユーザインターフェース上の領域に位置する、請求項６に記載のコンピューティングデバイス。
【請求項８】
前記直接操作の種類は、前記ユーザアクションに関係する前記オブジェクトの振る舞いに基づいて決定され、パン、ズーム、および選択のうちの１つを含む、請求項６に記載のコンピューティングデバイス。
【請求項９】
前記ＳＣＬの数は、前記アプリケーションの種類に依存する、請求項５に記載のコンピューティングデバイス。
【請求項１０】
前記アプリケーションに関連付けられた前記ユーザインターフェースは、クライアントデバイスにおいて前記アプリケーションを実行すると、前記クライアントデバイスのディスプレイを通じてユーザに提示される、請求項５に記載のコンピューティングデバイス。
【請求項１１】
ヒットテストを実行するための命令が記憶されたコンピュータ可読メモリデバイスであって、前記命令は、
複数の特別コンテンツレイヤ（SCL）を含むアプリケーションのユーザインターフェースを通じてユーザアクションを検出することと、
前記ユーザアクションと少なくとも１つの特別コンテンツレイヤ（SCL）の１つまたは複数の画素との交差を検出することに応答して、ヒットを識別することであって、前記検出することは、前記ユーザアクションの近位にある前記ユーザインターフェース上の領域のテクスチャコンテンツに基づいて、前記アプリケーションのＳＣＬ処理モジュールにおいて前記アプリケーションの前記特別コンテンツレイヤの前後処理を実行することを含む、ことと、
前記ヒットに応答して、前記アプリケーションを通じたオブジェクトの直接操作が前記少なくとも１つのＳＣＬによって有効化されているかどうかを決定することと、
前記アプリケーションを通じた前記オブジェクトの前記直接操作が前記少なくとも１つのＳＣＬによって有効化されている場合に、前記アプリケーションを通じた前記オブジェクトの前記直接操作を自動的に開始すること、または、
前記アプリケーションを通じた前記オブジェクトの前記直接操作が前記少なくとも１つのＳＣＬによって有効化されていない場合に、前記直接操作を無効化することと、を含む、コンピュータ可読メモリデバイス。
【請求項１２】
前記命令は、
各ＳＣＬについて、前記直接操作の１つまたは複数の種類を定義することをさらに含む、請求項１１に記載のコンピュータ可読メモリデバイス。
【請求項１３】
前記命令は、
前記直接操作の各種類について、前記直接操作が前記ヒットに応答して前記ＳＣＬによって有効化されているか、または無効化されるかを定義することをさらに含む、請求項１２に記載のコンピュータ可読メモリデバイス。
【発明の詳細な説明】
【背景技術】
【０００１】
[0001]  ヒット検出、ピッキング、および／またはピック相関としても知られるヒットテストは、アプリケーションに関連付けられたユーザインターフェース上のマウスカーソル、またはタッチポイントなどのユーザ制御カーソルが、ユーザインターフェース上に表示されたアプリケーションの、形状、直線、または曲線などの所与のオブジェクトと交点しているかどうかを決定するために使用されるプロセスである。さらに、ヒットテストは、アプリケーション内のメニュー項目またはターゲットの選択などのユーザアクションに対し、ユーザインターフェース上でのその視覚的な位置に基づいて、応答するために使用される。
【０００２】
[0002]  現在、ユーザからのタッチ入力、ジェスチャ入力、および／または従来型の入力のいずれかを通じてアプリケーション内のコンテンツにヒットしたかどうかを決定するための、高速で効率的な技術が存在していない。ヒットテストは、非常にコストがかかることがあり、また、ヒットテストを計算するのにかかる時間がコンテンツの複雑さに結びついているために、グラフィカルオブジェクトなどの、アプリケーションに関連付けられたある種類のコンテンツは、解を求めるのに非常に長くかかることがある。
【発明の概要】
【０００３】
[0003]  本概要は、詳細な説明でさらに後述する概念の抜粋を、簡潔な形式で導入するために提供されている。本概要は、特許請求される主題の重要な特徴または本質的特徴を専ら特定することを意図するものではなく、特許請求される主題の範囲を決定する際の補助として意図するものでもない。
【０００４】
[0004]  実施形態は、ユーザアクションに応答して、直接操作の有効化を決定するためにヒットテストを実行することを目的とする。コンピュータデバイスのプロセッサは、１つまたは複数の特別コンテンツレイヤ（SCL）を含むアプリケーションを実行し、アプリケーションを実行すると、アプリケーションに関連付けられたユーザインターフェースを、クライアントデバイスを通じてユーザに提示させるように構成されてもよい。アプリケーションは、ユーザインターフェースを通じてユーザアクションを検出してもよく、ユーザアクションとアプリケーションの少なくとも１つのＳＣＬの１つまたは複数の画素との交点を検出することに応答して、ヒットが識別されてもよい。アプリケーションを通じたオブジェクトの直接操作が少なくとも１つのＳＣＬによって有効化されているかどうかが、ヒットに応答してアプリケーションによって決定されてもよく、アプリケーションを通じたオブジェクトの直接操作が少なくとも１つのＳＣＬによって有効化されている場合、アプリケーションを通じたオブジェクトの直接操作が、自動的に開始されてもよい。
【０００５】
[0005]  これらのおよび他の特徴および利点は、以下の詳細な説明を読み、関連する図面を検討することによって明らかとなるであろう。前述の概略説明および以下の詳細な説明は、共に例示的なものであり、特許請求される態様に限定するものではないと理解されたい。
【図面の簡単な説明】
【０００６】
【図１】[0006]ヒットテストが実行され得る、例示的なネットワーク環境を含む。
【図２】[0007]ヒットテストを実行するように構成されるアプリケーションに関連付けられた、例示的なユーザインターフェースを示す。
【図３】[0008]ユーザアクションに応答して、１つまたは複数の直接操作の有効化を決定するためにヒットテストを実行するための、例示的なプロセスを示す。
【図４】[0009]ユーザアクションに応答して、１つまたは複数の直接操作の有効化を決定するためのヒットテストを実行するために使用され得る、例示的な汎用コンピューティングデバイスのブロック図である。
【図５】[0010]実施形態に従って、ユーザアクションに応答して、１つまたは複数の直接操作の有効化を決定するためにヒットテストを実行する方法の論理フロー図を示す。
【発明を実施するための形態】
【０００７】
[0001]  上記で簡潔に述べたように、ヒットテストは、アプリケーションに関連付けられたユーザインターフェースを経て検出されたユーザアクションが、アプリケーションの所与のオブジェクトと交点しているかどうかを決定するために実行され得る。アプリケーションは、例えば、ワードプロセッサ、スプレッドシート、および／またはプレゼンテーションアプリケーションであってもよく、１つまたは複数の特別コンテンツレイヤ（SCL）を含んでもよい。本明細書で述べるように、ＳＣＬは、アプリケーションを通じたオブジェクトの直接操作の有効化に関する即時判断が、ユーザアクションに応答して行われ得る、アプリケーションレイヤである。アプリケーションのＳＣＬ処理モジュールは、ＳＣＬの前後処理（front to back processing）中に、ユーザアクションとＳＣＬのうちの少なくとも１つの、１つまたは複数の非透過画素との交点を検出することに応答してヒットを識別してもよい。そこでは、画素が、アプリケーションのオブジェクトに対応してもよい。次いで、アプリケーションは、アプリケーションを通じたオブジェクトの直接操作がＳＣＬによって有効化されているかどうかを決定するように構成されてもよい。アプリケーションを通じたオブジェクトの直接操作がＳＣＬによって有効化されている場合、直接操作は、自動的に開始されてもよい。代わりに、アプリケーションを通じたオブジェクトの直接操作がＳＣＬによって有効化されていない場合、直接操作は、無効化されてもよい。
【０００８】
[0002]  以下の詳細な説明では、本明細書の一部を形成し、具体的な実施形態または例が例示として示されている添付図面が参照される。本開示の精神または範囲から逸脱することなく、これらの態様が組み合わされても、他の態様が利用されても、構造的な変更が行われてもよい。以下の詳細な説明では、したがって、限定的な意味に解釈されるべきではなく、本発明の範囲は、添付の特許請求の範囲およびそれらの均等物によって定義される。
【０００９】
[0003]  いくつかの実施形態は、パーソナルコンピュータ上のオペレーティングシステムで動作するアプリケーションプログラムと組み合わせて実行する、プログラムモジュールの概略的な文脈において説明されているが、当業者は、態様が、他のプログラムモジュールと組み合わせて実装されてもよいことを認識するであろう。
【００１０】
[0004]  概して、プログラムモジュールは、ルーチン、プログラム、コンポーネント、データ構造、および、特定のタスクを実行し、または特定の抽象データ型を実装する他の種類の構造を含む。さらに、当業者は、実施形態が、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベースまたはプログラマブル家庭用電化製品、ミニコンピュータ、メインフレームコンピュータ、および同等のコンピューティングデバイスを含む、他のコンピュータシステム構成で実施され得ると理解するであろう。実施形態はまた、通信ネットワークを通じてリンクされたリモート処理デバイスによってタスクが実行される、分散コンピューティング環境において実施されてもよい。分散コンピューティング環境では、プログラムモジュールは、ローカルメモリ記憶デバイス、およびリモートメモリ記憶デバイスの両方に位置してもよい。
【００１１】
[0005]  いくつかの実施形態は、コンピュータ実装プロセス（方法）、コンピューティングシステムとして、またはコンピュータプログラム製品もしくはコンピュータ可読媒体などの製品として、実装されてもよい。コンピュータプログラム製品は、コンピュータシステムによって読み取り可能であり、コンピュータまたはコンピューティングシステムに例示的なプロセスを実行させるための命令を含むコンピュータプログラムを符号化する、コンピュータ記憶媒体であってもよい。コンピュータ可読記憶媒体は、コンピュータ可読メモリデバイスである。コンピュータ可読記憶媒体は、例えば、揮発性コンピュータメモリ、不揮発性メモリ、ハードドライブ、フラッシュドライブ、フロッピーディスク、またはコンパクトディスク、および同等のハードウェア媒体のうちの１つまたは複数により、実装され得る。
【００１２】
[0006]  本明細書全体を通して、「プラットフォーム」という用語は、ヒットテスト実行のためのソフトウェアおよびハードウェアコンポーネントの組み合わせであってもよい。プラットフォームの例は、複数のサーバ上で実行されるホスト型サービス、単一のコンピューティングデバイス上で実行されるアプリケーション、および同等のシステムを含むが、限定はされない。「サーバ」という用語は、概して、典型的にはネットワーク化された環境で、１つまたは複数のソフトウェアプログラムを実行するコンピューティングデバイスを指す。一方、サーバはまた、ネットワーク上のサーバとして見られる１つまたは複数のコンピューティングデバイス上で実行される、仮想サーバ（ソフトウェアプログラム）として実装されてもよい。これらの技術および例示的な動作についてのさらなる詳細が、以下で提供される。
【００１３】
[0007]  図１は、ヒットテストが実行され得る、例示的なネットワーク環境を含む。図１００に示すように、１人または複数のユーザ（１０８、１１４、および１２０）は、クラウドベースネットワーク１３０を介して、ワードプロセッサ、スプレッドシート、および／またはプレゼンテーションアプリケーションなどのアプリケーション１０２にアクセスすることができる。いくつかの例では、アプリケーション１０２は、１つまたは複数のＳＣＬ１０４を含んでもよく、そこで、ＳＣＬ１０４は、ユーザアクションがＳＣＬ１０４の１つまたは複数の画素と交点することに応答して、アプリケーション１０２を通じたオブジェクトの直接操作の有効化に関する判断を即時に行い得る、アプリケーションレイヤである。各ＳＣＬ１０４について、１つまたは複数の種類の直接操作が定義されてもよく、直接操作の各種類について、直接操作がＳＣＬによって有効化されているかどうかがさらに定義されてもよい。アプリケーション１０２が含むＳＣＬ１０４の数は、アプリケーション１０２の種類に依存してもよい。例えば、プレゼンテーションアプリケーションは、ワードプロセッサアプリケーションよりも少ない数のＳＣＬ１０４を含んでもよい。
【００１４】
[0008]  アプリケーション１０２は、リモートサーバにおいてホストされてもよく、クラウドベースネットワーク１３０を介し、ユーザのクライアントデバイスを通じてアクセスされてもよい。例えば、サーバは、アプリケーション１０２を実行し、アプリケーション１０２に関連付けられたユーザインターフェース１０６をユーザのクライアントデバイスを通じて提示させるように構成されてもよい。アプリケーション１０２のローカル版もまた、ユーザのクライアントデバイスにおいてローカルにホストされてもよく、ローカルアプリケーション１０２に関連付けられたデータが、クラウドベースネットワーク１３０を介して取得されてもよい。いくつかの例示的なクライアントデバイスは、デスクトップコンピュータ１２２、ラップトップコンピュータ１１０、スマートフォン、カーフォン、モバイルフォン、タブレット１１６、および／またはホームオートメーションデバイスを含んでもよい。例えば、第１のユーザ１０８は、クラウドベースネットワーク１３０を介し、ラップトップコンピュータ１１０を通じてアプリケーション１０２にアクセスしてもよく、タッチ入力１１２を用いてユーザインターフェース１０６と対話してもよい。第２のユーザ１１４は、クラウドベースネットワーク１３０を介し、タブレット１１６を通じてアプリケーション１０２にアクセスしてもよく、スタイラス入力１１８を用いてユーザインターフェース１０６と対話してもよい。第３のユーザ１２０は、クラウドベースネットワーク１３０を介し、デスクトップコンピュータ１２２を通じてアプリケーション１０２にアクセスしてもよく、マウス１２４などの従来型の入力を用いてユーザインターフェース１０６と対話してもよい。他の入力方法は、例えば、ジェスチャ入力、および／またはキーボード入力を含んでもよい。
【００１５】
[0009]  例示的なアプリケーション１０２は、ユーザインターフェース１０６を通じてユーザアクションを検出するように構成されてもよい。ユーザアクションは、タッチ入力１１２、スタイラス入力１１８、マウス１２４入力、ならびに／または、ジャイロスコープ入力、視線追跡、および同等のものなどの他の入力を含んでもよい。例えば、第１のユーザ１０８のタッチ入力１１２は、ユーザインターフェース１０６上に表示されるアプリケーション１０２の、制御要素、テキスト要素、またはグラフィカル要素などのオブジェクトに関連付けられたタップアクション、またはスワイプアクションを含んでもよい。
【００１６】
[0010]  アプリケーション１０２が少なくとも１つのＳＣＬ１０４を含む場合、アプリケーション１０２のＳＣＬ処理モジュールが、検出されたユーザアクションに応答して、ＳＣＬ１０４の前後処理を実行するように構成されてもよい。アプリケーション１０２のＳＣＬ処理モジュールは、ユーザアクションの近位にある、ユーザインターフェース上の領域のテクスチャコンテンツに基づいて、前後処理を実行するかどうかを決定するように構成されてもよい。例えば、アプリケーションの１つまたは複数のオブジェクト（ユーザアクションに関連付けられたオブジェクト、および１つまたは複数の他のオブジェクトを含み得る）が、ユーザアクションの近位にある、ユーザインターフェース上の領域に表示されている場合、オブジェクトに対応するテクスチャコンテンツが、ＳＣＬ処理モジュールに前後処理を実行するように指示してもよい。対照的に、ユーザアクションの近位にあるユーザインターフェース上の領域に、オブジェクトが表示されていない場合、ユーザアクションはおそらく意図したものではなく、応答は必要でないため、テクスチャコンテンツがないことによって、ＳＣＬ処理モジュールに前後処理を実行しないように指示してもよい。前後処理の間に、ユーザアクションとＳＣＬ１０４の１つまたは複数の画素との交点を検出することに応答して、ヒットが識別されてもよい。画素は、ユーザアクションに関連付けられたオブジェクトに対応する非透過画素であってもよく、そこで、オブジェクトの少なくとも一部が、ユーザアクションの近位にあるユーザインターフェース１０６上の領域に位置する。
【００１７】
[0011]  次いで、アプリケーション１０２は、ヒットに応答して、アプリケーション１０２を通じたオブジェクトの直接操作がＳＣＬ１０４によって有効化されているかどうかを決定するように構成されてもよい。アプリケーション１０２を通じたオブジェクトの直接操作がＳＣＬ１０４によって有効化されている場合、アプリケーション１０２を通じたオブジェクトの直接操作が、自動的に開始されてもよい。アプリケーション１０２を通じたオブジェクトの直接操作がＳＣＬ１０４によって有効化されていない場合、アプリケーション１０２を通じたオブジェクトの直接操作は、無効化されてもよい。前述したように、ＳＣＬ１０４は、アプリケーション１０２を通じたオブジェクトの直接操作の有効化に関する判断が即時に行われ得る、アプリケーション１０２のレイヤである。各ＳＣＬ１０４について、１つまたは複数の種類の直接操作が定義されてもよく、直接操作の各種類について、直接操作がＳＣＬ１０４によって有効化されているか、または無効化されるかが、さらに定義されてもよい。直接操作の種類は、ユーザアクションに関係するオブジェクトの振る舞いに基づいて決定されてもよく、他の例もあるが、オブジェクトのパン、ズーム、および選択を含んでもよい。例えば、第１のユーザ１０８が、プレゼンテーションアプリケーションの文書スライドの画像上でのタッチ入力１１２を通じて、タップアクションを実行する場合、直接操作の種類は、ズームによって画像を拡大することを含んでもよい。
【００１８】
[0012]  ヒットテストの実行を伴うＳＣＬ１０４の即時判断機能を組み込むことによって、現在のヒットテスト技術を拡張する、ユーザアクションに応答して有効化を決定するための高速で効率的な方法が供給され得る。例えば、その組み込みによって、処理工程を追加する現在の必要性をなくし、よって、直接操作の有効化を決定するためのさらなる処理ソフトウェアおよび／またはハードウェアが必要ないようにする。それによって、全体の操作時間およびコストを減少させることができる。
【００１９】
[0013]  図１の例示的なシステムについて、具体的なサーバ、クライアントデバイス、アプリケーション、およびインタラクションを用いて説明した。実施形態は、この例示的な構成によるシステムに限定されない。直接操作の有効化を決定するためのヒットテスト実行用のプラットフォームは、より少ないコンポーネント、または追加のコンポーネントを使用し、他のタスクを実行する構成において実装されてもよい。さらに、直接操作の有効化を決定するためのヒットテスト実行用のプラットフォームは、本明細書で述べた原理を用いて、同様に実装されてもよい。
【００２０】
[0014]  図２は、ヒットテストを実行するように構成されたアプリケーションに関連付けられている、例示的なユーザインターフェースを示す。図２００に示すように、プレゼンテーションアプリケーションなどのアプリケーションは、タブレット２０２などのクライアントデバイスを通じて、ユーザによってアクセスされてもよい。アプリケーションは、１つまたは複数のＳＣＬを含んでもよく、アプリケーションを実行すると、アプリケーションに関連付けられたユーザインターフェース２０４が、タブレット２０２を通じて提示されてもよい。
【００２１】
[0015]  アプリケーションは、ユーザインターフェース２０４を通じてユーザアクションを検出してもよく、そこで、ユーザアクションは、タッチ入力２０６を通じて実行されてもよく、グラフ２０８などの、ユーザインターフェース２０４に表示されているアプリケーションのオブジェクトに関連付けられた、タップアクションを含んでもよい。アプリケーションのＳＣＬ処理モジュールは、ユーザアクションの検出に応答して、少なくとも１つのＳＣＬの前後処理を実行するように構成されてもよい。ＳＣＬ処理モジュールは、ユーザアクションの近位にある、ユーザインターフェース２０４上の領域のテクスチャコンテンツに基づいて、前後処理を実行するかどうかを決定してもよい。例えば、タップアクションの近位にあるユーザインターフェース２０４上の領域のテクスチャコンテンツにより、グラフ２０８またはテキストコンテンツ２１０などの、アプリケーションの１つまたは複数のオブジェクトが近位にあり、したがって、前後処理が実行されるべきであることを示してもよい。別の例では、ユーザアクションが、いかなる種類のコンテンツも表示していないユーザインターフェース２０４上の領域においてタッチ入力を通じて実行される、スワイプアクションである場合、ユーザアクションはおそらく意図したものではなく、よって応答は必要でないため、テクスチャコンテンツにより、オブジェクトが近位になく、したがって、前後処理が実行されるべきでないことを示してもよい。
【００２２】
[0016]  ユーザアクションとＳＣＬの１つまたは複数の画素との交点を検出することに応答して、ヒットが識別されてもよい。画素は、ユーザによってタップされるグラフ２０８に対応する非透過画素であってもよい。次いで、アプリケーションは、ヒットに応答して、アプリケーションを通じたオブジェクトの直接操作がＳＣＬによって有効化されているかどうかを決定するように構成されてもよく、そこで、直接操作は、例えば、コピーおよびペースト機能を実行するためにグラフ２０８を選択することを含んでもよい。アプリケーションを通じたオブジェクトの直接操作がＳＣＬによって有効化されている場合、アプリケーションを通じたオブジェクトの直接操作が、自動的に開始されてもよい。アプリケーションを通じたオブジェクトの直接操作がＳＣＬによって有効化されていない場合、アプリケーションを通じたオブジェクトの直接操作は、無効化されてもよい。
【００２３】
[0017]  図３は、ユーザアクションに応答して、１つまたは複数の直接操作の有効化を決定するためにヒットテストを実行するための、例示的なプロセスを示す。ワードプロセッサ、スプレッドシート、および／またはプレゼンテーションアプリケーションなどのアプリケーションは、クライアントデバイスを通じてユーザによってアクセスされてもよく、アプリケーションを実行すると、アプリケーションとのユーザインタラクションを可能にするために、アプリケーションに関連付けられたユーザインターフェースが、クライアントデバイスのディスプレイを通じて提示されてもよい。いくつかの例では、アプリケーションは、１つまたは複数のＳＣＬを含んでもよく、そこで、ＳＣＬの数は、アプリケーションの種類に依存する。各ＳＣＬは、ユーザアクションに応答して、アプリケーションを通じたオブジェクトの直接操作の有効化に関する判断が即時に行われ得る、アプリケーションレイヤである。
【００２４】
[0018]  図３００に示すように、アプリケーションに関連付けられたユーザインターフェースを通じてユーザアクションを検出することに応答して、アプリケーションのＳＣＬ処理モジュールは、アプリケーションが少なくとも１つのＳＣＬを含むかどうかを決定３０２してもよい。アプリケーションが、少なくとも１つのＳＣＬを含まない場合３０４、ヒットが識別されない３０６可能性がある。アプリケーションが、少なくとも１つのＳＣＬを含む場合３０８、アプリケーションのＳＣＬ処理モジュールが、ユーザアクションの検出に応答して、各ＳＣＬの前後処理を実行３１０するように構成されてもよい。ＳＣＬ処理モジュールは、ユーザアクションの近位にある、ユーザインターフェース上の領域のテクスチャコンテンツに基づいて、前後処理を実行するかどうかを決定してもよい。ＳＣＬ処理モジュールは、ユーザアクションと、前後処理中に検出された少なくとも１つのＳＣＬの１つまたは複数の画素との交点があるかどうかを決定することによって、ヒットがあるかどうかを識別３１２してもよい。識別されるヒットがない場合３１４、ＳＣＬ処理モジュールは、他のＳＣＬの処理を継続してもよく（即ち、アプリケーションが１つより多くのSCLを含む場合）、一度、各ＳＣＬが処理され、ヒットが識別されなければ３０６、ＳＣＬの処理を完了３１６してもよい。
【００２５】
[0019]  識別されるヒットがある場合３１８、アプリケーションは、ＳＣＬがアプリケーションを通じたオブジェクトの直接操作を有効化するかどうかを決定３２０してもよい。例えば、１つまたは複数の種類の直接操作が、各ＳＣＬについて定義されてもよく、直接操作の各種類について、直接操作がＳＣＬによって有効化されているか、または無効化されるかが、さらに定義されてもよい。ＳＣＬがアプリケーションを通じたオブジェクトの直接操作を有効化する場合３２２、直接操作が、自動的に開始３２４されてもよく、処理が終了３３０してもよい。ＳＣＬがアプリケーションを通じたオブジェクトの直接操作を有効化しない場合３２６、直接操作は、無効化３２８されてもよく、処理が終了３３０してもよい。
【００２６】
[0020]  図１〜３の例は、１つまたは複数の直接操作の有効化を決定するためにヒットテストを実行するための、具体的なネットワーク環境、構成、デバイス、および処理を用いて説明された。ヒットテストを実行するための実施形態は、これらの例による具体的なネットワーク環境、構成、デバイス、および処理に限定されない。
【００２７】
[0021]  ユーザアクションに応答して、オブジェクトの直接操作の有効化または無効化に関する即時判断を行うための、アプリケーションの１つまたは複数のＳＣＬの機能は、プロセッサの負荷を有利に減少させ、同時にユーザアクションへのより高速な応答に関して有用性を改善することができる。
【００２８】
[0022]  図４および関連する説明は、ユーザアクションに応答して、１つまたは複数の直接操作の有効化を決定するためのヒットテストを実行するために使用され得る汎用コンピューティングデバイスの、簡潔な概略説明を提供することを意図したものである。
【００２９】
[0023]  例えば、コンピューティングデバイス４００は、サーバ、デスクトップコンピュータ、ポータブルコンピュータ、スマートフォン、専用コンピュータ、または類似のデバイスとして使用されてもよい。例示的な基本構成４０２では、コンピューティングデバイス４００は、１つまたは複数のプロセッサ４０４、およびシステムメモリ４０６を含んでもよい。メモリバス４０８は、プロセッサ４０４とシステムメモリ４０６との間の通信用に使用されてもよい。基本構成４０２は、内側の破線内にあるそれらのコンポーネントによって、図４に示されている。
【００３０】
[0024]  所望の構成に応じて、プロセッサ４０４は、任意の種類のものであってもよく、マイクロプロセッサ（μP）、マイクロコントローラ（μC）、デジタル信号プロセッサ（DSP）、またはそれらの任意の組み合わせを含むが限定はされない。プロセッサ４０４は、レベルキャッシュメモリ４１２、１つまたは複数のプロセッサコア４１４、およびレジスタ４１６などの、１つまたは複数のレベルのキャッシュを含んでもよい。例示的なプロセッサコア４１４は（それぞれ）、演算論理ユニット（ALU）、浮動小数点ユニット（FPU）、デジタル信号処理コア（DSPコア）、またはそれらの任意の組み合わせを含んでもよい。例示的なメモリコントローラ４１８は、プロセッサ４０４とともに使用されてもよく、または、いくつかの実装では、メモリコントローラ４１８は、プロセッサ４０４の内部部品であってもよい。
【００３１】
所望の構成に応じて、システムメモリ４０６は、任意の種類のものであってもよく、揮発性メモリ（RAMなど）、不揮発性メモリ（ROM、フラッシュメモリなど）、またはそれらの任意の組み合わせを含むが限定はされない。システムメモリ４０６は、オペレーティングシステム４２０、アプリケーション４２２、およびプログラムデータ４２４を含んでもよい。アプリケーション４２２は、１つまたは複数のＳＣＬ、およびＳＣＬ処理モジュール４２６を含んでもよい。ＳＣＬ処理モジュール４２６は、アプリケーションの不可欠な部品であってもよく、またはそれ自体が別のアプリケーションであってもよい。アプリケーション４２２の実行によって、関連するユーザインターフェースが提示されてもよい。ユーザインターフェースを通じてユーザアクションを検出することに応答して、アプリケーションが少なくとも１つのＳＣＬを含むかどうかが決定されてもよい。ＳＣＬ処理モジュール４２６は、ユーザアクションと、少なくとも１つのＳＣＬの１つまたは複数の画素との交点を検出するために、アプリケーションの少なくとも１つのＳＣＬの前後処理を実行してもよく、それによってヒットを識別してもよい。アプリケーションを通じたオブジェクトの直接操作が、少なくとも１つのＳＣＬによって有効化されているかどうかが、ヒットに応答して決定されてもよく、アプリケーションを通じたオブジェクトの直接操作が少なくとも１つのＳＣＬによって有効化されている場合、アプリケーションを通じたオブジェクトの直接操作が、自動的に開始されてもよい。代わりに、アプリケーションを通じたオブジェクトの直接操作が少なくとも１つのＳＣＬによって有効化されていない場合、アプリケーションを通じたオブジェクトの直接操作は、無効化されてもよい。プログラムデータ４２４は、本明細書で述べるように、他のデータの中でも、ＳＣＬに基づく直接操作の有効化および直接操作の種類定義に関するプロセスデータ４２８を含んでもよい。
【００３２】
[0025]  コンピューティングデバイス４００は、追加の特徴または機能性、ならびに基本構成４０２と任意の所望のデバイスおよびインターフェースとの間の通信を容易にするための追加のインターフェースを有してもよい。例えば、バス／インターフェースコントローラ４３０は、ストレージインターフェースバス４３４を経て、基本構成４０２と１つまたは複数のデータ記憶デバイス４３２との間の通信を容易にするために使用されてもよい。データ記憶デバイス４３２は、１つもしくは複数の取外し式記憶デバイス４３６、１つもしくは複数の非取外し式記憶デバイス４３８、またはそれらの組み合わせであってもよい。取外し式記憶デバイスおよび非取外し式記憶デバイスの例は、いくつか名前を挙げると、フレキシブルディスクドライブおよびハードディスクドライブ（HDD）などの磁気ディスクデバイス、コンパクトディスク（CD）ドライブまたはデジタル多用途ディスク（DVD）ドライブなどの光ディスクドライブ、ソリッドステートドライブ（SSD）、ならびにテープドライブを含む。例示的なコンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報の記憶のために、任意の方法または技術で実装された、揮発性および不揮発性、取外し式および非取外し式媒体を含んでもよい。
【００３３】
[0026]  システムメモリ４０６、取外し式記憶デバイス４３６、および非取外し式記憶デバイス４３８は、コンピュータ記憶媒体の例である。コンピュータ記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリもしくは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（DVD）、ソリッドステートドライブ、もしくは他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージもしくは他の磁気記憶デバイス、または、所望の情報を記憶するために使用され、コンピューティングデバイス４００によってアクセスされ得る、任意の他の媒体を含むが、限定はされない。任意のそのようなコンピュータ記憶媒体は、コンピューティングデバイス４００の一部であってもよい。
【００３４】
[0027]  コンピューティングデバイス４００はまた、バス／インターフェースコントローラ４３０を経て、様々なインターフェースデバイス（例えば、１つまたは複数の出力デバイス４４２、１つまたは複数の周辺インターフェース４４４、および１つまたは複数の通信デバイス４４６）から基本構成４０２への通信を容易にするためのインターフェースバス４４０を含んでもよい。例示的な出力デバイス４４２のうちのいくつかは、１つまたは複数のＡ／Ｖポート４５２を経てディスプレイまたはスピーカなどの様々な外部デバイスと通信するように構成され得る、グラフィック処理ユニット４４８および音声処理ユニット４５０を含む。１つまたは複数の例示的な周辺インターフェース４４４は、シリアルインターフェースコントローラ４５４、またはパラレルインターフェースコントローラ４５６を含んでもよく、それらは、１つまたは複数のＩ／Ｏポート４５８を経て、入力デバイス（例えば、キーボード、マウス、ペン、音声入力デバイス、タッチ入力デバイスなど）、または他の周辺デバイス（例えば、プリンタ、スキャナなど）などの外部デバイスと通信するように構成されてもよい。例示的な通信デバイス４４６は、ネットワークコントローラ４６０を含んでもよく、ネットワークコントローラ４６０は、１つまたは複数の通信ポート４６４を経てネットワーク通信リンクを介し、１つまたは複数の他のコンピューティングデバイス４６２との通信を容易にするように配置されてもよい。１つまたは複数の他のコンピューティングデバイス４６２は、サーバ、クライアントデバイス、および同等のデバイスを含んでもよい。
【００３５】
[0028]  ネットワーク通信リンクは、通信媒体の一例であってもよい。通信媒体は、典型的には、搬送波または他の移送機構などの変調データ信号内のコンピュータ可読命令、データ構造、プログラムモジュール、または他のデータによって実現されてもよく、任意の情報配信媒体を含んでもよい。「変調データ信号」は、信号内の情報を符号化するようにその特性のうちの１つまたは複数が設定され、または変更された信号であってもよい。限定ではなく例として、通信媒体は、有線ネットワークまたは直接配線された接続などの有線媒体、ならびに音響、無線周波数（RF）、マイクロ波、赤外線（IR）、および他の無線媒体などの無線媒体を含んでもよい。本明細書で使用されるコンピュータ可読媒体という用語は、記憶媒体および通信媒体の両方を含んでもよい。
【００３６】
[0029]  コンピューティングデバイス４００は、上記機能のうちのいずれかを含む、汎用もしくは専用サーバ、メインフレーム、または類似のコンピュータの一部として実装されてもよい。コンピューティングデバイス４００は、また、ラップトップコンピュータ構成および非ラップトップコンピュータ構成の両方を含む、パーソナルコンピュータとして実装されてもよい。
【００３７】
[0030]  例示的な実施形態は、１つまたは複数の直接操作の有効化を決定するために、ヒットテストを実行するための方法も含み得る。これらの方法は、本明細書で述べた構造を含む、任意の数の方法で実装され得る。そのような１つの方法は、本開示において述べた種類のデバイスの機械操作によるものであってもよい。他の任意選択的な方法は、他の動作が機械によって実行され得る一方で、動作のうちのいくつかを実行する１人または複数の人間の操作者と共に実行される方法の個々の動作のうちの１つまたは複数のためのものであってもよい。これらの人間の操作者は、互いに結び付けられる必要はなく、それぞれが、プログラムの一部を実行する機械を用いるだけであってもよい。他の実施形態では、人間のインタラクションは、機械で自動化され得る、予め選択された基準などによって自動化され得る。
【００３８】
[0031]  図５は、実施形態に従って、ユーザアクションに応答して、１つまたは複数の直接操作の有効化を決定するためにヒットテストを実行する方法の、プロセス５００のための論理フロー図を示す。プロセス５００は、サーバまたは他のシステム上で実装されてもよい。
【００３９】
[0032]  プロセス５００は、動作５１０で開始する。動作５１０では、アプリケーションは、アプリケーションに関連付けられたユーザインターフェースを通じてユーザアクションを検出するように構成され得る。ユーザアクションは、例えば、タップおよびスワイプアクションを含むタッチ入力、ジェスチャ入力、ペン入力、マウス入力、ならびに／またはキーボード入力を含んでもよい。アプリケーションが少なくとも１つのＳＣＬを含む場合、アプリケーションのＳＣＬ処理モジュールが、各ＳＣＬの前後処理を実行するように構成されてもよい。
【００４０】
[0033]  動作５２０において、前後処理の間に、ユーザアクションとＳＣＬの１つまたは複数の画素との交点を検出することに応答して、ヒットが識別されてもよい。画素は、ユーザインターフェース上に表示されたアプリケーションの、制御要素、テキスト要素、および／またはグラフィカル要素などの、ユーザアクションに関連付けられたオブジェクトに対応する非透過画素であってもよい。オブジェクトのうちの、全てではなくとも少なくとも一部は、ユーザアクションの近位にあるユーザインターフェース上の領域内に位置してもよい。
【００４１】
[0034]  動作５３０において、アプリケーションは、次いで、ヒットに応答して、アプリケーションを通じたオブジェクトの直接操作がＳＣＬによって有効化されているかどうかを決定するように構成されてもよい。ＳＣＬは、アプリケーションを通じたオブジェクトの直接操作の有効化に関する判断が即時に行われ得る、アプリケーションレイヤである。各ＳＣＬについて、１つまたは複数の種類の直接操作が定義されてもよく、直接操作の各種類について、直接操作がＳＣＬによって有効化されているか、または無効化されるかが、さらに定義されてもよい。直接操作の種類は、ユーザアクションに関係するオブジェクトの振る舞いに基づいて決定されてもよく、他の例もあるが、オブジェクトのパン、ズーム、および選択を含んでもよい。
【００４２】
[0035]  動作５４０において、アプリケーションを通じたオブジェクトの直接操作がＳＣＬによって有効化されている場合に、アプリケーションを通じたオブジェクトの直接操作が、自動的に開始されてもよい。代わりに、アプリケーションを通じたオブジェクトの直接操作がＳＣＬによって有効化されていない場合、アプリケーションを通じたオブジェクトの直接操作は、無効化されてもよい。
【００４３】
[0036]  プロセス５００に含まれる動作は、例示のためのものである。ユーザアクションに応答して直接操作の有効化を決定するためのヒットテストの実行は、より少ない工程、または追加の工程を有する類似のプロセスによって、および本明細書で述べた原理を用いて異なる動作順序で、実装されてもよい。
【００４４】
[0037]  いくつかの実施形態によれば、ヒットテストを実行する方法が提供される。方法は、アプリケーションに関連付けられたユーザインターフェースを通じてユーザアクションを検出する手段と、ユーザアクションとアプリケーションの少なくとも１つのＳＣＬの１つまたは複数の画素との交点を検出することに応答して、ヒットを識別する手段と、ヒットに応答して、アプリケーションを通じたオブジェクトの直接操作が少なくとも１つのＳＣＬによって有効化されているかどうかを決定する手段と、アプリケーションを通じたオブジェクトの直接操作が少なくとも１つのＳＣＬによって有効化されている場合に、アプリケーションを通じたオブジェクトの直接操作を自動的に開始する手段と、を含んでもよい。
【００４５】
[0038]  いくつかの例によれば、ヒットテストを実行する方法が提供される。例示的な方法は、アプリケーションに関連付けられたユーザインターフェースを通じてユーザアクションを検出することと、ユーザアクションとアプリケーションの少なくとも１つのＳＣＬの１つまたは複数の画素との交点を検出することに応答して、ヒットを識別することと、を含んでもよい。例示的な方法は、また、ヒットに応答して、アプリケーションを通じたオブジェクトの直接操作が少なくとも１つのＳＣＬによって有効化されているかどうかを決定することと、アプリケーションを通じたオブジェクトの直接操作が少なくとも１つのＳＣＬによって有効化されている場合に、アプリケーションを通じたオブジェクトの直接操作を自動的に開始することと、を含んでもよい。
【００４６】
[0039]  他の例では、アプリケーションを通じたオブジェクトの直接操作が少なくとも１つのＳＣＬによって有効化されていない場合に、直接操作は無効化されてもよい。アプリケーションに関連付けられたユーザインターフェースを通じてユーザアクションを検出することに応答して、アプリケーションが少なくとも１つのＳＣＬを含むかどうかが決定されてもよい。ユーザアクションと少なくとも１つのＳＣＬの１つまたは複数の画素との交点を検出するために、アプリケーションの少なくとも１つのＳＣＬの前後処理が、アプリケーションのＳＣＬ処理モジュールにおいて実行されてもよい。ユーザアクションの近位にあるユーザインターフェース上の領域のテクスチャコンテンツに基づいて、前後処理を実行するかどうかが決定されてもよい。
【００４７】
[0040]  さらなる例では、各ＳＣＬについて、１つまたは複数の種類の直接操作が定義されてもよい。直接操作の各種類について、直接操作がヒットに応答してＳＣＬによって有効化されているか、または無効化されるかが、定義されてもよい。ユーザアクションは、タッチ入力、ジェスチャ入力、マウス入力、ペン入力、視線追跡入力、音声コマンド入力、ジャイロスコープ入力、および／またはキーボード入力を含んでもよい。
【００４８】
[0041]  他の例によれば、ヒットテストを実行するコンピューティングデバイスについて、説明され得る。例示的なコンピューティングデバイスは、命令を記憶するように構成されたメモリと、メモリに連結されたプロセッサであって、１つまたは複数のＳＣＬを含むアプリケーションを実行し、アプリケーションに関連付けられたユーザインターフェースを提示させる、プロセッサと、を含んでもよい。アプリケーションは、アプリケーションに関連付けられたユーザインターフェースを通じてユーザアクションを検出し、ユーザアクションと、ＳＣＬのうちの少なくとも１つの、１つまたは複数の画素との交点を検出することに応答して、ヒットを識別するように構成されてもよい。アプリケーションは、また、ヒットに応答して、アプリケーションを通じたオブジェクトの直接操作が少なくとも１つのＳＣＬによって有効化されているかどうかを決定し、少なくとも１つのＳＣＬがアプリケーションを通じたオブジェクトの直接操作を有効化する場合に、アプリケーションを通じたオブジェクトの直接操作を自動的に開始するように構成されてもよい。
【００４９】
[0042]  他の実施形態では、少なくとも１つのＳＣＬの１つまたは複数の画素は、非透過であってもよい。少なくとも１つのＳＣＬの１つまたは複数の画素は、アプリケーションに関連付けられたユーザインターフェース上に表示されるオブジェクトに対応してもよい。オブジェクトのうちの少なくとも一部は、ユーザアクションの近位にあるユーザインターフェース上の領域内に位置してもよい。直接操作の種類は、ユーザアクションに関係するオブジェクトの振る舞いに基づいて決定されてもよく、そこで、直接操作の種類は、パン、ズーム、および選択を含む。
【００５０】
[0043]  さらなる実施形態では、ＳＣＬの数は、アプリケーションの種類に依存してもよく、アプリケーションは、ワードプロセッサアプリケーション、スプレッドシートアプリケーション、プレゼンテーションアプリケーションのうちの１つまたは複数である。アプリケーションに関連付けられたユーザインターフェースは、クライアントデバイスにおいてアプリケーションを実行すると、クライアントデバイスのディスプレイを通じてユーザに提示されてもよい。
【００５１】
[0044]  いくつかの例によれば、ヒットテストを実行するための命令が記憶されたコンピュータ可読メモリデバイスについて、説明され得る。例示的な命令は、アプリケーションのユーザインターフェースを通じてユーザアクションを検出することと、ユーザアクションと、少なくとも１つのＳＣＬの１つまたは複数の画素との交点を検出することに応答して、ヒットを識別することと、を含んでもよい。例示的な命令は、また、ヒットに応答して、アプリケーションを通じたオブジェクトの直接操作が少なくとも１つのＳＣＬによって有効化されているかどうかを決定することと、アプリケーションを通じたオブジェクトの直接操作が少なくとも１つのＳＣＬによって有効化されている場合に、アプリケーションを通じたオブジェクトの直接操作を自動的に開始すること、または、アプリケーションを通じたオブジェクトの直接操作が少なくとも１つのＳＣＬによって有効化されていない場合に、直接操作を無効化することと、を含んでもよい。
【００５２】
[0045]  他の例では、各ＳＣＬについて、１つまたは複数の種類の直接操作が定義されてもよい。直接操作の各種類について、直接操作がヒットに応答してＳＣＬによって有効化されているか、または無効化されるかが、定義されてもよい。
【００５３】
[0046]  上記明細書、例、およびデータは、製品、および実施形態の構成物の使用の完全な説明を提供する。主題について、構造的特徴および／または方法論的動作に特有の言い回しで説明したが、添付の特許請求の範囲で定義される主題は、必ずしも上述した具体的な特徴または動作に限定されるものではないと理解されたい。むしろ、上述した具体的な特徴および動作は、特許請求の範囲および実施形態を実装する形式の例として開示されている。
【図１】
0006662861.tif 000002
【図２】
0006662861.tif 000003
【図３】
0006662861.tif 000004
【図４】
0006662861.tif 000005
【図５】
0006662861.tif 000006