JP4698599B2 - リアルタイムインキング - Google Patents
リアルタイムインキング Download PDFInfo
- Publication number
- JP4698599B2 JP4698599B2 JP2006536576A JP2006536576A JP4698599B2 JP 4698599 B2 JP4698599 B2 JP 4698599B2 JP 2006536576 A JP2006536576 A JP 2006536576A JP 2006536576 A JP2006536576 A JP 2006536576A JP 4698599 B2 JP4698599 B2 JP 4698599B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- plug
- stylus
- real
- ink
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/033—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
- G06F3/038—Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0487—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
- G06F3/0488—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
- G06F3/04883—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1202—Dedicated interfaces to print systems specifically adapted to achieve a particular effect
- G06F3/1203—Improving or facilitating administration, e.g. print management
- G06F3/1204—Improving or facilitating administration, e.g. print management resulting in reduced user or operator actions, e.g. presetting, automatic actions, using hardware token storing data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1202—Dedicated interfaces to print systems specifically adapted to achieve a particular effect
- G06F3/1203—Improving or facilitating administration, e.g. print management
- G06F3/1206—Improving or facilitating administration, e.g. print management resulting in increased flexibility in input data format or job format or job type
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1223—Dedicated interfaces to print systems specifically adapted to use a particular technique
- G06F3/1237—Print job management
- G06F3/126—Job scheduling, e.g. queuing, determine appropriate device
- G06F3/1263—Job scheduling, e.g. queuing, determine appropriate device based on job priority, e.g. re-arranging the order of jobs, e.g. the printing sequence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1278—Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
- G06F3/1284—Local printer device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/14—Image acquisition
- G06V30/142—Image acquisition using hand-held instruments; Constructional details of the instruments
- G06V30/1423—Image acquisition using hand-held instruments; Constructional details of the instruments the instrument generating sequences of position coordinates corresponding to handwriting
Description
インクペンを使用するユーザに知られているように、物理的インク(インク溜を備えたペンを使用して紙上に書き込まれる種類)は、線分によって接続された一連の座標より多くの情報を伝達できる。例えば、物理的インクは、ペン圧(インクの濃さによる)、ペン角度(直線または曲線分の形状、および個別点付近のインクの挙動による)、およびペンの尖端の速度(真直性、線幅、および直線または曲線のコースに対する線幅変化による)を反映することができる。さらなる例は、インクが付着する紙または他の表面の繊維にインクが吸収される様式を含む。これらの些細な特性も、上記の特性を付与するに役立つ。これらの追加的な特性により、転換の均一な線幅を用いるより、情緒、個性および強調等をより即時的に付与することが可能である。
図1Aは、本発明を実施できる好適なコンピューティングシステム環境100の例を示す図である。コンピューティングシステム環境100は、好適なコンピューティング環境の一例にすぎず、本発明の用途または機能の範囲に関して何らかの制限を示唆することを意図するものではない。コンピューティングシステム環境100は、例示的なコンピューティングシステム環境100に示されている任意の1つの構成要素またはその組合せに関
する何らかの依存性または要件を有するものとして解釈されるべきではない。
通信を多数の個別的な通信に分割することによって、1つのコードセグメントから他のコードセグメントへの通信を間接的に達成できる。これは、図1Dおよび1Eに概略的に示されている。ここに示されるように、分割可能な機能の集合体という観点でいくつかのインターフェースを説明することが可能である。したがって、ちょうど数学的に24、または2×2×3×2を与えることができるように、図1Bおよび1Cのインターフェース機能をファクタリングして、同じ結果を達成することができる。よって、図1Dに示されるように、インターフェース、すなわちインターフェース1によって提供される機能を細分割して、インターフェースの通信を多数のインターフェース、すなわちインターフェース1A、インターフェース1B、インターフェース1C等に変換しながら、同じ結果を達成することができる。図1Eに示されるように、インターフェースI1によって提供される機能を多数のインターフェースI1a、I1b、I1c等に細分割しながら、同じ結果を達成することができる。同様に、第1のコードセグメントから情報を受け取る第2のコードセグメントのインターフェースI2を多数のインターフェースI2a、I2b、I2c等にファクタリングすることができる。ファクタリングするときは、第1のコードセグメントに含まれるインターフェースの数が、第2のコードセグメントに含まれるインターフェースの数と一致する必要はない。図1Dおよび1Eの場合のいずれも、インターフェース、すなわちインターフェース1およびインターフェースI1の機能的意味は、それぞれ図1Bおよび1Cの場合と同じである。インターフェースのファクタリングは、ファクタリングの認識が困難になりうるように、結合特性、交換特性および他の数学的特性を追従することもある。例えば、動作の順序は重要でなく、その結果、インターフェースによって実施される昨日は、コードまたはインターフェースの他の部分によって、インターフェースに到達する前に十分に実施されるか、またはシステムの個別的な構成要素によって実施されうる。さらに、同じ結果を達成する異なる機能呼出の様々な方法が存在することを、プログラミング技術分野の当業者なら理解できる。
場合によっては、プログラミングインターフェースの一定の態様(例えばパラメータ)を無視、追加または再定義しながら、目的とする結果を遂行することが可能である。これは、図1Fおよび1Gに示されている。例えば、インターフェース、すなわち図1のインターフェース1は、機能呼出平方(入力、精度、出力)、すなわち入力、精度および出力の3つのパラメータを含み、第1のコードセグメントから第2のコードセグメントに発せられる呼出を含むものと仮定する。中央のパラメータである精度が、所定のシナリオに関係ない場合は、図1Fに示されるように、無視するか、または(この状況において)無意味なパラメータと交換することも可能である。関係のないさらなるパラメータを追加することもできる。いずれの場合も、入力が第2のコードセグメントによって平方された後に出力が戻されるのであれば、平方の機能を達成することが可能である。精度は、コンピューティングシステムの下流または他の部分にとって十分に意味のあるパラメータでありうるが、精度が、平方を計算するという狭い目的に必要ないと認識されれば、交換または無視することができる。例えば、有効な精度値を通す代わりに、結果に悪影響を与えることなく誕生日のような無意味な値を通すことが可能である。同様に、図1Gに示されるように、インターフェースI1を、パラメータを無視するか、またはインターフェースに追加するように再定義されたインターフェースI1’と交換する。インターフェースI2は、同様に、不要なパラメータ、または他の場所で処理できるパラメータを無視するように再定義されたインターフェースI2’として再定義されうる。ここでのポイントは、いくつかの場合において、プログラミングインターフェースは、ある目的に必要とされないパラメータの如き態様を含むことができるため、無視または再定義されるか、あるいは他の目的のために他の場所で処理されうることである。
2つの個別的なコードモジュールの機能の一部または全てを、それらの間の「インターフェース」が形を変えるように結合することも実現可能である。例えば、図1Bおよび1Cの機能をそれぞれ図1Hおよび1Iに変換できる。図1Hにおいて、図1Bの先の第1および第2のコードセグメントを結合して、その両方を含むモジュールにする。この場合、コードセグメントは、まだ互いに通信しているが、単一モジュールにより好適な形に適合されうる。したがって、例えば、フォーマット呼出および復帰命令はもう必要ではないが、インターフェース、すなわちインターフェース1に準拠する処理または応答はまだ有効でありうる。同様に、図1Iに示されるように、図1CによるインターフェースI2の一部(または全て)をインターフェースI1にインラインで書き込んで、インターフェースI1’’を形成することができる。示されるように、インターフェースI2は、I2aとI2bに分割され、インターフェースI2aは、インターフェースI1によりインラインでコード化されて、インターフェースI1’’を形成する。具体的な例としては、第2のコードセグメントによって(入力の平方を計算するために)入力とともに通された値を処理した後で、平方結果を出力とともに戻すインターフェースI2によって受け取られる機能呼出平方(入力、出力)を実施する図1のインターフェイスI1を考える。そのような場合は、(入力を平方する)第2のコードセグメントによって実施された処理を、インターフェースに対する呼出を伴わずに第1のコードセグメントによって実施することができる。
1つのコードセグメントから他のコードセグメントへの通信は、通信を多数の個別的な通信に分割することによって間接的に達成されうる。これは、図1Jおよび1Kに概略的に示されている。図1Jに示されるように、コードの1つまたは複数の部分(機能および・またはインターフェース機能を本来のインターフェースから分離するため分離インターフェースである)は、第1のインターフェース、すなわちインターフェース1上の通信を変換して、それらを異なるインターフェース、この場合はインターフェース、すなわちインターフェース2A、インターフェース2Bおよびインターフェース2Cに適合させるように設けられる。これは、例えばインターフェース1プロトコルに従って所謂オペレーティングシステムと通信するように設計されたアプリケーションのベースがインストールされているが、その後オペレーティングシステムが、異なるインターフェース、この場合はインターフェース、すなわちインターフェース2A、インターフェース2Bおよびインターフェース2Cを使用するように変化される場合に実施されうる。ポイントは、第2のコードセグメントによって使用される本来のインターフェースが、第1のコードセグメントによって使用されるインターフェースと適合できなくなるように変化されるため、仲介物を使用して、古いインターフェースと新しいインターフェースを適合可能にすることである。同様に、図1Kに示されるように、第3のコードセグメントを分離インターフェースDI1とともに導入して、インターフェースI1からの通信を受け、分離インターフェースDI2とともに導入して、インターフェース機能を、例えば、DI2と協働するが、同じ機能結果を提供するように再設計されたインターフェースI2aおよびI2bに送信することが可能である。同様に、DI1およびDI2は協働して、図1CのインターフェースI1およびI2の機能を新たなオペレーティングシステムに合わせて翻訳しながら、同一または同様の機能的結果を提供することができる。
さらに他の可能な変形は、コードを動的に書き換えて、インターフェース機能を他の機能と交換するものであるが、それも同じ包括的結果を達成する。例えば、中間言語(例えばマイクロソフトIL、Java(登録商標)ByteCode等)が、実行環境(.NETフレームワークによって提供される環境、Java(登録商標)ルーチン環境、他の同様のルーチン型環境等)におけるジャストインタイム(JIT)コンパイラまたはインタプリタに提供される。第1のコードセグメントから第2のコードセグメントへの通信を動的に変換させ、すなわち第2のコードセグメント(本来の第2のコードセグメントまたは異なる第2のコードセグメント)が必要としうる異なるインターフェースにそれらを適合させるように、JITコンパイラを書き込むことができる。これは、図1Lおよび1Mに示されている。図1Lに見られるように、このアプローチは上記の分離シナリオに類似している。それは、例えば、インストールされたアプリケーションのベースが、インターフェース1のプロトコルに従ってオペレーティングシステムと通信するように設計されるが、後に異なるインターフェースを使用するようにオペレーティングシステムが変化される場合に実施されうる。JITコンパイラを使用して、インストールされたベースアプリケーションからの実行中の通信をオペレーティングシステムの新たなインターフェースに適合させることが可能である。図1Mに示されるように、動的にインターフェースを書き換えるこのアプローチを適用して、インターフェースを動的にファクタライズするか、あるいはインターフェースを変えることもできる。
ユーザは、スタイラスまたはペンを使用して、電子インクを作成する。インクは、さらなるプロセスが完了するまで待つのではなく、ユーザがインクを作成する時刻により近い時刻にインクを表示することを可能にするシステムによって処理される。
A)空中スタイラス入力イベントを入力マネージャ402の入力キューに追加する。
B)入力マネージャ402は、空中スタイラス入力をインク集合403に送る。
C)入力マネージャ402は、焦点変化が生じたかどうかを判断するための処理に向けて空中スタイラス入力を出力する。リアルタイムインキングオブジェクト404(リアルタイムスタイラスコントロールとも称する)にも通知される。リアルタイムインキングオブジェクト404は、何らかの必要なデータ(インク色等)を要求することができる。
D)空中スタイラスイベントは、通常の処理を続行し、インクオブジェクト特性を有する要素405に続く。
E)スタイラス「ダウン」イベントを受け取って、リアルタイムインキングオブジェクト405に送る。
F)リアルタイムインキングオブジェクト405は、点を受け取りながら描画する。これを動的描写と呼ぶことができる。
G)リアルタイムインキングオブジェクト405は、描画したイベントを入力マネージャ402に送って、ユーザインターフェーススレッドが利用可能になる後の時刻に送らせる。
H)筆画を集め、次いでインクプロジェクトに追加する。
I)該要素は、リアルタイムインキングオブジェクト405に、動的に描画された筆画を除去するように通知し、次いで新たな筆画を再描画する。この動作は、筆画毎に行ってもよいし、いくつかのインク筆画に対して適用してもよい。
J)全てのインキングが完了した後にインクを描写する。
図5は、様々な度合いで組み合わせることができる5つの部分を含む本発明の態様と併用することができる様々なオブジェクトを示す図である。以下の説明に用いられる様々な用語を以下に列記する。
a.リアルタイムスタイラス603は、プラグイン606〜608に通されたパケットデータの処理を終了する。
b.リアルタイムスタイラス603は、処理したデータを出力キュー605に記憶する。
c.リアルタイムスタイラス603は、入力キュー604に保留中のパケットデータが存在するかどうかを調べる。データが存在すれば、入力キューからのそのパケットを取り出し、上記の工程aで処理する。
d.リアルタイムスタイラス603は、ペンサービス601に保留中のパケットデータが存在するかどうかを調べる。存在すれば、ペンサービス601からのそのパケットデータを取り出し、上記の工程aで処理する。
e.このプロセスは、工程cで繰り返される。
a.リアルタイムスタイラスオブジェクト603は、まずその入力キュー604のプラグインデータオブジェクトを、次いでペンデータ流Bからのプラグインデータオブジェクトを調べる。
b.リアルタイムスタイラスオブジェクト603は、Cの1つのプラグインデータオブジェクトをその同期プラグイン集合におけるオブジェクト606〜608に送る。各同期プラグイン606〜608は、入力キュー604または出力キュー605にデータを追加することが可能である。
c.プラグインデータオブジェクトが同期プラグイン集合の全てのメンバーに送られると、プラグインデータオブジェクトをリアルタイムスタイラスオブジェクトの出力キュー605に配置する。
d.次いで、リアルタイムスタイラスオブジェクト603は、(入力キュー604またはデータ流Bからの)処理する次のプラグインデータオブジェクトを調べる。
e.リアルタイムスタイラスオブジェクトの出力キュー605がデータを含んでいうる間に、リアルタイムスタイラスオブジェクト603は、1つのプラグインデータオブジェクトを出力キュー605からその非同期プラグイン集合610〜611におけるオブジェクトに送る。各非同期プラグイン610〜611は、入力キュー604または出力キュー605にデータを追加することができる。しかし、非同期プラグインはUIスレッド上で実行できるため、キュー604/605に追加されたデータは、タブレットペンデータ流Bにおけるデータの残り、またはリアルタイムスタイラスオブジェクトの入力604および出力キュー605に対して、設定された関係を有さない。
a.第1のパケットからの通知を無視する。
b.データパケットが後続のプラグインに送られないように通知を吸収し、破棄する。
または、
c.(例えば、第2のプラグインがこれらのタイプのパケットに持つ関心の程度を示す特性を設定することによって)それが通知に関心がないことを明記する。ここで、それが、データパケットに関心がないことを明示すると、リアルタイムスタイラス構成要素は、第2のプラグインを省く。
a.キューパラメータが「入力」に設定されるときは、タブレットペンデータ流からの新たなデータの前に、カスタムデータをリアルタイムスタイラスオブジェクトの入力キューに追加し、同期プラグイン集合に送る。
b.キューパラメータが「出力」に設定されるときは、同期プラグイン集合によって現在処理されているデータの後に、カスタムデータをリアルタイムスタイラスオブジェクトの出力キューに追加する。
c.キューパラメータが「即時出力」に設定されるときは、同期プラグイン集合によって現在処理されているデータの前に、カスタムデータをリアルタイムスタイラスオブジェクトの出力キューに追加する。
a.1つの例示的なシナリオにおいて、ジェスチャを検出しているプラグインは、ジェスチャに応答して活動を行う役割を担うことができる。それは、筆画に関して何かを把握する必要はない。例えば、ウィンドウ内の「サークル」ジェスチャが、そのアプリケーションに対する「削除」を意味する場合は、ジェスチャを受け取るプラグインは、単にそのウィンドウに「削除」キー入力を送ることになる。この例示的なシナリオでは、インクがウィンドウに収集されないことがある。それは、テキストを含むウィンドウであってもよく、この場合、筆画データが単に通過して回収されないように、RTS枠組を構成することができる。したがって、プラグインは、筆画を保存する必要はない。
i.代替的な場合において、上記の「インタープレタ」プラグインは、ジェスチャが翻訳されたため、その筆画を持続しないことを下流のプラグインが把握するように、独自の通知を生成することができる。
b.他の例示的なシナリオにおいて、プラグインは、インク収集を行い、動作を編集することができる。この規範的な例は、全ての筆画が潜在的にジェスチャであり、それらがジェスチャとして扱われる場合は、筆画が実質的に削除されるインクコレクタオブジェクトのモード(インクおよびジェスチャモード)である。したがって、プラグインは、筆画がジェスチャとして翻訳されてしまった場合に、筆画を見つけて削除できるようにするために、筆画を保存する。
システムは、スタイラスデータを迅速かつ効率的に処理する能力を提供する。電子インクを真のインクのように挙動させるために、電子インクは、スタイラスの先端から、真のインクと同じくらい容易に流れるように見えることが必要である。インクの流れにおける小さな破損および遅れは、電子インク体験にとって有害である。電子インクが、スタイラスからスムースに流れるように見えるようにするための様々なアプローチを以下に記載する。「湿式」インクは、動的描写体が、インク収集後に、静的描写をどのくらい長く保持するかを制御する機能と見なされる。インクの寿命の管理を扱いやすくするために、通知(ここでは動的描写体キャッシュドデータと称する)を利用して、インク収集プラグインが、キャッシュド(または湿式)インクを動的描写体から解放することを可能にする。
a.動的描写体によって描写された筆画と一致する適正な相関筆画を作成する。
b.動的描写体筆画上に存在する描画属性を、描写される比較に適用する。
c.動的描写体1201に解除通知を送る。この通知は、動的描写体に関する方法を実行し、パラメータを通すことを含むことができる。
ジェスチャ認識は、ジェスチャが作られ、それが適切に処理されているかどうかを判断することを目的とする。例えば、ジェスチャレコグナイザ610は、デジタイザ入力を検出し、ジェスチャ認識結果を動的描写体608と同様の入力キューに挿入する役割を担う。図8Bは、同期および非同期プラグイン集合でジェスチャ認識をどのように実施できるかを説明する図である。その説明は、ジェスチャ認識オブジェクトの動作に対応している。
a.筆画情報を既存のレコグナイザオブジェクトに送り、「カスタムスタイラスデータをキューへ追加」法を用いて、その結果をペンデータ流に追加する。
b.カスタムプラグイン内で認識を行い、「カスタムスタイラスデータをキューへ追加」法を用いて、その結果をペンデータ流に追加する。
c.標準的なジェスチャレコグナイザプラグインを、デージチェーン様式で、その標準的なプラグインを呼び出すカスタムプラグインに重ねる。このように、デベロッパは、インエアパケットをパケットに、「カーソルインレンジ」を「スタイラスダウン」に、「カーソルアウトオブレンジ」を「スタイラスアップ」に翻訳することによって、インエアジェスチャ認識を実施することができる。
リアルタイムスタイラスインスタンスがインスタンス化されると、実行スレッドをインスタンス化することができる。実行スレッドを同期オブジェクトと非同期オブジェクトに分離することができる。同期オブジェクトは、一般には、ペンサービス構成要素から発するパケットと同期して動作する。非同期オブジェクトは、一般には、インク筆画、および/またはペンサービス構成要素から発する他のデータパケットと常に同期して実行されなくてもよいオブジェクトに分類される。これら2つのスレッドの分離は、動的描写体オブジェクトが、データパケットの受取りと同期してデータパケットを迅速に処理することを可能にし、まだ重要である間に、オリジナルデータパケットを受け取ってからわずかな遅れで正確に処理することができる他のプラグインオブジェクトを可能にする。
リアルタイムスタイラスインスタンスは、多くの面で、拡張性および方策を包含するスレッドホストである。図13は、どのようにして多数の同期スレッドがともに機能できるかの例を示す図である。ジェスチャレコグナイザを位置1304の同期スレッド上に配置してもよいし、位置1313の同期スレッド上に配置してもよい。
1.リアルタイムスタイラスを非同期プラグインの集合に追加するときは、システムは、他の非同期プラグインインターフェースを追加できるように関係を制限することができる。
2.様々な数のリアルタイムスタイラスオブジェクトを多次元に沿って縦続できる。例えば、多数の「リアルタイムスタイラス」オブジェクトを単一の「親」リアルタイムスタイラスに直接接続するか、あるいは多数の「リアルタイムスタイラス」を、各々が隣に縦続するように直列に接続するか。あるいは「リアルタイムスタイラス」オブジェクトを上記の構成の組合せで接続することが可能である。実行者は、簡潔性または信頼性に応じてこれらの組合せを限定するように選択することが可能である。
3.同一のリアルタイムスタイラスを多数の親リアルタイムスタイラスから多数の非同期プラグインの集合体に追加するときは、縦続リアルタイムスタイラスは、通常通り機能できる。あるいは、縦続(子)リアルタイムスタイラスインスタンスは、機能を停止し、「エラーデータ」オブジェクトをキューに挿入することができる。「エラーデータ」オブジェクトは、データにエラーがあるか、または前のプラグインが、データを処理している間にエラーに遭遇したことを下流のオブジェクトに示す指標でありうる。勿論、これは、エラーを処理する1つのアプローチにすぎない。他のアプローチを用いてもよい。
性能便益のために、リアルタイムスタイラスを使用不可とし、次いで再度使用可能とすることなしに、リアルタイムスタイラス上の同期および非同期集合を修正できる。したがって、リアルタイムスタイラスの範囲で実施される「使用可能」または「使用不可」動作が存在する保証はない。
・プラグインを使用可能リアルタイムスタイラスインスタンスに追加するときは、人工的な「リアルタイムスタイラスイネーブルド」呼出をこのプラグインに対して行うことができる。
・プラグインを使用不可リアルタイムスタイラスインスタンスに追加するときは、何も行われない。
・プラグインを使用可能リアルタイムスタイラスインスタンスから除去するときは、人工的な「リアルタイムスタイラスディスエーブルド」呼出をこのプラグインに対して行うことができる。
・プラグインを使用不可リアルタイムスタイラスインスタンスから除去するときは、何も行われない。
設計時
開発環境にある間は(例えばマイクロソフトコーポレーションによるVisual Studio.NET)、デベロッパは、トライキャッチでキャッチされるか否かにかかわらず生じる任意の例外で中断することがある。したがって、エラー報告は、「リアルタイムスタイラス」枠組の無効な構成を検出することを目的として、端的なものとなる。
エラー報告/伝搬の問題は、リアルタイムスタイラスおよび同期プラグインが、UIスレッド(アプリケーションスレッド)と異なるリアルタイムスタイラススレッド(インクスレッド)上で実行されているため、実行時エラーの場合は困難になる。同期プラグインが例外を生じるのであれば、それをリアルタイムスタイラスでキャッチすることが可能であるが、例外は、リアルタイムスタイラススレッド(インクスレッド)上に存在し、制御フローの起源はリアルタイムスタイラスであるため、リアルタイムスタイラス以外に行くところはない。エラーをユーザインターフェーススレッドに伝搬し、クライアントコードが優雅にエラーに対処することを可能にすることは困難であるといえる。以下に解決策を記載する。
a.例外が、同期または非同期プラグインに対するインターフェース上でエラー方法に生じた場合は、例外発生プラグインへの呼び戻しによる無限のループを回避するために、エラーデータオブジェクトを作成しない。
i.代替的なアプローチは、例外を生じた実際のデータの前に、エラーデータオブジェクトをすぐに集合における残りのプラグインに通すことである。
b.同期または非同期プラグイン法に対するインターフェース上で他の方法に例外が生じた場合は、まず例外発生プラグインにエラーデータオブジェクトをすぐに送り、次いで、例外を生じた実際のデータの前に、集合における残りのプラグインに通すことができる。
c.例外が同期プラグインに生じた場合は、エラーデータを最終的に出力キューに入れ、または非同期プラグインに送る。
d.エラーデータが集合を通った後に、例外を生じたデータが、集合における残りのプラグインを通る。
図16は、本発明の態様を挿入する様々なアプローチを示す図である。該システムは、C#管理オブジェクトの集合によって包まれたCOMオブジェクトを含むことができる。あるいは、Java(登録商標)、C++等を含む任意のオブジェクト指向言語を使用してもよい。
a.第1に、デベロッパは、管理非同期プラグイン1612および管理動的描写体1615をインスタンス化する。内的には、動的描写体1615は、特性設定を下に送るために、非管理動的描写体をインスタンス化する。
b.第2に、デベロッパは、動的描写体1615に特性を設定する(描画属性等)。
c.第3に、デベロッパは、リアルタイムスタイラス1602をインスタンス化して、リアルタイムスタイラスコンストラクタにおける動的描写体1615を処理する。いくつかの事柄が発生しうる。
i.管理リアルタイムスタイラス1605は、(公用密封アクセス機構を介して)非管理動的描写体1608のアドレスを問い合わせる。
ii.管理リアルタイムスタイラスは、それ自体をペンサービス1601にフックするネイティブリアルタイムスタイラス1602をインスタンス化する。
iii.管理リアルタイムスタイラス1605は、リアルタイムスタイラスイベントシンクとして、それ自体をネイティブリアルタイムスタイラス1602にフックする。
iv.管理リアルタイムスタイラス1605は、ネイティブ動的描写体1608をその同期出力にフックする。
v.管理リアルタイムスタイラス1605は、それ自体をネイティブリアルタイムスタイラス1602の同期プラグインスレッドにフックする。
d.第4に、デベロッパは、場合によっては管理ジェスチャレコグナイザ1609を含む1つまたは複数の管理同期および/または非同期プラグインオブジェクトをインスタンス化する。
e.第5に、デベロッパは、管理プラグインオブジェクトを集めて、様々なプラグイン集合にする(これは、プラグインにアクセスする順番を「リアルタイムスタイラス」構成要素に通知することによって実施できる。あるいは、プラグインを互いに連鎖させるために、特性を設定し、ここでは第1のプラグインを参照することができる)。
f.第6に、デベロッパは、管理非同期プラグインオブジェクト1612を管理リアルタイムスタイラス1605の「インク集合オブジェクト」特性に対応づける(したがって、非同期プラグインオブジェクト1612を非同期プラグイン集合にフックする)。
g.第7に、デベロッパは、「RTS.イネーブルド」を「真」に設定する。これにより、管理リアルタイムスタイラス1605に、ネイティブリアルタイムスタイラス1602上で「Iリアルタイムスタイラス−>イネーブルド」を「真」に設定させることもできる。
h.第8に、イベントが、リアルタイムスタイラス1602を流れ始める。
a.ペンサービス1601は、RTS1602上に機能を呼びだし、「リアルタイムスタイラス」構成要素1602に対応づけられた同期プラグイン集合に蓄積されるデータを送る。場合によっては、入力キュー1603からのデータをプラグイン集合に送り込むこともできる。
i.パケットをデジタイザ空間からHIMETRIC(「インク空間」)に変換する。
ii.逆変換(HIMETRIC→デジタイザ)をパケットデータに埋め込む。
iii.データに対する適切な機能を同期プラグイン集合インターフェース(この場合は管理RTS)上に呼び出すことによって、変換されたパケットデータをプラグイン集合の第1の同期プラグインに送り込む。
i.適切な管理データ構造を作成して、管理に適した様式でデータを保持する。
ii.収集された管理同期プラグイン上に適切な機能を呼び出す。
iii.各プラグインがデータを処理し、次のプラグインを呼び出すことができるように「リアルタイムスタイラス」構成要素1605を戻すことを確認する。
iv.ジェスチャレコグナイザ1609上に対応する機能を呼び出すまで繰り返す(ジェスチャレコグナイザ1609が使用される場合)。
i.この動作は、どのジェスチャが認識されたかに関する情報、およびどれだけの筆画が可能なジェスチャの各々に対応するかに関する情報を戻す。
ii.次いで、ジェスチャレコグナイザ1609は、(「即時」が偽に設定された)管理RTS1605上で「ユーザデータをキューに追加」法を用いて、ジェスチャ認識の結果を非同期的消費のためにキュー1604に入れる(これにより、新たなジェスチャデータが、すぐにインターオペラビリティ境界(またはインターオプ)を横切り、ネイティブプラグイン集合が完成するまで他のキューにとどまる)。
iii.また、従来的な管理イベントをあらゆる聞き手に発して、今ジェスチャが行われたことをリアルタイムで世界に通知する。
iv.次いで、ジェスチャレコグナイザ1609によって現行のデータをプラグイン集合におけるあらゆる追加的プラグインに対する「リアルタイムスタイラス」構成要素1605に戻す。
イベントシンクハンドラ、およびそれらに伴う情報を以下に列記する。
・ソースIリアルタイムペン
このバックポインタは、イベントシンク実装に原始「リアルタイムスタイラス」へのバックリファレンスを与える。このポインタは、2つのこと、すなわち(a)スタイラスインスタンスに関するコンテキスト情報にアクセスすること(例えば、動的描写体1615は、デジタイザ座標と画素の間で単位変換ができることが必要である)、および(b)多数のRTSイベントチェーンの間で共用することを可能にする。
・タブレットコンテキストID
リアルタイムデータの消費者が、効率的にデータを蓄積し、タブレットIDをデータ集合における指標として用いることを可能にする。
・パケットデスクリプション
パケット呼出におけるデータのレイアウトを描く。異なるデジタイザが、(例えば)x、y、圧力、角度を含む異なる量の情報をサポートする。「パケットデスクリプション」は、パケットの受取側に、最終的に到達する整数の平坦なアレイにどのようにしてデータを配置するかを示す。
・カーソルID
リアルタイムデータの消費者が、効率的にデータを蓄積し、カーソルIDをデータ集合における指標として用いることを可能にする。
・スタイラスインフォ
タブレットコンテキストIDと、カーソルIDと、反転状態(これは、関連性、およびカーソルがペンの「消しゴム」端に対応するか、「執筆」端に対応するかを示す3値状態である)と、ボタン状態(32までのボタンの各々が押されるかどうか)と、必要に応じて他の関連情報とを含む便利な情報を集約した単純な構造。
・プロパティカウントパーパケット
デベロッパが、API呼出を用いずにパケットデータのレイアウトを推定することを可能にする妥協パラメータ。(X、Y)は、第1になり、その順番になるように保証され、カウントは、xyデータのみに関心を持つデベロッパが、あらゆるn番目の要素を飛ばしながらリストを閲覧することを可能にする。
・カウントオブパケット
効率のために「結束された」パケットの数(ペンサービスおよび/またはデジタイザデバイスドライバは、いつ、そしてどれだけのパケットがこのようにして束ねられるかを判断する)。
・パケットデータ
これは、パケットデータの読取り専用コピーである。
・カウントオブパケットレフ
プラグインデベロッパが割り当てることができる修正パケットデータ集合におけるパケットの数。
・パケットデータレフ
これは、リアルタイムデータ操作を含むシナリオを達成するために、パケットデータを修正する機能をプラグインオブジェクトのデベロッパに与えるパケットデータのリファレンスである。
図17Aに示すように、同期を確保するために、どのようにしてデータをキューに追加できるかを以下に説明する。
a.イベントがダウン「パケット」イベントであるかどうかを調べる。そうでない場合は、処理を停止し、ナルに戻る。
b.イベントが、そのキャッシュドレイアウト情報に基づいて、インキング要素上に存在したかどうかを調べる。そうでない場合は、処理を停止し、ナルに戻る。
c.このパケットは、インキング部の内部の「ダウン」イベントに対するものであるため、増進的に筆画を描く。
d.最後に、その要素上に筆画が描かれたペン入力マネージャ1807/1808に戻る。
本発明の態様によって使用できる様々なアプリケーションプログラミングインターフェースの概要を以下に提示する。
a.「Iスタイラス非同期プラグイン」インターフェースを実装する形式を作成する。
b.その形式上にコントロールに接続されたリアルタイムスタイラスオブジェクトを作成する。
c.その形式が関与するデータに関する形式の特性(例えばデータ対象特性)において、表面に接触するスタイラスに関する通知(スタイラスダウンイベント)、データパケット、およびスタイラスアップ(例えばスタイラスアップイベント)通知に関与するようにその形式を設定する。
d.その形式の「Iスタイラス非同期プラグインス.タイラスダウン」、「Iスタイラス非同期プラグイン.パケット」および「Iスタイラス非同期プラグイン.スタイラスアップ」法において、その形式のリアルタイムスタイラスオブジェクトから送られるスタイラスダウン、パケットおよびスタイラスアップ通知を処理するためのコードを追加する。
Claims (5)
- 構成要素に接続されるような動的描写オブジェクトを使用してコンピュータにインクを描写させる方法であって、前記同期描写オブジェクトは、インターフェースを有し、前記構成要素は、入力インターフェース、同期インターフェース、および非同期インターフェースを有し、前記方法は、
どのようにしてデータを処理するかを指示する前記構成要素からインクを受け取る工程であって、前記インクは、前記構成要素の前記同期インターフェースに接続される前記動的描写オブジェクトのインターフェースを介して受け取られる工程と、
表示装置の後続の表示のために前記インクを描写する工程であって、前記描写は、前記インクを前記コンピュータが受け取ることに同期して発生する工程と、
前記動的描写オブジェクトから前記インクを伝送して、描写された前記インクを一時的にキャッシュする工程と、
別の描写オブジェクトから通知を受け取る工程であって、前記別の描写オブジェクトは、前記構成要素の前記非同期インターフェースに接続されており、前記通知は、前記動的描写オブジェクトに前記別の描写オブジェクトが前記構成要素から前記インクに関する情報を受け取ったことを示す工程と、
前記通知に応答して、描写された前記インクのキャッシュをクリアする工程と
を含むことを特徴とする方法。 - 前記描写工程は、スタイラスから流れる連続的なインクの概観をユーザに提示することを特徴とする請求項1に記載の方法。
- 前記動的描写オブジェクトは、前記構成要素に接続された同期プラグイン集合の一部であることを特徴とする請求項1に記載の方法。
- 前記描写オブジェクトに接続された追加オブジェクトにデータを送る工程をさらに含むことを特徴とする請求項1に記載の方法。
- 請求項1乃至4の何れかに記載の方法を実行するためのプログラムを格納したコンピュータ可読媒体。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US51359103P | 2003-10-24 | 2003-10-24 | |
US60/513,591 | 2003-10-24 | ||
US10/879,527 US7436535B2 (en) | 2003-10-24 | 2004-06-30 | Real-time inking |
US10/879,527 | 2004-06-30 | ||
PCT/US2004/024194 WO2005045574A2 (en) | 2003-10-24 | 2004-07-28 | Real-time inking |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2007509413A JP2007509413A (ja) | 2007-04-12 |
JP4698599B2 true JP4698599B2 (ja) | 2011-06-08 |
Family
ID=34526880
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006536576A Expired - Fee Related JP4698599B2 (ja) | 2003-10-24 | 2004-07-28 | リアルタイムインキング |
Country Status (13)
Country | Link |
---|---|
US (17) | US7436535B2 (ja) |
EP (1) | EP1676185A4 (ja) |
JP (1) | JP4698599B2 (ja) |
KR (1) | KR101085730B1 (ja) |
CN (1) | CN1795453B (ja) |
AU (1) | AU2004287136B2 (ja) |
BR (1) | BRPI0406514A (ja) |
CA (1) | CA2511395C (ja) |
MX (1) | MXPA05007085A (ja) |
MY (1) | MY139593A (ja) |
RU (1) | RU2392655C2 (ja) |
TW (1) | TWI374368B (ja) |
WO (1) | WO2005045574A2 (ja) |
Families Citing this family (118)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8352400B2 (en) | 1991-12-23 | 2013-01-08 | Hoffberg Steven M | Adaptive pattern recognition based controller apparatus and method and human-factored interface therefore |
US7904187B2 (en) | 1999-02-01 | 2011-03-08 | Hoffberg Steven M | Internet appliance system and method |
US9047047B2 (en) * | 2010-10-01 | 2015-06-02 | Z124 | Allowing multiple orientations in dual screen view |
US7262785B2 (en) * | 2003-08-21 | 2007-08-28 | Microsoft Corporation | Ink editing architecture |
CN100481062C (zh) * | 2003-08-21 | 2009-04-22 | 微软公司 | 墨水收集和再现 |
US7436535B2 (en) * | 2003-10-24 | 2008-10-14 | Microsoft Corporation | Real-time inking |
US7427984B2 (en) * | 2003-10-26 | 2008-09-23 | Microsoft Corporation | Point erasing |
US7978716B2 (en) | 2003-11-24 | 2011-07-12 | Citrix Systems, Inc. | Systems and methods for providing a VPN solution |
US8060743B2 (en) * | 2003-11-14 | 2011-11-15 | Certicom Corp. | Cryptographic method and apparatus |
US7757074B2 (en) | 2004-06-30 | 2010-07-13 | Citrix Application Networking, Llc | System and method for establishing a virtual private network |
US8495305B2 (en) | 2004-06-30 | 2013-07-23 | Citrix Systems, Inc. | Method and device for performing caching of dynamically generated objects in a data communication network |
US8739274B2 (en) | 2004-06-30 | 2014-05-27 | Citrix Systems, Inc. | Method and device for performing integrated caching in a data communication network |
US8046830B2 (en) | 2004-07-23 | 2011-10-25 | Citrix Systems, Inc. | Systems and methods for network disruption shielding techniques |
AU2005266945A1 (en) | 2004-07-23 | 2006-02-02 | Citrix Systems, Inc. | A method and systems for securing remote access to private networks |
US7761814B2 (en) * | 2004-09-13 | 2010-07-20 | Microsoft Corporation | Flick gesture |
US7810089B2 (en) | 2004-12-30 | 2010-10-05 | Citrix Systems, Inc. | Systems and methods for automatic installation and execution of a client-side acceleration program |
US8954595B2 (en) | 2004-12-30 | 2015-02-10 | Citrix Systems, Inc. | Systems and methods for providing client-side accelerated access to remote applications via TCP buffering |
US8700695B2 (en) | 2004-12-30 | 2014-04-15 | Citrix Systems, Inc. | Systems and methods for providing client-side accelerated access to remote applications via TCP pooling |
US8706877B2 (en) | 2004-12-30 | 2014-04-22 | Citrix Systems, Inc. | Systems and methods for providing client-side dynamic redirection to bypass an intermediary |
US8549149B2 (en) * | 2004-12-30 | 2013-10-01 | Citrix Systems, Inc. | Systems and methods for providing client-side accelerated access to remote applications via TCP multiplexing |
US8255456B2 (en) | 2005-12-30 | 2012-08-28 | Citrix Systems, Inc. | System and method for performing flash caching of dynamically generated objects in a data communication network |
EP1851750A4 (en) | 2005-02-08 | 2010-08-25 | Oblong Ind Inc | SYSTEM AND METHOD FOR CONTROL SYSTEM BASED ON GESTURES |
US8020084B2 (en) | 2005-07-01 | 2011-09-13 | Microsoft Corporation | Synchronization aspects of interactive multimedia presentation management |
US8305398B2 (en) | 2005-07-01 | 2012-11-06 | Microsoft Corporation | Rendering and compositing multiple applications in an interactive media environment |
US8656268B2 (en) | 2005-07-01 | 2014-02-18 | Microsoft Corporation | Queueing events in an interactive media environment |
US7721308B2 (en) | 2005-07-01 | 2010-05-18 | Microsoft Corproation | Synchronization aspects of interactive multimedia presentation management |
US20070006062A1 (en) * | 2005-07-01 | 2007-01-04 | Microsoft Corporation | Synchronization aspects of interactive multimedia presentation management |
US8799757B2 (en) * | 2005-07-01 | 2014-08-05 | Microsoft Corporation | Synchronization aspects of interactive multimedia presentation management |
US8108787B2 (en) * | 2005-07-01 | 2012-01-31 | Microsoft Corporation | Distributing input events to multiple applications in an interactive media environment |
US7941522B2 (en) * | 2005-07-01 | 2011-05-10 | Microsoft Corporation | Application security in an interactive media environment |
CN101495990B (zh) * | 2005-12-02 | 2011-09-14 | 思杰系统有限公司 | 用于提供从代理服务器到虚拟计算环境的身份验证证明以访问远程资源的方法和设备 |
US8301839B2 (en) | 2005-12-30 | 2012-10-30 | Citrix Systems, Inc. | System and method for performing granular invalidation of cached dynamically generated objects in a data communication network |
US7921184B2 (en) | 2005-12-30 | 2011-04-05 | Citrix Systems, Inc. | System and method for performing flash crowd caching of dynamically generated objects in a data communication network |
US7378966B2 (en) * | 2006-01-04 | 2008-05-27 | Microsoft Corporation | RFID device groups |
US7486282B2 (en) * | 2006-01-27 | 2009-02-03 | Microsoft Corporation | Size variant pressure eraser |
US8370383B2 (en) | 2006-02-08 | 2013-02-05 | Oblong Industries, Inc. | Multi-process interactive systems and methods |
US9910497B2 (en) | 2006-02-08 | 2018-03-06 | Oblong Industries, Inc. | Gestural control of autonomous and semi-autonomous systems |
US8531396B2 (en) | 2006-02-08 | 2013-09-10 | Oblong Industries, Inc. | Control system for navigating a principal dimension of a data space |
US8537111B2 (en) | 2006-02-08 | 2013-09-17 | Oblong Industries, Inc. | Control system for navigating a principal dimension of a data space |
US9823747B2 (en) | 2006-02-08 | 2017-11-21 | Oblong Industries, Inc. | Spatial, multi-modal control device for use with spatial operating system |
US8207822B2 (en) * | 2006-06-15 | 2012-06-26 | Microsoft Corporation | Support for batching of events, and shredding of batched events in the RFID infrastructure platform |
US20080001711A1 (en) * | 2006-06-15 | 2008-01-03 | Microsoft Corporation | Reliability of execution for device provider implementations |
US7956724B2 (en) * | 2006-06-15 | 2011-06-07 | Microsoft Corporation | Support for reliable end to end messaging of tags in an RFID infrastructure |
US7903094B2 (en) * | 2006-06-23 | 2011-03-08 | Wacom Co., Ltd | Information processing apparatus, operation input method, and sensing device |
US20080174404A1 (en) * | 2007-01-23 | 2008-07-24 | Microsoft Corporation | Dynamic updates in rfid manager |
US8245219B2 (en) * | 2007-01-25 | 2012-08-14 | Microsoft Corporation | Standardized mechanism for firmware upgrades of RFID devices |
JP4866262B2 (ja) * | 2007-02-16 | 2012-02-01 | ソフトバンクモバイル株式会社 | 操作入力処理方法及び携帯型情報処理装置 |
JP5905662B2 (ja) | 2007-04-24 | 2016-04-20 | オブロング・インダストリーズ・インコーポレーテッド | プロテイン、プール、およびスロークス処理環境 |
US20080271007A1 (en) * | 2007-04-30 | 2008-10-30 | Bea Systems, Inc. | System and method for managed tuxedo wrapper for .net applications |
US20080313607A1 (en) * | 2007-06-15 | 2008-12-18 | Microsoft Corporation | Unified input stack |
US20090027398A1 (en) * | 2007-07-26 | 2009-01-29 | Tufts University | Method for recognizing a shape from a path of a digitizing device |
US8291393B2 (en) * | 2007-08-20 | 2012-10-16 | International Business Machines Corporation | Just-in-time compiler support for interruptible code |
US20090144752A1 (en) * | 2007-11-30 | 2009-06-04 | Microsoft Corporation | Unmanaged-to-managed aggregation |
US8245145B1 (en) * | 2007-12-18 | 2012-08-14 | Eakin Douglas M | Tool and method for developing a web page |
US20090157848A1 (en) * | 2007-12-18 | 2009-06-18 | Western Digital Technologies, Inc. | Application server processing tcp/ip requests from a client by invoking an asynchronous function |
EP2245536B1 (en) | 2008-01-27 | 2018-10-24 | Citrix Systems, Inc. | Methods and systems for remoting three dimensional graphics |
US8390579B2 (en) * | 2008-03-14 | 2013-03-05 | France Telecom | System for classifying gestures |
US9684380B2 (en) | 2009-04-02 | 2017-06-20 | Oblong Industries, Inc. | Operating environment with gestural control and multiple client devices, displays, and users |
US9740922B2 (en) | 2008-04-24 | 2017-08-22 | Oblong Industries, Inc. | Adaptive tracking system for spatial input devices |
US9740293B2 (en) | 2009-04-02 | 2017-08-22 | Oblong Industries, Inc. | Operating environment with gestural control and multiple client devices, displays, and users |
US10642364B2 (en) | 2009-04-02 | 2020-05-05 | Oblong Industries, Inc. | Processing tracking and recognition data in gestural recognition systems |
US8723795B2 (en) | 2008-04-24 | 2014-05-13 | Oblong Industries, Inc. | Detecting, representing, and interpreting three-space input: gestural continuum subsuming freespace, proximal, and surface-contact modes |
US9952673B2 (en) | 2009-04-02 | 2018-04-24 | Oblong Industries, Inc. | Operating environment comprising multiple client devices, multiple displays, multiple users, and gestural control |
US9495013B2 (en) | 2008-04-24 | 2016-11-15 | Oblong Industries, Inc. | Multi-modal gestural interface |
EP2164026A1 (en) * | 2008-09-15 | 2010-03-17 | Alcatel, Lucent | Gesture service platform |
WO2010045394A1 (en) * | 2008-10-14 | 2010-04-22 | Oblong Industries, Inc. | Multi-process interactive systems and methods |
US8149431B2 (en) * | 2008-11-07 | 2012-04-03 | Citrix Systems, Inc. | Systems and methods for managing printer settings in a networked computing environment |
US20100131921A1 (en) * | 2008-11-25 | 2010-05-27 | Microsoft Corporation | Exposing asynchronous mechanisms as first-class events |
US20100131743A1 (en) * | 2008-11-25 | 2010-05-27 | Microsoft Corporation | Lazy and stateless events |
US20100131556A1 (en) * | 2008-11-25 | 2010-05-27 | Microsoft Corporation | Unified event programming and queries |
US20100131745A1 (en) * | 2008-11-25 | 2010-05-27 | Microsoft Corporation | Exceptional events |
US10019081B2 (en) * | 2009-01-15 | 2018-07-10 | International Business Machines Corporation | Functionality switching in pointer input devices |
US9317128B2 (en) | 2009-04-02 | 2016-04-19 | Oblong Industries, Inc. | Remote devices used in a markerless installation of a spatial operating environment incorporating gestural control |
US10824238B2 (en) | 2009-04-02 | 2020-11-03 | Oblong Industries, Inc. | Operating environment with gestural control and multiple client devices, displays, and users |
US20110029904A1 (en) * | 2009-07-30 | 2011-02-03 | Adam Miles Smith | Behavior and Appearance of Touch-Optimized User Interface Elements for Controlling Computer Function |
US8751844B2 (en) * | 2009-09-24 | 2014-06-10 | Citrix Systems, Inc. | Systems and methods for attributing an amount of power consumption to a workload |
US9971807B2 (en) | 2009-10-14 | 2018-05-15 | Oblong Industries, Inc. | Multi-process interactive systems and methods |
US9933852B2 (en) | 2009-10-14 | 2018-04-03 | Oblong Industries, Inc. | Multi-process interactive systems and methods |
US8847961B2 (en) * | 2010-06-14 | 2014-09-30 | Microsoft Corporation | Geometry, speed, pressure, and anti-aliasing for ink rendering |
US9189147B2 (en) | 2010-06-22 | 2015-11-17 | Microsoft Technology Licensing, Llc | Ink lag compensation techniques |
US8970870B2 (en) * | 2010-06-30 | 2015-03-03 | Canon Kabushiki Kaisha | Delivery of scan services over a device service port |
US9069459B2 (en) | 2011-05-03 | 2015-06-30 | Microsoft Technology Licensing, Llc | Multi-threaded conditional processing of user interactions for gesture processing using rendering thread or gesture processing thread based on threshold latency |
DE102011053214A1 (de) * | 2011-09-02 | 2013-03-07 | Claas Selbstfahrende Erntemaschinen Gmbh | Landwirtschaftliche Erntemaschine |
US8952926B2 (en) | 2011-10-17 | 2015-02-10 | Topaz Systems, Inc. | Digitizer |
US8994686B2 (en) | 2011-10-17 | 2015-03-31 | Topaz Systems, Inc. | Digitizer |
US9052796B2 (en) | 2012-01-08 | 2015-06-09 | Microsoft Technology Licensing Llc | Asynchronous handling of an input stream dedicated to multiple targets |
US9537899B2 (en) | 2012-02-29 | 2017-01-03 | Microsoft Technology Licensing, Llc | Dynamic selection of security protocol |
TWI498778B (zh) * | 2012-03-19 | 2015-09-01 | Wistron Corp | 校正不同觸控系統的方法 |
WO2013151587A1 (en) * | 2012-04-06 | 2013-10-10 | Topaz Systems, Inc. | Digitizer |
US9180262B2 (en) | 2012-05-15 | 2015-11-10 | JettStream, Inc. | Delivery of nebulized medicines |
US9389717B2 (en) * | 2012-12-14 | 2016-07-12 | Microsoft Technology Licensing, Llc | Reducing latency in ink rendering |
US20160195975A1 (en) * | 2012-12-23 | 2016-07-07 | Microsoft Technology Licensing, Llc | Touchscreen computing device and method |
US20140253462A1 (en) * | 2013-03-11 | 2014-09-11 | Barnesandnoble.Com Llc | Sync system for storing/restoring stylus customizations |
US20140372903A1 (en) * | 2013-06-14 | 2014-12-18 | Microsoft Corporation | Independent Hit Testing for Touchpad Manipulations and Double-Tap Zooming |
US9535646B2 (en) * | 2013-06-18 | 2017-01-03 | Microsoft Technology Licensing, Llc | Methods and systems for electronic ink projection |
US9433736B2 (en) | 2013-07-03 | 2016-09-06 | JettStream, Inc. | Positionable elongated members with multi-axis joints |
US9360956B2 (en) | 2013-10-28 | 2016-06-07 | Microsoft Technology Licensing, Llc | Wet ink texture engine for reduced lag digital inking |
BR112016009938B1 (pt) * | 2013-11-19 | 2022-01-25 | Wacom Co., Ltd | Métodos de geração de dados de tinta e de desenho para renderização de dados de imagem |
WO2015141260A1 (ja) * | 2014-03-17 | 2015-09-24 | 株式会社河合楽器製作所 | 手書き音楽記号認識装置およびプログラム |
US9990046B2 (en) | 2014-03-17 | 2018-06-05 | Oblong Industries, Inc. | Visual collaboration interface |
US9633466B2 (en) * | 2014-09-29 | 2017-04-25 | Microsoft Technology Licensing, Llc | Low latency ink rendering pipeline |
US20160210038A1 (en) * | 2015-01-21 | 2016-07-21 | Microsoft Technology Licensing, Llc | Electronic inking |
US10225676B2 (en) * | 2015-02-06 | 2019-03-05 | Dolby Laboratories Licensing Corporation | Hybrid, priority-based rendering system and method for adaptive audio |
US10089291B2 (en) | 2015-02-27 | 2018-10-02 | Microsoft Technology Licensing, Llc | Ink stroke editing and manipulation |
US9950542B2 (en) * | 2015-03-12 | 2018-04-24 | Microsoft Technology Licensing, Llc | Processing digital ink input subject to monitoring and intervention by an application program |
US9898841B2 (en) | 2015-06-29 | 2018-02-20 | Microsoft Technology Licensing, Llc | Synchronizing digital ink stroke rendering |
JP6589469B2 (ja) | 2015-09-04 | 2019-10-16 | カシオ計算機株式会社 | 描画装置及び描画装置の描画方法 |
US20170236318A1 (en) * | 2016-02-15 | 2017-08-17 | Microsoft Technology Licensing, Llc | Animated Digital Ink |
JP6701853B2 (ja) * | 2016-03-18 | 2020-05-27 | カシオ計算機株式会社 | 描画装置及び描画装置の描画方法 |
US9996511B2 (en) * | 2016-03-23 | 2018-06-12 | International Business Machines Corporation | Free form website structure design |
US10146759B2 (en) * | 2016-03-24 | 2018-12-04 | Microsoft Technology Licensing, Llc | Controlling digital input |
US11029836B2 (en) * | 2016-03-25 | 2021-06-08 | Microsoft Technology Licensing, Llc | Cross-platform interactivity architecture |
US10529302B2 (en) | 2016-07-07 | 2020-01-07 | Oblong Industries, Inc. | Spatially mediated augmentations of and interactions among distinct devices and applications via extended pixel manifold |
US11360702B2 (en) | 2017-12-11 | 2022-06-14 | Hewlett-Packard Development Company, L.P. | Controller event queues |
CN111625303B (zh) * | 2019-02-27 | 2023-06-09 | 阿里巴巴集团控股有限公司 | 事件处理方法、装置、设备及可读存储介质 |
US20220391084A1 (en) * | 2019-09-25 | 2022-12-08 | Zhangyue Technology Co., Ltd | Information display method, reader, computer storage medium, ink screen reading device and screen projection display system |
CN112802133B (zh) * | 2021-04-13 | 2021-07-06 | 武汉精测电子集团股份有限公司 | 一种基于机器视觉的Mini Led显示屏单元板墨色检测分选方法 |
US20240094896A1 (en) * | 2022-09-19 | 2024-03-21 | Microsoft Technology Licensing, Llc | Locally generating preliminary inking imagery |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04326488A (ja) * | 1991-04-19 | 1992-11-16 | Internatl Business Mach Corp <Ibm> | データ入力方法及び装置 |
US20030025675A1 (en) * | 2001-08-01 | 2003-02-06 | Bodin Dresevic | Dynamic rendering of ink strokes with transparency |
JP2003141100A (ja) * | 2001-06-28 | 2003-05-16 | Microsoft Corp | デジタルインクを表現し、表示するためのコンピュータ読取可能媒体およびコンピュータシステム |
JP2003216324A (ja) * | 2002-01-17 | 2003-07-31 | Hitachi Information Technology Co Ltd | 入力システム |
JP2003228718A (ja) * | 2002-01-25 | 2003-08-15 | Xerox Corp | ビットマップ化イメージを構造化テキスト/図形エディタで利用すべく変換する方法および装置 |
JP2003288607A (ja) * | 2002-01-25 | 2003-10-10 | Xerox Corp | デジタルインクイメージを構造化テキスト/図形エディタで利用すべく変換する方法および装置 |
Family Cites Families (43)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0566293B1 (en) | 1992-04-15 | 2003-07-16 | Xerox Corporation | Graphical drawing and editing systems and methods therefor |
US5710831A (en) * | 1993-07-30 | 1998-01-20 | Apple Computer, Inc. | Method for correcting handwriting on a pen-based computer |
US5500937A (en) * | 1993-09-08 | 1996-03-19 | Apple Computer, Inc. | Method and apparatus for editing an inked object while simultaneously displaying its recognized object |
US5534893A (en) * | 1993-12-15 | 1996-07-09 | Apple Computer, Inc. | Method and apparatus for using stylus-tablet input in a computer system |
US5768607A (en) | 1994-09-30 | 1998-06-16 | Intel Corporation | Method and apparatus for freehand annotation and drawings incorporating sound and for compressing and synchronizing sound |
US5802388A (en) * | 1995-05-04 | 1998-09-01 | Ibm Corporation | System and method for correction and confirmation dialog for hand printed character input to a data processing system |
US6268859B1 (en) * | 1995-06-06 | 2001-07-31 | Apple Computer, Inc. | Method and system for rendering overlapping opaque graphical objects in graphic imaging systems |
US5920688A (en) * | 1995-11-13 | 1999-07-06 | International Business Machines Corporation | Method and operating system for manipulating the orientation of an output image of a data processing system |
US5782539A (en) * | 1995-11-16 | 1998-07-21 | Peterson; Randall D. | Wall-to-wall surface mining process |
US5872966A (en) * | 1996-05-10 | 1999-02-16 | Apple Computer, Inc. | System and method for logging and enabling further manipulation of system state information |
US5949998A (en) * | 1996-07-03 | 1999-09-07 | Sun Microsystems, Inc. | Filtering an object interface definition to determine services needed and provided |
US6128007A (en) * | 1996-07-29 | 2000-10-03 | Motorola, Inc. | Method and apparatus for multi-mode handwritten input and hand directed control of a computing device |
US5919249A (en) | 1996-08-07 | 1999-07-06 | Adobe Systems Incorporated | Multiplexed output movie rendering |
US5896126A (en) * | 1996-08-29 | 1999-04-20 | International Business Machines Corporation | Selection device for touchscreen systems |
US5953523A (en) * | 1996-10-28 | 1999-09-14 | International Business Machines Corporation | Method and apparatus for creating "smart forms " |
US6049832A (en) | 1996-11-15 | 2000-04-11 | Wall Data Incorporated | Method for accessing information on a host computer from a client computer through an intelligent virtual host component |
GB2340362B (en) * | 1998-07-31 | 2002-11-06 | Sony Uk Ltd | Digital video processing |
GB2340265B (en) * | 1998-07-31 | 2003-04-23 | Sony Uk Ltd | Data processing |
GB2340360B (en) * | 1998-07-31 | 2002-11-06 | Sony Uk Ltd | Animation of video special effects |
US6269378B1 (en) * | 1998-12-23 | 2001-07-31 | Nortel Networks Limited | Method and apparatus for providing a name service with an apparently synchronous interface |
US6249810B1 (en) * | 1999-02-19 | 2001-06-19 | Chaincast, Inc. | Method and system for implementing an internet radio device for receiving and/or transmitting media information |
US6498610B1 (en) * | 2000-05-05 | 2002-12-24 | Xerox Corporation | Concurrent utilization of multiple color profile databases for image rending |
US7397949B2 (en) * | 2000-06-21 | 2008-07-08 | Microsoft Corporation | Serial storage of ink and its properties |
US6355889B1 (en) * | 2000-06-28 | 2002-03-12 | International Business Machines Corporation | Method and apparatus for linking electronic ink to electronic personal information systems |
US6608697B1 (en) * | 2000-07-26 | 2003-08-19 | Extensis, Inc. | Preflight system that provides a universal resource locator address associated with a detected print file error |
US6754386B1 (en) * | 2000-08-22 | 2004-06-22 | Microsft Corporation | Method and system of matching ink processor and recognizer word breaks |
WO2002069583A1 (en) * | 2001-02-26 | 2002-09-06 | Maple Optical Systems, Inc. | Data packet transmission scheduling using a partitioned heap |
US6943787B2 (en) * | 2001-02-27 | 2005-09-13 | Medtronics, Inc. | System and method for displaying implantable medical device data |
US6885374B2 (en) * | 2001-06-29 | 2005-04-26 | Intel Corporation | Apparatus, method and system with a graphics-rendering engine having a time allocator |
US7039234B2 (en) * | 2001-07-19 | 2006-05-02 | Microsoft Corporation | Electronic ink as a software object |
US6909430B2 (en) * | 2001-08-01 | 2005-06-21 | Microsoft Corporation | Rendering ink strokes of variable width and angle |
US7287277B2 (en) * | 2001-12-21 | 2007-10-23 | Hewlett-Packard Development Company, L.P. | Method and apparatus for controlling execution of a computer operation |
DE10215615A1 (de) * | 2002-04-09 | 2003-10-30 | Roland Man Druckmasch | Farbwerk für Druckwerke von Rotationsdruckmaschinen |
US20040070616A1 (en) * | 2002-06-02 | 2004-04-15 | Hildebrandt Peter W. | Electronic whiteboard |
US7046213B2 (en) * | 2002-06-05 | 2006-05-16 | Ibm | Apparatus and method for direct manipulation of electronic information |
US7028229B2 (en) * | 2002-09-30 | 2006-04-11 | Sun Microsystems, Inc. | Kernel event subscription and publication system and method |
US7430623B2 (en) * | 2003-02-08 | 2008-09-30 | Hewlett-Packard Development Company, L.P. | System and method for buffering data received from a network |
JP4039274B2 (ja) * | 2003-02-28 | 2008-01-30 | 富士ゼロックス株式会社 | サービス処理システム及びプログラム |
US7562289B2 (en) * | 2003-06-18 | 2009-07-14 | Layton Geo-Science, Inc. | Methods and systems for encoding geographic coordinates and features in a portable document format file |
EP1665128A4 (en) * | 2003-08-21 | 2007-10-17 | Microsoft Corp | ELECTRONIC INK PROCESSING |
US7436535B2 (en) * | 2003-10-24 | 2008-10-14 | Microsoft Corporation | Real-time inking |
US6925892B2 (en) | 2003-12-17 | 2005-08-09 | Sauer-Danfoss, Inc. | Method and means for monitoring torque in a hydraulic power unit |
US7499058B2 (en) * | 2005-04-22 | 2009-03-03 | Microsoft Corporation | Programmatical access to handwritten electronic ink in a tree-based rendering environment |
-
2004
- 2004-06-30 US US10/879,527 patent/US7436535B2/en not_active Expired - Fee Related
- 2004-07-28 KR KR1020057012369A patent/KR101085730B1/ko active IP Right Grant
- 2004-07-28 EP EP04779299A patent/EP1676185A4/en not_active Withdrawn
- 2004-07-28 MX MXPA05007085A patent/MXPA05007085A/es active IP Right Grant
- 2004-07-28 WO PCT/US2004/024194 patent/WO2005045574A2/en active Application Filing
- 2004-07-28 CN CN2004800032609A patent/CN1795453B/zh not_active Expired - Fee Related
- 2004-07-28 CA CA2511395A patent/CA2511395C/en not_active Expired - Fee Related
- 2004-07-28 JP JP2006536576A patent/JP4698599B2/ja not_active Expired - Fee Related
- 2004-07-28 TW TW093122595A patent/TWI374368B/zh not_active IP Right Cessation
- 2004-07-28 MY MYPI20043020A patent/MY139593A/en unknown
- 2004-07-28 RU RU2005120672/09A patent/RU2392655C2/ru not_active IP Right Cessation
- 2004-07-28 AU AU2004287136A patent/AU2004287136B2/en not_active Ceased
- 2004-07-28 BR BR0406514-0A patent/BRPI0406514A/pt not_active IP Right Cessation
- 2004-11-12 US US10/985,912 patent/US7016055B2/en active Active
- 2004-11-12 US US10/985,920 patent/US7450261B2/en not_active Expired - Fee Related
- 2004-11-12 US US10/985,923 patent/US7239401B2/en not_active Expired - Fee Related
- 2004-11-15 US US10/986,779 patent/US7199885B2/en active Active
- 2004-11-15 US US10/986,803 patent/US7443531B2/en not_active Expired - Fee Related
- 2004-11-15 US US10/986,882 patent/US7463371B2/en not_active Expired - Fee Related
- 2004-11-15 US US10/986,892 patent/US7453585B2/en not_active Expired - Fee Related
- 2004-11-15 US US10/986,841 patent/US7511836B2/en not_active Expired - Fee Related
- 2004-11-15 US US10/986,801 patent/US7515139B2/en not_active Expired - Fee Related
- 2004-11-15 US US10/986,826 patent/US7212296B2/en not_active Expired - Fee Related
-
2005
- 2005-08-05 US US11/197,551 patent/US7446894B2/en not_active Expired - Fee Related
-
2007
- 2007-01-24 US US11/626,613 patent/US7428736B2/en not_active Expired - Fee Related
- 2007-03-02 US US11/681,535 patent/US7973957B2/en not_active Expired - Fee Related
-
2009
- 2009-01-21 US US12/356,974 patent/US8199131B2/en not_active Expired - Fee Related
-
2011
- 2011-05-20 US US13/112,806 patent/US8213027B2/en not_active Expired - Fee Related
-
2012
- 2012-06-04 US US13/487,587 patent/US8400665B2/en not_active Expired - Fee Related
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04326488A (ja) * | 1991-04-19 | 1992-11-16 | Internatl Business Mach Corp <Ibm> | データ入力方法及び装置 |
JP2003141100A (ja) * | 2001-06-28 | 2003-05-16 | Microsoft Corp | デジタルインクを表現し、表示するためのコンピュータ読取可能媒体およびコンピュータシステム |
US20030025675A1 (en) * | 2001-08-01 | 2003-02-06 | Bodin Dresevic | Dynamic rendering of ink strokes with transparency |
JP2003216324A (ja) * | 2002-01-17 | 2003-07-31 | Hitachi Information Technology Co Ltd | 入力システム |
JP2003228718A (ja) * | 2002-01-25 | 2003-08-15 | Xerox Corp | ビットマップ化イメージを構造化テキスト/図形エディタで利用すべく変換する方法および装置 |
JP2003288607A (ja) * | 2002-01-25 | 2003-10-10 | Xerox Corp | デジタルインクイメージを構造化テキスト/図形エディタで利用すべく変換する方法および装置 |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4698599B2 (ja) | リアルタイムインキング | |
US8803824B2 (en) | Methods for allowing applications to filter out or opt into tablet input | |
KR100975504B1 (ko) | 어플리케이션 프로그램에 이용가능한 정보를 만들기 위한 방법, 컴퓨터 판독가능 기록 매체, 및 컴퓨터 시스템 | |
US7499047B2 (en) | Ink editing architecture |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070726 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100423 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100723 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20110225 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110301 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4698599 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |