TWI374368B - Real-time inking - Google Patents

Real-time inking Download PDF

Info

Publication number
TWI374368B
TWI374368B TW093122595A TW93122595A TWI374368B TW I374368 B TWI374368 B TW I374368B TW 093122595 A TW093122595 A TW 093122595A TW 93122595 A TW93122595 A TW 93122595A TW I374368 B TWI374368 B TW I374368B
Authority
TW
Taiwan
Prior art keywords
plug
information
component
software
interface
Prior art date
Application number
TW093122595A
Other languages
English (en)
Other versions
TW200519711A (en
Inventor
Steve Dodge
Alexander J Kolmykov-Zotov
Arin J Goldberg
Brigette Krantz
Kyril Feldman
Manoj K Biswas
Rudolph Balaz
Shenbagalakshmi Pichaiah
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of TW200519711A publication Critical patent/TW200519711A/zh
Application granted granted Critical
Publication of TWI374368B publication Critical patent/TWI374368B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/038Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction 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/0488Interaction 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/04883Interaction 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1203Improving or facilitating administration, e.g. print management
    • G06F3/1204Improving or facilitating administration, e.g. print management resulting in reduced user or operator actions, e.g. presetting, automatic actions, using hardware token storing data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1203Improving or facilitating administration, e.g. print management
    • G06F3/1206Improving or facilitating administration, e.g. print management resulting in increased flexibility in input data format or job format or job type
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/126Job scheduling, e.g. queuing, determine appropriate device
    • G06F3/1263Job scheduling, e.g. queuing, determine appropriate device based on job priority, e.g. re-arranging the order of jobs, e.g. the printing sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1284Local printer device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/14Image acquisition
    • G06V30/142Image acquisition using hand-held instruments; Constructional details of the instruments
    • G06V30/1423Image acquisition using hand-held instruments; Constructional details of the instruments the instrument generating sequences of position coordinates corresponding to handwriting

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computer Hardware Design (AREA)
  • User Interface Of Digital Computer (AREA)
  • Computer And Data Communications (AREA)
  • Stored Programmes (AREA)
  • Character Discrimination (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Processing Or Creating Images (AREA)

Description

1374368
九、發明說明: • · · · · - · · :.. 【相關申請案資訊】 本申請案請求西行2 00 3年10月24曰申請之美國申請 號第60/513,591號,標題為「輸入板平台控制器與API」 之優先權,其内容在此併入參照。 【發明所屬之技術領域】 本發明之各特點係有關於影像處理與資訊操控。尤其
是’本發明之各特點係有關於接收與處理電子墨水資訊。 【先前技術】 典型的電腦系統’尤其是利用圖形使用者介
、U A 系統之電腦系統,例如Micr〇s〇ft,係被最佳化以 或多個分離輪入裝置接受使用者輸入,例如輸入文字
鍵盤及驅動該使用者介面之一指標裝置,例如具有 一或多個按紐之、、A ^ ^ β鼠。該普及的鍵盤與滑鼠介面提供文 件、試算表、資
修改。然而’與圖式、照片等等之快速建立與 鼠介面所提供之5^與紙相較,非電腦與該鍵盤與滑 紙,一使用者編輯彈性間有一4大的差⑮。藉由標準筆與 圖形與其他形狀等等文:、寫入便條至一區域中、並繪製 外,有自由作簦在該鍵盤與滑鼠介面之限制之 偏好L;:::的能力,在某些情況中,-使用者可能 當-使用者以::’而非檢視該螢幕上的文件。 尖流出。在該電子筆撰寫時,他預期墨水會自該筆的筆 自-筆或觸控筆之:水領域中’存在-類似目#。妨礙流 電子墨水之—問題是如何處理該電子墨 5 1374368 水。 之前的方法已嘗試於相同時間處理喷墨的各種問題。 一但墨水資訊存在,之前的方法嘗試成像該墨水、查看筆 劃、與其他墨水資訊結合該墨水資訊、辨認該墨水與平滑 該墨水之外觀,以及其他的方法。這些方法導致將墨水顯 示予使用者之延遲,因而使該使用者等待輸入更多之墨 水,且更重要的是,其降低或消除墨水流自該電子觸控筆 之筆尖之錯覺。 【發明内容】 本發明點出上述所提及之一或多個問題,以提供來自 一觸控筆之墨水流動。一動態成像物件可於一處理流中移 動,以減少一使用者之移動與電子墨水之顯示之一延遲。 這些與其他關於該圖式與相關描述加以點出。 【實施方式】 本發明之各特點係關於以一有效方法處理觸控筆事 件,以快速將電子墨水成像至一使用者。 本文件分成各節以辅助該讀者。這些節包含:墨水特 徵、詞彙、通用目的計算環境、即時喷墨簡介、物件模型、 動態成像與濕墨水、筆勢辨識、同步與非同步處理、階層 化、動態外掛軟體(plug-in)集合修改、錯誤傳播、已管理/ 未管理舉例說明、資料組與流、資料同步化、及應用程式 介面。 墨水特徵 如對使用墨水筆之使用者所熟知般,實體墨水(以具有 6 1374368 一墨水儲藏處之一筆寫於紙上之類)可運送比一連 片段連接之座標更多之資訊。舉例來說,實體墨水 筆的壓力(由該墨水之厚度)、筆的角度(由該線或曲 的形狀與分離點周圍墨水的行為)、及該筆的筆尖 (由該直度、線寬度、及透過一線或曲線的軌道之線 更)。另外的範例包含墨水被吸收至其放置之一紙或 面上之纖維中之方向。這些敏感特性亦辅助傳送上 之屬性。由於這些額外的屬性、情感、個性、強調 比用點之間之統一線寬度更即時傳送。 當一使用者使用一觸控筆型輸入裝置時,電子 墨水)與抓取之電子資訊之抓取與顯示相關。電子墨 特定連續或任何任意集合之筆劃,其中各筆劃包含 點。該筆劃可同時繪製或收集,或可於獨立時間與 為獨立原因繪製或收集。該點可利用各種不同已知 現,包含笛卡爾座標(X,Y)、極性座標(r,Θ)、及其 已知技術。電子墨水可包含真實墨水之屬性之呈現 包含壓力、角度、速度、顏色、觸控筆大小、及墨 明性。電子墨水可進一步包含其他屬性,在其他資 含墨水如何被放置一頁上之順序(對大部分西方語 左至右再至下之一光栅圖案)、一時間戳(指示該墨 被放置)、該墨水之作者之指示、及該來源裝置(該 製於其上之一機器之一識別或用於放置該墨水之筆 別之至少其中之一)。 詞彙 串由線 可反映 線片段 之速度 寬度變 其他表 述列出 等等可 I水(或 水係指 一連串 位置且 技術呈 他業界 方式, 水不透 訊中包 系為由 水何時 墨水,繪' 之一識 1374368 墨水
具有屬性之一連串筆劃或筆劃组。一連串筆 劃可包含一已排序形式中之筆劃。該順序可 由抓取時間或由該筆劃出現於一頁或由該墨 水作者之共同情況中加以排序。其他順序亦 為可能。一筆劃組可包含連續筆劃或未排序 筆劃或其任何組合。此外,某些屬性可能對 各筆劃或該筆劃中之點來說是特定的(舉例 來說,壓力、速度、角度等等)。這些屬性可 儲存於該筆劃或點層,但非該墨水層。 墨水物件 筆劃(stroke) 儲存具有或沒有屬性之墨水之一資料結構。
一連串已抓取點或已抓取點組。舉例來說, 當成像時,該連串點可以線連接。或者,該 筆劃可呈現一點與該下一點之方向中之一向 量。簡言之,一筆劃用於包圍任何關於墨水 之點或部分之呈現方式,不論點之基礎呈現 方式為何與/或什麼連接該點。 定義空間中一位置之資訊。舉例來說,該點 可定義關於一抓取空間(舉例來說,一數位板 (digitizer)上之點)' 一視覺墨水空間(已抓取 墨水放置之一空間中之座標)、及/或顯示空 間(一顯示裝置之點或像素)。 8 1374368 文件 具有一可檢視呈現方式與内容之任何電子檔 案。一文件可包含一網頁、一文書處理文件、 一記事本頁或墊、一試算表、一視覺呈現方 式、一資料庫紀錄、影響檔案、及其組合。
即時觸控筆(RealTimeStylus)該即時觸控筆係提供即時觸 控筆事件於一給定視窗輸入矩形中之一給定 視窗處理上之一物件。該即時觸控筆亦可視 為加入處理額外功能之外掛軟體物件之一框 架。在該即時觸控筆之想要功能變更時,可 新增與移除該外掛軟體物件。該即時觸控筆 之API可稱為RTS。RTS可為研發人員可結 合其他功能之一核心API組件。該RTS封裝 來自筆服務之原始資料,並傳送該資料至該 第一外掛軟體物件(若有的話)。該即時觸控 筆可具有一或多個介面。在二介面的情況 中,這些可為一同步介面與一非同步介面。 這些介面提供外掛軟體可連接至該即時觸控 筆之位置。這些介面僅用於舉例說明之目 的。亦可使用其他介面。 即時墨水 即時墨水係墨水流自該觸控筆筆尖之錯覺。 之前之方法嘗試耦合重要處理步驟與成像墨 9 1374368 水,藉此減慢新接收筆劃之顯示。即時墨水 嘗試在接收時將新接收筆劃推向該顯示器, 並嘗試分離該即時處理步驟與該即時顯示, 以一起操作,藉此將墨水較快地顯示予一使 用者。 外掛軟體(plug-in) —外掛軟體係可被增加至該即時觸控 筆物件之一功能性组件。若一外掛軟體係附 加至該即時觸控筆物件之一同步介面,其可 稱為一同步外掛軟體。若一外掛軟體係附加 至該即時觸控筆物件之一非同步介面,其可 稱為一非同步外掛軟體。 筆服務
處理與該數位板硬體驅動器之介面及提供已 轉譯至標準「封包」與相關結構中之原始「封 包」資料之一系統服務組件,以及仍關於輸 入板功能(如 Tablet Added/Removed 、 StylusButtonUp/Down等等)之獨立墨水集合 之其他通知。筆服務為欲由一外掛軟體集合 處理之封包提供主要機制。 外掛軟體集合(Plug-in Collection) 在一或多群組中,附加 至該RTS之一外掛軟體集合。在二集合存在 處,其可分別與該RTS之同步與非同步介面 10 相關連。各集合可依序成像。在二或多個集 合存在處’其可互相獨立成像,由於其可係 附加至該RTS之不同介面。於由各外掛軟體 處理後,資料傳回該RTS。該集合中外掛軟 體之順序可影響該集合之輸出。 軟體鍵各外掛軟體群組序列連接處之一外掛軟體 鍵。在此’在傳回該RTS之前,資料以其方 式透過該鏈中之各外掛軟體運作。該鏈亦可 稱為外掛軟體之一「菊鍵(daisy chain)」。該 鍵或菊鏈中外掛軟體之順序可影響該鏈之輸 出°
由一同步外掛軟體集合或同步外掛軟體鏈由 該同步外掛軟體集合或外掛軟體鏈重新處理 之外掛軟體鏈所產生之封包或物件之一暫時 持有仵列。簡言之,該同步外掛軟體集合或 外掛軟體鏈可將物件推至該輸入佇列中。 動態成像(Dynamic Rendering) 當該筆觸控該螢幕時,繪 圖墨水之遞增處理。當該筆跨該數位板移動 時,一「墨水」痕跡留在該螢幕上。該效果 出現如同當繪製時該墨水自該筆流出。當接 收該資料時,一片一片繪製該墨水。該成像 11 1374368 亦可具有應用之額外效果,例如防止別名等 等。
靜態成像(Static Rendering) —次成像一整個墨水筆劃之 方法。在該墨水被繪製,且該整個筆劃繪製 為單一單元之前,該資料已經可用。靜態成 像亦可具有應用之額外效果,例如貝齊爾 (Bezier)平滑與防止別名》 動態成像器(Dynamic Renderer) 該研發人員可選擇性例 示一動態成像器,以自動提供高效能成像即 時封包資料至一 GDI成像表面。其他成像表 面之動癌成像器,如同DirectX或一繪圖 器’可利用與該GDI中心DynamicRenderer 相同之介面定義,提供作為本發明各特點實 施方式之部分。 筆勢辨識器(Gesture ReC〇gnizer)當一或多個筆劃組成該 研發人員表現有興趣之一筆劃時,該研發人 員可選擇性例示一筆勢辨識器,以執行筆劃 之即時辨識與報告。若加以使用,該筆勢辨 識器可放至於該同步或非同步集合或鏈中。 輸出佇列一旦該封包資料流經該集合或物件鏈(且可 能已被修改)時,其玫置於該RTS將其傳送 12 1374368 至非同步外掛軟體或鏈之集合處之輸入佇列 中 〇
InkCollectingObject 描述累積與儲存由該即時觸控筆提 供之墨水資料之一非同步外掛軟體物件。
ICO 可於一非同步集合或鏈中之一墨水集合物 件。其自該輸出佇列接收資料。
通用目的計算環境 第1 A圖舉例說明本發明可實施之一適用計算系統環 境1 00之一範例。該計算系統環境1 00僅為一適用計算環 境之一範例,且不用來建議任何限制至本發明之使用或功 能領域。該計算系統環境1 0 0不應解釋為具有關於該範例 計算系統環境1 0 0中舉例說明之任一組件或組件組合之依 附性或需求。
本發明以許多其他通用目的或特殊目的計算系統環境 或配置操作。可適用於本發明之熟知計算系統、環境、及/ 或配置之範例包含但不限於個人電腦、伺服器電腦、包含 智慧型電話之手持式或膝上型裝置、智慧型手錶、及個人 數位助理、多處理器系統、微處理器型系統、轉頻器、可 程式化消費者電子元件、網路P C、迷你電腦、主機電腦、 包含任何上述系統或裝置之分散式計算環境等等。 本發明以一由電腦執行之電腦可執行指令作為背景加 13 印4368 以描述’例如程式模組。一般來說程式模組包含執行特 疋工作或實施特殊抽象資料類型之常式、程式、物件、组 件、-貝料結構等等。本發明亦可實施於工作由透過一通訊 網路連結之遠端處理裝置執行之分散式計算環境中。在一 分散式計算環境中,程式模組可置於包含記憶體儲存裝置 之區域與遠端電腦儲存媒體中。 藉由參照第1 A圖’實施本發明之一範例系統包含一 電腦110形式之一通用目的計算裝置。電腦110之组件可 包含但不限於一處理單元12〇、_系統記憶體13〇、及耦合 包含該系統記憶體之各種不同系統組件至處理單元丨2 〇之 —系統匯流排1 2 1。該系統匯流排丨2 1可為各種形式之匯 流排結構,包含一記憶體匯流排或記憶體控制器、一週邊 匯流排、及使用任何匯流排架構之一區域匯流排。藉由範 例但非加以限制’此架構包含工業標準架構(ISA)匯流排、 微通道架構(MCA)匯流排、增強ISA(EISA)匯流排、視訊 電子標準協會(VESA)區域匯流排、及亦稱為Mezzanine匯 流排之遇邊組件互連(PCI)匯流排。 電腦110 —般包含各種不同電腦可讀取媒體。電腦可 讀取媒體可為可由電腦110存取,且包含揮發性與非揮發 性媒體 '可移除與不可移除媒體之任何可 用媒體》藉由範
例如電腦可讀取指令、資料結構、 可移除與不可移除媒體, 、程式模組或其他資料。 14 1374368 電腦儲存媒體.包含但不限於隨機在4 ^ 呀機存取記憶體(RAM)、唯讀 記憶體(ROM)、電子可抹除可葙— 外降' 了程式化唯讀記憶體 (EEPROM)、快閃記憶體或其他記恃 °匕®體技術、CD-ROM、數 位萬用碟(DVD)或其他光碟存儲器、 W ^ 磁匣、磁帶、磁碟存 儲器或其他磁性儲存裝置、或1他 义’、他可用於儲存該想要資訊 且可由電腦110存取之任何其他媒雜。— 綠體通訊媒體一般實施 電腦可讀取指令、資料結構、程.槿 桎式模组或一模組化資料信 號中之其他資料,例如一載.波或立仙 私1久次具他傳輸機制,且包含任
何資訊傳遞媒體。「模組化資料作號 Hr ^ λ., . %貝刊· G姽」該詞意指具有一或多 個其特徵组或以如同於該信號中編碼資訊之方式變更之_ 信號。藉由範例但非加以限帝J,通訊媒體包含有線媒趙, 例如一有線網路或直接連線連接,及無線媒體,例如聲波、 RF、紅外線與其他無線媒體。任何上述之组合亦應包含於 電腦可讀取媒體之領域中。
該系統記憶體130包含揮發性與/或非揮發性記憶體 形式之電腦儲存媒體’例如ROM 131與RAM 132。例如於 啟動時包含幫助傳送電腦n〇中元件間資訊之基本常式之 一基本輸入/出系統133(BIOS)—般儲存於R〇M 131中。 RAM 132 —般包含立即可存取及/或目前由處理單元ι2〇 操作之資料與/或程式模組。藉由範例但非加以限制第 1A圖舉例說明作業系統134、應用程式ι35、其他程式模 組136、及程式資料137。 該電腦110亦可包含其他可移除/不可移除、揮發性/ 非揮發性電腦儲存媒體。僅藉由範例,第1A圖舉例說明 15 1374368 讀取或寫入 141、讀取或 器151 、讀: 驅動器155 例作業環境 電腦儲存媒 用碟、數位 驅動器141 面連接至該 動器155 — 接至該系統 上述及 存媒體為該 式模組與_其 硬碟驅動器 145、其他產 可相同或不 組1 3 6、及: 其他程式模 舉例說明至 入指令與資 一鍵盤162 觸控墊。其 遊戲墊、天 不可移除非揮發性磁性媒體之一硬碟驅動器 寫入一可移除非揮發性磁碟152之一磁碟驅動 取或寫入一可移除非揮發性光碟156之一光螺 ’例如- CD ROM或其他光學媒體。可用於範 中之其他可移除/不可移冷、揮發性/非揮發性 體包含但不限於磁帶E、快閃記憶卡、數位萬 錄影帶、固態RAM、目態ROM等等。該硬碟 一般透過如介面14〇之―韭丁,你认 非不可移除記憶體介 系統匯流排1 2 1,而磁磾 ’驅動器151與光碟驅 般藉由如介面15〇之—又7λ 不可移除記憶體介面連 匯流排1 2 1 » 舉例說明於第1Α圖φ少壯β 圖中之裝置與其相關電腦儲 電腦110提供電腦可讀& 取各令、資料結構、程 他資料之存儲器。亵 举例來說,在第i A圖中, 1 4 1舉例說明為儲在 α铽存作業系統144 '應用程式 艺式模組1 4 6、及栽4签企丨 程式資料147。注意這些組件 同於作業系統134、應用# 應用程式135、其他程式模 择式資料137。作孝系 糸乐統144、應用程式145、 组146、及程式資料 斗147在此給予不同號碼係 少其為不同副本。—估田土 便用者可透過輸入裝置輸 訊至該電腦110中, r 例如—數位照相機1 6 3、
、及指標裝置161,一妒辎A 股%為一滑氱、軌跡球或 它輸入裝置(未顯示)可句 a含一麥克風、搖桿' 線接受器、掃推器笼楚 15等等。這些與其他輸入裝置 16 1374368 常常通過至該系統匯流排121的使用者輸入介面160連接 至該處理單元120,但可由其他介面與匯流排結構加以連 接,例如一並列埠、遊戲埠或一通用序列埠(USB)。一螢 幕191或其他類型之顯示裝置亦經由一介面連接至系統匯 流排1 2 1,例如一視訊介面1 9 0。除了該螢幕之外,電腦亦 可包含透過一輸出週邊界面195連接之其他週邊輸出裝 置,例如喇叭1 9 7與印表機1 9 6。
該電腦 110可操作於利用邏輯連結至如一遠端電腦 180之一或多個遠端電腦之一網路型環境中。該遠端電腦 180可為一個人電腦、一伺服器、一路由器、一網路PC、 一對等裝置或其他共用網路節點,且一般包含上述關於該 電腦110之許多或所有元件,雖然僅一記憶體儲存裝置181 舉例說明於第1A圖中。描述於第1A圖中之邏輯連接包含 一區域網路(LAN)171 與一廣域網路(WAN)173,但亦可包 含其他網路。此網路環境常見於辦公室、企業型電腦網路、 内部網路與網際網路。
當使用於一 LAN網路環境中時,該電腦110透過一網 路介面或配接器170連接至該LAN 171。當使用於一 WAN 網路環境中時,該電腦110 —般包含一數據機172或透過 該WAN 173建立通訊之其他構件,例如網際網路。可内建 或外接之數據機172可經由該使用者輸入介面160或其他 適當機制連接至該系統匯流排 1 2 1。在一網路型環境中, 關於該電腦110描述之程式模組或其部分可儲存於該遠端 記憶體儲存裝置中。藉由範例但非加以限制,第1A圖舉 17 1374368 例說明遠端應用程式185位於記憶體裝置181上。應了解 所示之網路連接僅為範例,且可使用建立該電腦間一通訊 速錄之其他構件。 應了解所示之網路連接僅為範例’且可使用建立該電 腦間一通訊連接之其他構件β預設任何已知通訊協定存 在’例如TCP/IP、乙太網路、FTP、HTTP等等,且該系 统可操作於一客戶端-伺服器配置中’以允許一使用者自一 網路型伺服器取出網頁β任何傳統網路瀏覽器可用於顯示 與批控網頁上之資料。 一程式設計介面(或更簡單的說’介面)可視為啟動一 或多個程式碼片段以通訊或存取由一或多個其他程式瑪片 段所提供之功能之任何機制、方法、通訊協定。或者’一 程式設計介面可視為可通訊稱合至其他組件之一或多個機 制、方法、函數呼叫、模組之一系统之一組件之一或多個 機制、方法、功能呼叫、模組、物件等等。前一句中「程 式碼片段」該詞用於包含一或多個程式碼指令或行,且包 含如程式碼模組、物件、子程式、函數等等,不論應用的 術語為何’或是否該程式瑪片段分別編譯’或是否該程式 瑪片段提供為來源、中間、或物件程式碼,是否該程式碼 片段利用於一執行時間系統或方法中,或是否其跨機器分 散放置於相同或不同機器上,或是否該程式碼片段所呈現 之功能全部實施於軟體中、全部實施於硬體中、或實施於 硬體與軟體之一組合中。 概念.上’ 一程式設計介面可視為一類’如第1Β與第 18 1374368
1C圖中所示。第1B圖舉例說明一介面之介面1,作為第 一與第二程式碼片段透過其通訊之一導管。第1C圖舉例 說明一介面,包含介面物件II與12(可能或可能不為該第 一與第二程式瑪片段之部分),其啟動一系統之第一與第二 程式碼片段經由媒體Μ加以通訊。鑒於第1C圖,可將介 面物件Π與12視為相同系統之不同介面,且亦可將介面 物件II與12加上媒體Μ視為包含該介面。雖然第1Β與 第1 C圖顯示雙向流且介面於該流各側,特定實施方式可 能僅具有資訊流於一方向中(或沒有如上述之資訊流),或 可僅具有一介面物件於一側。藉由範例但非加以限制’例 如應用程式介面(API)、輸入點、方法、函數、子程式、遠 端程序呼叫、及組件物件模型(COM)介面之詞皆包含於程 式設計介面之定義中。
此一程式設計介面之各特點可包含該第一程式碼片段 傳輸資訊(在此「資訊」用於其最廣解釋中,且包含資料、 指令、要求等等)至該第二程式碼片段之方法、該第二程式 碼片段接收該資訊之方法、及該資訊之結構、順序、語法、 組織、綱目、時間與内容。如此一來,該基本傳輸媒體本 身可能對該介面之操作並不重要,不論該媒體為有線或無 線或兩者之一組合,只要該資訊以由該介面之方式傳輸即 可。在特定情況中,資訊可能無法以傳統觀念中之單或雙 向傳送,如同該資訊傳送可能經由另一機制(如分離自該程 式碼片段間之資訊流,放置於一缓衝器、檔案等等中之資 訊)或根本不存在,如同當一程式碼片段僅存取由一第二程 19 1374368 式碼片段所執行之功能時。任何特點可能在一給定情況中 很重要,如根據是否該程式碼片段為一鬆耦合或緊耦合配 置中之一系统之部分而定,且因此此清單應被視為舉例說 明並非加以限制。
一程式設計介面之概念對熟知該項技藝人士為已知, 且自本發明之前述詳細說明可清楚獲得。然而,有其他方 法實施一程式設計介面,且除非特別表示加以排除,這些 也由本說明書尾端所附之申請專利範圍所囊括。此其他方 式可出現為比第1B與第1C圖之簡單檢視更精細或複雜, 但其仍執行一類似功能完成全面相同之結果。現在我們將 簡單描述一程式設計介面之某些其他範例實施方式。 A.因數化
來自一程式碼片段至另一程式碼段之一通訊可間接 藉由將該通訊切成多個分離通訊加以完成。此以綱目化方 式描述於第1D與第1E圖中。如圖所示,某些介面可描述 為代表可分割功能組。因此,第1 B與第1 C圖之介面功能 可因數化,以達成相同結果,如同可以數學方式提供24, 或2乘以2乘以3乘以2。因此,如第1D圖中所舉例說明, 介面之介面1所提供之功能可再切割,以將該介面之通訊 轉成多個介面之介面1A、介面1B、介面1C等等,而達到 相同的結果。如第1E圖中所舉例說明,介面II所提供之 功能可再切割為多個介面11 a、11 b ' 11 c等等,而達到相 同的結果。同樣的,自該第一程式碼片段接收資訊之第二 程式碼片段之介面12可因數化為多個介面I2a、I2b、I2c 20 1374368
等等。當因數化時,包含於該第1程式碼片段中之介面數 不需要符合包含於該第2程式碼片段中之介面數。在第1D 與第1E圖之情況中,介面之介面1與II之功能精神分別 維持與第1B與第1C圖相同。介面之因數化亦可跟隨相 關、互換、及其他數學屬性,使得該因數化可能很難辨識。 例如,操作之順序可能不重要,且因此,由一介面執行之 一功能可能由另一程式碼或介面之部分或由該系統之一不 同組件事先執行良好達到該介面。此外,熟知該程式設計 技術人士應可了解有各種不同方法作出達到相同結果之不 同函數呼叫。 B.重新定義
在某些情況中,可能忽略、新增或重新定義一程式設 計介面之特定特點(如參數),而仍完成想要的結果。此舉 例說明於第1F與第1G圖中。舉例來說,假設第1B圖之 介面 之介面 1 包 含一函 數呼叫 Square(input,precision,output),包含三個參數 input、 precision及output之一呼叫,且·自該第1程式碼片段提出 至該第2程式碼片段。若該中間參數precision於一給定情 況中不加以考慮,如第 1F圖中所示,其可被忽略或甚至 以一無意義(在此情況中)參數加以取代。亦可加入不加以 考慮之一額外參數。在任一事件中,可達到平方之功能, 只要在輸入由該第二程式碼片段平方之後傳回輸出即可。 精度對某些下游或該計算系統其他部分是很有意義的一個 參數;然而,一旦認為精度對計算該平方之狹窄目的來說 21 1374368
不必要時,可被取代或忽略。舉例來說,不傳送一有效精 度值,例如一生曰之一無意義值可被傳送而不會影響該結 果。同樣的,如第1G圖中所示,介面II由介面II’取代, 重新定義為忽略或新增參數至該介面。介面12可同樣重新 定義為介面12’,重新定義為忽略不必要的參數,或參數 可在其他地方處理。在此的重點是在某些情況中,一程式 設計介面可包含各特點,例如因某些目的不需要之參數, 且因此其可被忽略或重新定義,或為其他目的在其他地方 處理。 C.直接插入式編碼(1ΝΙΑΉΕ CODING)
亦可行的是合併兩個分別程式碼模組之部份或所有功 能,使得其間之「介面」變更形式。舉例來說,第1B與 第1C圖之功能可分別轉換成第1H與第II圖之功能。在 第1H圖中,之前第1B圖之第1與第2程式碼片段可合併 至包含兩者之一模組中。在此情況中,該程式碼片段仍可 互相通訊,但該介面可調適為更適於該單一模組之一形 式。因此,舉例來說,正式的Call與Return陳述式可能 不再必要,但關於介面之介面1的類似處理或回應仍然有 效。同樣的,如第II圖中所示,來自第1C圖之部分(或所 有)介面12可以直接插入式寫入介面II中,以形成介面 II ’’。如圖所示,且介面12被分割成12a和I2b,介面部分 12已以介面II内部編碼,以形成介面II’’。對一具體範例 來說,考量來自第1C圖之介面II執行由介面12接收之一 函數呼叫square(input,output),其在由該第二程式碼片段 22 1374368 處理以輸入(為了計算一輸入之平方)傳送之值後,以輸出 傳回已平方之結果。在此情況中,由該第二程式碼片段執 行之處理(平方輸入)可由該第一程式碼片段執行,而不需 要至該介面之一呼叫。 D.分離
來自一程式碼片段至另一程式碼片段之一通訊可間接 藉由將該通訊分成多個分離通訊加以完成。此以綱目方式 描述於第1J與第1K圖中。如第1J圖中所示,一或多個程 式碼部分(分離介面,由於其分離功能及/或來自該來源介 面之介面功能)提供以轉換該第一介面之介面 1 上之通 訊,使其與一不同介面一致,在此情況中為介面之介面 2A、介面2B及介面2C。此可能於如有設計為通訊之一已 安裝型應用程式處完成,也就是根據一介面1通訊協定之 一作業系統,但接著該作業系統變更為使用一不同介面, 在此情況中為介面之介面2A、介面2B及介面2C。重點是 由該第2程式碼片段使用之原始介面變更,使其不再與由 該第1程式碼片段使用之介面相容,且因此一中間媒介用 於使該舊與新介面相容。同樣的,如第1K圖中所示,一 第三程式碼片段可以分離介面DI1引入,以自介面II接收 該通訊,且以分離介面DI2引入,以傳輸該介面功能至例 如介面12a與I2b,重新設計與DI2運作,但提供相同之 功能結果。同樣的,DI1與DI2可一起運作,將第1C圖之 介面11與12之功能翻譯至一新作業系統,而提供相同或 相似之功能結果。 23 1374368 E_重寫
另一可能變化係動態重寫該程式碼,以用其他者取代 該介面功能,但達成全面相同之結果。舉例來說,有一系 統,其中以一中間語言(如 Microsoft IL、Java ByteCode 等等)呈現之一程式碼片段提供至一執行環境(例如由 該.Net框架、該Java執行時間環境、或其他類似執行時間 類型環境所提供者)之一即時(JIT)編譯器或轉譯器。該JIT 編譯器可被寫入,以動態轉換來自該第1程式碼片段至該 第2程式碼片段之通訊,即使其與可能該第2程式碼片段 (該原始或一不同第 2程式碼片段)需要之一不同介面一 致。此描述於第1L與第1M圖中。如可於第1L圖中所見, 此方法類似於上述之分離情況。其可完成於如一已安裝型 應用程式設計為根據一介面1通訊協定與一作業系統通訊 處,但接著該作業系統變更為使用一不同介面。該JIT編 譯器可用於於中途一致化來自該已安裝型應用程式至該作 業系統之新介面之通訊。如第1M圖中所述,此動態重寫 該介面之方法可應用至動態因數,或同時改變該介面。 亦注意上述經由其他具體實施例達成與一介面相同或 相似結果之情況亦可以各種不同方式結合,串聯與/或並 聯,或與其他外掛軟體程式碼結合。因此,上述呈現之其 他具體實施例不互斥,且可加以混合、符合與結合,以產 生與第1B與第1C圖中所呈現之一般情況相同或相等之情 況。亦應注意到,如同具有大部分程式設計結構般,有可 能沒有在此說明之達成一介面相同或相似功能之其他類似 24 1374368 但仍由本發明之精神與範圍所呈現,即應注意至少 刀為-介面之值下之-介面所呈現之功能與所啟動之 利結果。 $
第2圖舉例說明可用於根據本發明各種不同特點之一 例示輸入板PC 201。第!圖之系統中之任何或所有特性 子系統、及功能可包含於第2圖之電腦中。平板pc 包含一大型顯示表面202,即一數位化平板顯示器,最充 係一液晶顯示(LCD)螢幕,其中複數個視窗2〇3顯示於表 上。利用觸控筆204, 一使用者可於該數位化顯示表面2〇 上選擇、畫重點、及/或寫入。適用數位化顯示面2〇2之範 例包含電磁筆數位板,例如Mut〇h或Wac〇m筆數位板。亦 可使用其他類型的筆數位板,如光學數位板。輸入板pc 2〇1轉譯利用觸控筆204所做的筆勢,以操控資料、輸入 文字、建立圖形、及/或執行傳統電腦應用程式工作例如 試算表、文書處理程式等等。
該觸控筆204可備有一或多個按鈕與其他特性,以增 加其選擇功能。在一具體實施例中,該觸控筆2〇4可實施 為一「鉛筆」或「钢筆」,其中一端由一書寫部分所組成, 而另一端由- 「橡皮擦」端所組成,且當跨該顯示器移動 時,其指示該顯示器欲被抹除的部分。可使用其他類型的 輸入裝置,例如一滑鼠、軌跡球等等。此外,一使用者本 身之手指可為該觸控筆204,且用於選擇或指示一觸控感 應的近接感應顯示器上顯示影像之部分。因此,在此所使 用的「使用者輸入裝置」用於具有一寬廣定義,且囊括已 25 1374368 知輸入裝置上之許多變化,例如觸控筆2 04。區域205顯 示一回授區域或接觸區域,允許該使用者決定該觸控筆 2 04接觸該顯示表面202何處》
在各種不同具體實施例中,該系統提供一墨水平台做 為一應用程式可使用以抓取、操控、及儲存墨水之一 COM(組件物件模型)服務組。一服務啟動一應用程式使用 該揭不之墨水呈現方式讀取與寫入墨水。該墨水平台亦可 包含一標記語言,包含如該可延伸標記語言(XML)之一語 言。此外,該系統可使用DCOM做為另一實施方式。又其 他實施方式可用於包含來自Microsoft公司之Win32程式 設計模組與該.Net程式設計模型。 即時喷墨簡介 利用一觸控筆或鋼筆,一使用者建立電子墨水。該墨 水由允許該墨水欲於更接近該使用者建立該墨水之一時間 顯示之一系統處理,而非等到額外處理已完成為止。
第3圖顯示根據本發明各特點用以處理電子墨水之一 例示系統。一輸入管理器接收該輸入管理器301中之墨 水。存在於業界中之各種不同輸入管理器包含鋼筆與數位 化輪入板、Wacom輸入板等等。該墨水資料之存在稱為— 觸控筆輸入事件3 02。接下來,該觸控筆輸入事件3 02由 —墨水收集器303加以處理。該墨水集合物件303執行來 自該輸入管理器301之資訊之初始處理。該系統接著為顯 示器305上之輸出動態成像墨水304。其他組件可處理更 完整處理之墨水。例如,一筆劃可能加入一既有墨水物件 26 1374368 306(或可能建立—新墨水物 ^ ^ ? ^ ^ 件从包含該墨水筆劃),且可能 將該已接收墨水(稱為資料 a s . s u )與~或多個屬性相關聯。此由 具有墨水属性3 0 7之组件加 m 以顯示。該墨水物件可能接著 為顯不盗3 05上之顯示重 啊增製(若想要平滑的話)308。 第4圖顯示第3圖之 — _ ^ ^ 方法。第4圖包含一内部觸 控筆輸入來源401、《· 松^sl、 輸入官理器4〇2(可能或可能不具有 一輸入仔列)、一墨水集入私 八。件403、及具有墨水物件屬性 405、一即時噴墨物件4〇4 頭不器406之元件。
可處理二類型之輸入組 _ ^ ^ ^ ^ ^ 导自一觸控筆與一數位板間 接觸之資料,及導自一數位 上所做的移動之資料。不接 觸該數位扳之數位振所他认 板上所做的移動稱為「空中觸控筆」輪 入。該内部觸控筆輪入來源分 該一輸入組,並據此將其 下方列出發生於第4圖中之各種不同動作:' A) -空中觸控筆輸入事件加人—輸人管理器* 入佇列。 彻
B) 該輸入管理器4〇? /}¾ . L 合4〇3。 自H-空中觸控筆輸入至墨水集
c)該輸入管理器4〇2亦輸出用以處理之空中觸控筆, 以決定是否已發生一焦點變 亦通知該即時喷墨物件 404(亦稱為一即昧離批签挑抑、 七 P時觸控筆控制)。該即時喷墨物件404可要 ,任何所需的資料(墨水顏色等等卜 D) 該空中觸控筆事件繼續正常處理 水屬性405之元件。 罵主具有墨 E) 接收觸控筆向「下審株 並傳送至該即時喷墨物 27 1374368 件 405 β F) 當被接收時,即時噴墨物件4〇5繪製點。此可稱為 動態成像。 G) 即時噴墨物件4Q5傳送該已繪製事件至該欲於稍後 當使用者介面執行緒(thread)變得有效時分派之輸入管理 器 402。 H) 集合一筆劃,並接著加入一墨水物件。
I) 該元件先通知該即時噴墨物件4〇5以移除該動態綠 象筆劃’ 1重新繪製該新筆劃。此操作可根據以筆劃為基 礎之一筆劃發生’或可應用至墨水筆劃上。 J) 於所有噴墨完成後成像該墨水。 「如第4圖中所示之上述方法提供之優點為墨水停滯僅 對「觸控筆下壓」冑件有意義。墨水停滞僅在當該觸控筆 啟動繪製時可認得出。戶斤有其他觸控筆事件可以對極少負 面使用者印象之方式加以延遲。 入管理器佇列與該 旦建立焦點時,將
第4圖之方法提供區域化於該輸 RTI物件中之多執行緒察覺。亦保證一 没有停滞或延遲。 #件模型 件第5圖顯示可用於結合本發明各特點之各種不同物 包含可結合不同程度之五部分。下方列出用於下列說 月之各種不同詞彙。 該第一部分係支援收集電子墨水之一筆服務應用程式 5 〇 1 〇 — 範例係提供自該Microsoft公司且用於wind〇ws χρ 28 1374368 输入板版本之wisptis.exe。 第二,一即時觸控筆服務503 (顯示與處理1 502相關) 係為集合自筆服務501傳送觸控筆資料至適當視窗之一應 用程式。該即時觸控筆服務503可處理一未限制數量之物 件,且可限制以縮小過度使用。例如’若加以限制’各執 行緒之一例示數量物件可為16、32、64、128等等。當然, 可使用其他值。
第三,即時觸控筆504與505顯示於處理1中。即時 觸控筆5 04舆505可自即時觸控筆服務503接收觸控筆資 料。各即時觸控筆物件可為一視窗或區域之一給定區段接 收觸控筆資料(根據該即時觸控筆物件之一相關視窗或區 域而定。 為了顯示多重處理如何可同時實施,亦顯示處理 2 506»即時觸控筆服務507亦可自筆服務501接收觸控筆資 料,且傳送此資訊至即時觸控筆508及509。
該即時觸控筆物件504、505、508及509於第6圖中 更加詳細顯示。該筆服務組件601於資料流A傳送資料至 該即時觸控筆服務602。接下來,該即時觸控筆服務602 於資料流B傳送觸控筆資料至一或多個即時觸控筆組件 6 03上。或者’如以虛線所示之即時觸控筆服務602所示, 此服務可被嗜略,且觸控筆資料直接流至該即時觸控筆組 件 603。 於該即時觸控筆組件603接收之觸控筆資料可直接餵 至可插式組件606-608。或者,已接收之觸控筆資料可餵 29 1374368 至其輸入佇列604中,以依序處理。該即時觸控筆組件603 接下來傳送觸控筆資料至一或多個可插式组件。這些组件 606-608可包含具有一視覺存儲器之一動態成像器608,儲 存該目前成像之觸控筆資料。該資料流包含流C與D。
該動態成像器608可為視覺存儲器609中一或多個筆 劃累積與儲存封包資料。這對當一筆劃超出一邊緣,接著 重新輸入一可喷墨區域時,而該觸控筆仍下壓時之情況是 很有利的。若當說筆下壓時,該已顯示視窗接收一重繪要 求,該存儲器6 09提供該資訊以快速重繪該視窗。若該動 態成像器不於609中儲存觸控筆資料,該系統必須等待重 繪該視窗,並執對最目前之筆劃,直到該資料使其離開該 輸出4宁列之外,且進入該墨水集合物件6 11中。
該可插式組件606-608為可回應某些資料至透過一介 面處理觸控筆資料之類別物件。可使用之一介面之一範例 包含IstylusSyncPlugin。可插式組件606-608之組合允許 一研發人員完整控制、修改、且甚至刪除來自該外掛軟體 中封包流之資料。來自資料流E之已修改封包流接著儲存 於該輸出佇列6 0 5 f。 輸出佇列6 0 5之輸出流經資料流F與G至可插式元件 610與611之另一集合。這些組件可包含一筆勢辨識器610 與具有墨水存儲器612之一墨水集合物件611。各種不同 額外外掛軟體物件可由資料流F與G分接。 自610與611分離可插式組件606-608之決定可根據 各種不同規則而定。例如,組件606-608可為同步外掛軟 30 體,且組I ( , Λ & 1干610與611可為非同步外掛軟體。或者,具有 較短觸控签;^ ϋ占 苹貢料處理時間之外掛軟體更由資料流C/D加以 i較長觸控筆資料處理時間由資料流F/G定址。來 執订辞· C/D之組件可與執行緒F/G之元件交換。 刀離該二組可插式組件606-608與610-611之一優點 係該可插丄 八組仵由不同執行緒加以處理。在此,該同步外 掛軟體與号·# 、°表非R步外掛軟體之不同在於其執行之執行緒, 且該呼叫金[r*~ / r-i ι» 1程序(同步外掛軟體可由該即時觸控筆603執行 jir >i~j 緒呼叫’而該非同步外掛軟體一般可於該封包流已 由該同步外掛軟體處理且儲存於該輸出佇列605中之後, 由該使用者介面/應用程式執行緒呼叫)。 在某些情況中,可有來自該即時觸控筆组件603往回 至筆服務601或即時觸控筆服務602之公開通訊。在其他 情況中,沒有來自該即時觸控筆組件6 0 3往回至筆服務6 0 1 或即時觸控筆服務602之公開通訊。避免通訊可幫助來自 這些組件之資料流。 在某些情形中,當藉由以一預定順序傳送呼叫至該外 掛軟體取出資料時,該即時觸控筆組件603可通知該外掛 軟體。接收這些通知之外掛軟體順序與類型可由該研發人 員加以控制。該事件中之封包資料可由這些外掛軟體 606-608與610-611之任何之一加以修改。 本發明之各特點與各種不同資料類型加以運作’包含 來自筆服務之封包資料、關於一顯示器、輸入板、筆等等 之變更通知、及可由該即時觸控筆處理之其他資料組。下 31 1374368 列描述說明來自筆服務之封包資料之使用,此為可以該即 時觸控筆 603使用之許多類型資料其中之一。對下列來 說,封包資料為訴RT S處理之資料類型作為一例示範例, 但應了解參照可由該RTS處理之更一般資料。
該即時觸控筆組件603亦可包含佇列604與605。該 輪出佇列605可維護該即時觸控筆組件603處理之所有封 包資料。一旦該封包資料已自該外掛軟體傳回時,該封包 資料自資料流E加至該輪出佇列6 0 5。該輪出佇列6 0 5接 著可由該外掛軟體加以使用(例如,非同步且一般包含該墨 水集合物件611)。此可藉由取出資料(資料流F)與於資料 流G自掌握於輸出佇列6 0 5中之資料建立一墨水物件加以 發生。
該輸出佇列605之大小可能或可能不固定。若固定, 在該佇列605滿了之後,所有已連續接收之資料封包可能 會遺失。若不固定,該佇列605之大小可能擴充以接收額 外的資料封包。保持一固定大小佇列之一優點在於其限制 該資料之待辦至可於一合理時段中處理者。例如,若該使 用者端與該系統互動,且其變成未回應,一般為該使用者 端暫停,直到該系統再次回應為止,藉此允許該佇列處理 該待辦者,而不遺失資料。而且,若為了某種原因,建立 一高容量觸控筆資料,佇列605藉由具有一固定大小可幫 助減少某些資料。 該輸出佇列605可固定於依序接收資料。或者,如下 所述,資料可亂序放置於輸出佇列605中,以維護與即時 32 1374368 成像之同步化。 輸入佇列604於資料流B接收資訊(或若無即時 服務602,則為資料流A)。該輸入佇列提供一處理 資料至外掛軟體 606-608。或者,觸控筆資料可直 外掛軟體606-60 8。具有輸入佇列604做為資料流 間之一中間媒介(在此為資料流Z)之一優點係其允 立之觸控筆資料外掛軟體不存在處。 下列說明一高階控制流。 a. 當穿過外掛軟體606-608時,一即時觸控筆 納處理封包資料。 b. 該即時觸控筆603儲存該已處理資料於該輸 605 中。 c. 該即時觸控筆603查看是否有任何方法中封 於該輸入佇列604中。若有資料,則來自該輸入佇 包資料於上述步驟a拾取與處理。 d. 該即時觸控筆60 3查看是否有任何方法中封 於筆服務601中。若有,則來自筆服務601之封包 上述步驟a拾取與處理。 e. .此處理重複於步驟c。 下列說明該即時觸控筆物件可如何處理該輸入 料之另一方法。應了解下列可應用至第8、11、及] 鏡射修改,具有做為該同步執行緒上外掛軟體之配 改(自各菊鏈至由該即時觸控筆物件分別呼叫之各者 a.該即時觸控筆物件603檢查首先於其輸入仵 觸控筆 以輸入 接流至 B與C 許已建 603歸 出佇列 包資料 列之封 包資料 資料於 板筆資 [3圖之 置之修 )° 列604 33 1374368 上,且接著來自該輸入板筆資料流B之外掛軟體資料物件。 b-該即時觸控筆物件603傳送c 一外掛軟體資料物件 至其同步外掛軟體集合中之物件6〇6_6〇8。各同步6〇6 6〇8 外掛軟體可加入資料至該輸入佇列6〇4或輸出佇列6〇5。 c. 一旦該外掛軟體資料物件已傳送至該同步外掛軟 體集合之所有成員時,該外掛軟體資料物件放置於該即時 觸控筆物件之輸出佇列6 〇 5上。 d. 該即時觸控筆物件6〇3接著為該下一個外掛軟體資 料物件檢查加以處理(自輸入佇列6 〇 4或資料流B)。 e-當該即時觸控筆物件之輸出佇列6〇5包含資料時, 該即時觸控筆物件603自其輪出佇列6〇5傳送一外掛軟體 資料物件至其非同步外掛軟體集合61〇_611中之物件。各 非同步外掛軟體610-611可加入資料至該輪入佇列6〇4或 輸出佇列605。但由於該非同步外掛軟體可執行於該⑴執 行緒上,加入該佇列604 / 605之資料不具有至該輸入板筆 資料流B中資料剩餘部分,或至該即時觸控筆物件之輸入 6〇4與:輸出行列605之一組關係。 第四,該系統包含一非同步外掛軟體611(在此呈現為 一墨水集合物件)。該墨水集合物件可呈現一或多個外掛軟 體物件。該墨水集合物件及存儲器在此可為發生於該m 或非同步執行緒中各種不同動作其中之一。一旦該封包資 料(或已修改対包資料)由該同步外掛軟體6〇6_6〇8傳回 時,其放置於該即時觸控筆603之輸出佇列605中。該即 時觸控筆6 03接著放置資料於該輸出佇列6〇5中。該資料 34 1374368 技 著 、 送至該下一組外掛軟體610-6 11(在一集合或鏈 中)。此可包含傳送該資料至該墨水集合物件611),其中其 可被摧毁/刪除/回收/釋放,如由該非同步執行緒上之各種 不同外掛軟體所指定者。
第五’該系統可包含提供基本功能至該系統之標準外 掛軟體(其可設計以執行於同步或非同步執行緒或兩者 上)。該標準外掛軟體可包含一動態成像器6〇8與一筆勢辨 識器6 1 〇。當然,若想要,該標準外掛軟體可以其他外掛 軟體取代。此外,在本發明各特點之某些實施方式中,無 標準外掛軟體可初始包含有該即時觸控筆。而是,若有需 要,研發人員可被鼓勵以自第三者供應商選擇及/或建立 其自己的外掛軟體。
第7與第8圖提供第6圖之結構之另一版本。第7圖 顯示筆服務7〇1,提供觸控筆資料至即時觸控筆7〇2。輸入 仔列703(其可能或可能不使用)提供觸控筆資料至同步外 掛軟體801 -805。在此’各外掛軟體可為一外掛軟體集合 之部分。另外,外掛軟體可為一外掛軟體鏈之部分。在該 最後一個同步外掛軟體之後(即時觸控筆同步外掛軟體N 8〇5),該觸控筆資料(或已修改觸控筆資料)置於輸出佇列 709中,接著由後續即時觸控筆事件非同步外掛軟體71〇 與808處理。 關於圖號第6與7之資 之速度樣本化’透過該RT S 組或為有效率之目的鄉在一 料,由於該數位板於一非常高 傳輪之各資料組可為單一資料 起之—資料套組。這些資料組 35 1374368 透過該RTS提供各種不同事件傳送新資訊。在某 些情況中,可刪除該資料組。在其他情況中在該資料組 係-資料套組肖,該套组中之單—資料可被刪除而保留其 他資料組。有效的說,可修改該資料套组。該即時觸控筆 702接著可張貼一私用訊息至其附加之視窗,並進行至該 輸入佇列中之下一個資料組(或若無,自該筆客戶端介面上 之筆服務701所呼叫之函數傳回)。
第8Α與第8Β圖為各種不同操作顯示資料流。第8Α 圖顯示於筆服務701上接收之一顏色變更。即時觸控筆7〇2 包含一同步外掛軟體集合8〇9與—非同步外掛軟體集合 810。該同步外掛軟體集合包含同步外掛軟體i 8〇1、動態 成像器804與同步外掛軟體3 8〇5,來自同步外掛軟體集 。809之輸出傳送至輸出佇列7〇9。非同步外掛軟體集合 8 1 〇自輸出仵列709接收資料组並於非同步外掛軟體 1-3、811 ' 812及813加以處理。
對第8A與第8B圖之下列說明來說,使用資料封包 然而應了解也可使用其他資料組以傳送資訊。資料封 僅為可使用之資料組類型之一範例。在此該即時觸控 八有一資料封包八與B於輸出佇列7〇9中。當一顏 變更CC由筆服務701接收時,資料封包c目前由動態 像器804處理。該顏色變更。〇可立即傳送至且由其中 5步外掛軟體處理。然而,這麼做可能建立一混淆情況 其中資料封包A、B、與C在該顏色變更前建立。因此 °能僅想要在由非同步外掛軟體集合“Ο最後處理與最 36 1374368 執行資料封 為了延 809中其中 入佇列703 上處理,具 之結果。利 接收之資料 第8A 變更。然而 件之方法對 某些外 類屬性,也 筆下壓(筆S 兩類之分離 之考量等等 使用者角度 第8B I 與處理筆勢 包含一觸控 提事件(SU) 合809中之 一或多個之 識為一筆勢 並將其放置 包A、B、與C後才處理該顏色變更。 遲顏色變更CC之處理’可建立外掛軟趙集 一同步外掛軟體,並將一資料物件CC1推入 中。接下來’該資料物件可由該輸入仔列於 有顏色變更由輸出佇列709中之CC2加以呈 用此方法’變更一筆劃顏色之指令可以該之 封包加以排序。 圖顯示由該即時觸控筆组件7〇2處理之一顏 ,此建立由一輸入仵列或一輪出作列處理之 處理其他事件是很有幫助的。 掛軟趙(包含但不限於該動態成像器)可具有 就是變更會立即生效者,對上自該下一個觸 )J開始)生效者。由於各種不同原因,可發生 ,包含:技術考量'使用者經驗與使用者預 。例如,可延遲一筆劃顏色變更,以保留來 之筆劃與事件發生之順序。 S顯示即時觸控筆組件7〇2,同時處理資料封 辨識物件。輸出佇列709包含許多資料物件 筆下壓事件(SD)、資料封包(p)、及一觸控筆 。當-觸控筆上提事件su自同步外掛軟體 筆服務701接收時,筆勢辨識器嘗試辨識來 前資料封包p之一筆勢。若一資料封包已被 ,筆勢辨識器8M產生一筆勢辨識物件 於輸入佇列703中。物件GR之筆勢辨識接 合 輸 線 現 前 色 物 兩 控 該 期 白 包 9 上 集 白 辨 著 37 U/4368 透過該同步外掛赴餓彳宙4 傳送’並路由至該輸出佇列7〇9。從
輸出佇列709,該筆勢辨識物件gr透過該非同步外掛軟 傳送接著被摧毁/删除/回收/釋放。該筆勢辨識物件透 過該輸入外掛軟體集合8〇9建立與傳回之—優點在於該處 理允許在傳回該輪出佇列7〇9之前修改及/或刪除該已接 收筆勢辨識物件。此外,藉由讓筆勢辨識物件⑽由同步 外掛軟體集合809與非外掛軟體集合8ι〇加以處理由於 由該筆勢物件处之存在加以取代,可移除該觸控筆下壓 與該觸控筆上提事件之資料封包H該事件可忽略該 筆勢對應之資其仍可關於其他外掛軟體下游,一般來 說田呈現該筆勢辨識器時,該系統管理呈現何外掛軟體, 使得該行為與該研發人員想要的結果_致,也就是在被置 換之後,被忽略之資料實際自一資料結構移除。
例如,一 InkCollecting0bject外掛軟體(可建立一封包 表,且接著建立一墨水筆劃於31;上)在該GR獲取時可能 已經建立該筆劃。所以,在接收該GR之後該 InkCollectingObject可僅刪除該之前已建立之筆劃。另一 外掛軟趙可接著負責觸發該GR上之適當動作。 該同步與非同步外掛軟體集合中之資料之處理為資料 允許各種不同處理技術。若某些資料僅關於某些外掛軟 體,若有需要,可忽略其他外掛軟體或傳送該資料^舉例 來說,一第一外掛軟體可決定該資料封包關於一不可墨水 一顯示器之區域。一第二外掛軟體可以各種不同方式處理 該資料封包,包含: 38 1374368 忽略來自該第一封包之通知, 吸收該通知,並通知使該資料封包不傳送至後續外 軟體,或 指示其對該通知無興趣(舉例來說’藉由設定指示該 二外掛軟體具有這些類型封包之興趣之範圍之一屬性)。 此,當只是對該資料封包無興趣時,該即時觸控筆組件 跳過該第二外掛軟體。 此第三方法c藉由當不需要時,藉由移除一函數呼 之負載提供一效能優點。 自 訂觸 控筆資 料可藉 由呼叫 AddCustomStylusDataToQueue方法加入該即時觸控筆 件。若自一同步外掛軟體作成至 AddCustomStylusDataToQueue方法之呼叫,以響應至 IstylusSyncPlugin方法其中之一之一呼叫,則該自訂觸 筆資料會以一決定性方法加入該輸入板筆資料流;否則 其以一非決定性方式加入。若取消該 RealTimeStylus 件,該 AddCustomStylusDataToQueue 方法丟出一例外。 自訂觸控筆資料可加入三個地方其中之一之即時觸 筆物件之佇列。 當該符列參數設定為「輸入」時,該自訂資料會加 該即時觸控筆物件之輸入佇列,且傳送至該同步外掛軟 集合中來自該輸入板筆資料流之新資料前^ 當該佇列參數設定為「輸出」時,該自訂資料會加 該即時觸控筆物件之輸出佇列,在由該同步外掛軟體集 掛 第 在 可 叫 該 物 該 其 控 物 控 入 體 入 合 39 1374368 目前處理之資料之後。 當該佇列參數設定為「立即輸出」時,該自訂資料合 1曰 加入該即時觸控筆物件之輪出佇列,在由該同步外掛軚題 集合目前處理之資料之前。 在上述各情況中,加入由該同步外掛軟體集合中後續 外掛軟體所增加之資料於由前述外掛軟體所增加之賢料 後。
自訂觸控筆資料加入該佇列中,作為一自訂觸控筆資 料物件,且外掛軟體透過其接收此資料 IStylusSyncPlugin.CustomStylusDataAdded 或 IStylusAsyncPlugin.CustomStylusDataAdded 方法。 該動態成像器與筆勢辨識器物件可加入自訂觸控筆資 料至該佇列。 該即時觸控 筆物件呼叫接收至其 AddCustomStylusDataTo Queue方法之呼叫之執行緒上之 IStylusSyncPlugin.CustomStylusDataAdded 方法。
該即時觸控筆物件可能或可能不配置以集合墨水。在 其不集合墨水之事件令,可使用該即時觸控筆以傳送墨水 資料至一墨水集合物件。該墨水集合物件可為外掛軟體該 即時觸控筆之輸出中之一墨水集合外掛軟體之形式。 墨水分析或手寫辨識並非該即時觸控筆物件之一功 能。當該墨水集合外掛軟體集合與建立墨水時,或當想要 辨識該墨水時,可複製該墨水至一 Rec〇gnizerC〇ntext或 Divider 物件。 40 1374368 該 水 集 例 果 因 可 將 集 成 靜 想 可 以 於 藉 知 製 喷 係 表 如上所述 動態成像器 可在第二次 合物件接收 如,可能有 組推至該動 此,可建立 忽略該預設 其外掛軟體 合、或用於 像器之一動 ,墨水可顯示超過一次。墨 顯示。在已收集於—墨水收 以一靜態成像器顯示。此可 時,使用其他類型之成像器: 夕色墨水做為該靜態成像器 態成像器對該同步執行緒來 一成像器並將其附至該同步 動態成像器,並建立自己的 同步執行緒中。亦可建立在 物件導向方法中之包含重新 態成像器。 水可在第一:欠以 集物件中後,墨 允許當自該墨水 以成像該墨水。 之部分。將此效 說可能太敏感。 執行緒。或者, 動態成像器,並 内部透過多形、 使用一標準動態
亦可重新使用該非同步執行緒上之此新成像器做為該 態成像器,或可為此目的建立__新成像器。例如可能 要成像墨水如同以炭或其他筆尖繪製成像墨水。此外, 能建立顯示墨水之一成像器,如同常常變更顏色(快或慢) 呈現實際墨水如何乾掉。此外,可能建立以漸層顏色(如 一彩虹中)顯不墨水以強調該墨水之一成像器。尤其,可 由建立訂閱至該StylusDown、Packets、及StylusUp通 之一同步外掛軟體,建立一動態成像器外掛軟體。當繪 時’該外掛軟體可接著成像該筆劃。該新成像器可處理 墨以及各種不同選擇機制。 當由該即時觸控筆物件處理時’ 一動態成像外掛軟體 即時顯不該輪入板筆資料之一物件。稍後,對於例如一 單更新之事件來說,動態成像器外掛軟體或一墨水集合
41 1374368 外掛軟體可重新繪製墨水。
該動態成像器物件實施該IstylusSyncPlugin介面。該 動態成像器可額外實施一非同步介面。當繪製時,該動態 成像器物件即時成像該墨水β在預設的情況下,當呼叫該 更新方法時’該動態成像器物件重新繪製目前收集之筆 劃’以及任何其他之前收集之筆劃(其可對應至 DynamicRenderer之CachedData)。其他更新行為之負載亦 為可能,包含參數以限制一繪製之行為,例如具有一剪貼 區域,使得墨水不會成像於一給定形狀之外。 此顯示於該各種不同圖式中(該動態成像器物件可暫 時快取(cache)墨水資料)。當該動態成像器物件接收至其 IStylusSyncPlugin.StylusUp方法之一呼叫,其快取該筆劃 資料並加入自訂觸控筆資料至該輸入佇列,以為該筆劃響 應該 StylusUpData 物件。該 CustomStylusData 物件之 CustomDatald 屬 性設 定為該
DynamicRendererCachedDataGuid 值 ,而該 CustomStylusData 物件之 Data 屬性 包含一 DynamicRendererCachedData 物件。一旦該墨水已成像下 游時,接著可清除相關資料之動態成像器之快取記憶韹。 或者,由於這些墨水筆劃可能還沒傳經與由該墨水集合物 件儲存,更新該墨水(重繪目前筆劃與儲存於CachedData 中之資料)可能不會總是清除墨水筆劃之動態成像器之快 取記憶鱧。 第9圖與第10圖顯示用以建立本系統各特點之方法, 42 1374368 步驟90卜例不-即時觸控筆组件,至步驟902, 例不同步與非同步外掛軟體。此
成像器與不包含_動態 或筆勢辨識器903之例證。在步帮9〇4中外掛 軟體加入外姐4/» *8Α & X 在步顆 軟體集合。該即時觸控筆於步錄905啟動。 步騍9〇6中,透過該即時觸控筆接收筆資料。 第1〇 ®顯示利用該即時觸控筆之一方法至步辑 佇列由該^接收一封包。此可能或可能不包含該輸入 之•作。該輸入仔列於任何時候支援任意資料之外掛 軟體’使其可至該 a。 輪 步集σ在此範例中,將資料放入該 %入佇列之特定組件 ^ 係、筆服務1如為呼叫-筆客戶端介 之RTS實施方式上數之結果。 至步驟 1002,續 446 λ η Ρ ^ 该封包進入同步外掛軟體集合。對例如 圖之系統來說,此步隸可表干值、 體 表不傳送該封包至該外掛軟 鍵)中第外掛;3時觸控筆為該集合(或若一鍵存在,則為 體上特殊封包資料呼叫適當的函數。在許 告兮 ’且件具有修改該資料或保持不理它的選項。 田該組件完成其操作時,會 之函數,以下類推。|呼4該下—個外掛軟體物件上 在步驟1 003中,兮,左 鏈該封包透過該同步外掛軟體集合(或 成像器之封包,如步驟:::送至一筆勢辨識器或動態 器,可開# f積t- 所不。若使用一動態成像 應事件)上之封包資料,並V::壓事件(亦稱為-筆下 像器之操作)。在—M 幕上加^像(該動態成 、 標上提事件(或筆上提事件)上,該動 43 1374368 態成像n可為該τ-㈣標η事件清除其存 若使用一筆勢辨識器,該筆勢辨識器可等待—游 ::開始累積資科於其本身儲存(例如,存 二"割累積時’該筆勢辨識器會傳送該筆劃至—辨: :料會:若筆:對應至一想要圖案(或筆勢),則Μ該筆勢 入該輪出佇列,i b)會清空該存儲器 始累積傳經該仔列之下一個游標下愿事件 -人開 勢可匕含一或多筆劃。如下方將詳加說明之 、 示多個筆劃筆勢如何針對第1。圖之處理加以處理圖,顯 對於-外掛軟體應察覺之前筆劃至何種 外掛軟體之目的所決定。 係由該 a·對一範例情況來說’等待—筆熱 罗之—外掛軟體可負 貝執行一動作’以響應該筆勢。· J聪不需|夕私丨/ 何關於該筆劃。例如’若一視窗中 — 「圓圈」筆 勢意指為該應用程式「刪除,,目卩丛 則接收該筆勢之外 掛軟體僅會傳送一「刪除」鍵擊s 羊至該視窗。對此範 例情沉來說,可能甚至不在該視窗 θ Τ杲合,其可為 包含文字之一視窗,且該RTS框& π ' . 架可安排於此情況 中,以允許筆劃資料以簡單落下, 從來不收集。因 此該外掛軟體不需要快取該筆劃。 i.對另一情況來說’上述之「轉謹怒 ^ . /a 浑器」外掛軟體產 生其本身之通知’使传下游外掛 词'軟發會知道棘泽 該筆勢,且因此不繼續其筆刻。 b-在另一範例情况中,該外掛軟體 執行墨水集合及 44 1374368 编輯操作。一典型範例可為該墨水集合器物件之一 模式(一墨水與筆勢模式),其中所有筆劃皆為潛在 筆勢,且若其被視為筆勢,則該筆勢會接著被刪 除。因此該外掛軟體應快取筆劃,以可找到與加以 刪除那些應該結束轉譯為一筆勢之筆劃。 對這兩種範例情況來說,單一與多重筆劃筆勢之間的 不同不重要;該應用情況可為多筆筆劃筆勢加以呼叫(如箭 頭)’其中上述之兩個範例外掛軟體會察覺到不必要的多筆 筆劃筆勢。 接下來’在步驟1005中,再由同步外掛軟體之集合處 理後,該封包進入該輸出佇列。如之前所述,在處理傳送 至此之各物件中,外掛軟體集合可修改刪除及/或取代該資 料封包。假設沒有同步外掛軟體刪除該封包,會執行步驟 1 005 ° 在步驟100 6中,該封包透過集合中之非同步外掛軟體 加以進行。
動態執行與湯、墨水(Wet Ink') 該系統提供快速與有效處理觸控筆資料之能力。為了 使電子喷墨表現如同實際墨水,該電子墨水必須呈現如同 真實墨水般容易自一觸控筆之筆尖流出。墨水流中小分裂 或延遲對該電子墨水經驗來說是不利的。下列說明各種不 同方法以確保電子墨水呈現自該觸控筆順利流出。「濕墨 水」視為控制於收集墨水後該動態成像器擁有靜態成像多 久之能力。為了幫助處理該動態成像器中墨水之生命週期 45 1374368 之管理’可使用一通知(在此稱為 DynamicRendererCachedData) ’允許一墨水集合外掛軟體 自該動態成像器釋放該己快取(或濕)墨水。
可建立各種不同類型之動態成像器。例如,不成像墨 水為已由一精準點或鑿子點筆所建立,一動態成像器可成 像墨水為已由半透明水彩漆(亦稱為「水彩色」)所建立。 此外’一動態成像器可建立成像墨水為已由一炭觸控筆所 建立。此外’該動態成像器可成像墨水,使其不固定,但 定期變更顏色與/或移動。例如’該動態成像器可成像墨 水’呈現為併入該想要墨水形式之墨水小點或灰塵,就像 疋最終必然一起移動以形成想要墨水的小蟲,或是變更顏 色與形狀之墨水。
該動態成像器可以與稍後由與該!lTS之一非同步執行 緒相關之一物件成像之相同形式顯示墨水。或者,由該動 態成像器成像之墨水與和該rTS之非同步執行緒相關之墨 水之最終顯示間可存在一關係。例如,該動態成像器可以 一第一陰影或形狀顯示墨水,僅在稍後由該非同步執行緒 上外掛軟體修改為一第二陰影或形狀。此可呈現至該使用 者如同如自一觸控筆流出時墨水或漆的乾燥。 下列動態成像與濕墨水之說明可應用至圖6_7。為了 解釋之目的,請參照第6圖。第7圖之配置等於可應用, 且下列說明同樣想要囊括第7圖。 請參照第6圖,數位板輸入自筆服務6〇1進 亚到 即時觸控筆603。該即時觸控筆透過多個同步外掛軟體 46 1374368
物件606-608傳送該數位板輸入,並儲存該結果至輸出佇 歹1J 605中。物件606-608可透過描述該物件606-608間之 連結之一介面加以連接,例如 IstylusSyncP丨ugin。物件 610-611之非同步外掛軟體集合接收來自輸出佇列605之 輸出’並開始加以處理。例如,墨水集合物件611可自該 輸出佇列取出數位板輪入,並將其儲存為墨水。該數位板 輸入之動態成像發生於即時觸控筆組件603傳送該數位板 輸入(不論有無修改)至動態成像器608時。該數位板輸入 (不論有無修改)之靜態成像發生於該數位板輸入儲存於 該墨水集合物件611内之墨水存儲器中。
可能發生之一問題係於動態成像6 0 8之後,且該數位 板輸入儲存於該墨水集合物件6 11内前,—喷墨表面可變 成無效處。使用者經歷之結果會顯示墨水消失,直到該數 位板輸入到達該墨水集合物件611為止。該使用者可能相 信他或她必須重新建立該墨水,且接著花時間這麼做,導 致最後會儲存重複的墨水。此視覺斷續係由於該墨水並非 快速為一使用者顯示’或於一延遲後才顯示。 為了避免此消失墨水的情況,可於該動態成像器6 0 8 與墨水集合物件6 11之間建立一通訊協定。該動態成像器 608可繼續快取視覺存儲器609中之數位板輸入,直到由 該墨水集合物件611告訴它可釋放該數位板輸入為止(例 如,當該數位板輸入已儲存於墨水存儲器612中)。 為了本發明所述的目的,該動態成像器608中數位板 輸入之暫時快取記憶體609目前稱為已快取資料。濕墨水 47 件611中之前,該 係為於數位板輪入儲存於該墨水集合物 系统成像墨水之能力。
第11圖顯示該墨水集合物件如何警告該動態成像器 以釋放其已快取資料。動態成12〇1包含視覺存儲器 ⑽。墨水集合物件包含墨水存儲器12()4。〜旦該動態成 像器1201已儲存觸控筆資料於視覺存儲器丨2〇2中其輪 出—物件至該輸入佇列1205 ^於查看該筆服務7〇1之前, 該即時觸控筆(例如702)為該下一資料探測該輸出佇列加 以處理。對於在此之目的來說,注入該輪入佇列之物件稱 為DynamicRendererCachedData。該物件接著由該即時觸 控筆702拾取(具有或沒有額外處理),及將其輸出至輸出 符列1206中。同時,該墨水集合物件1203處理該已接收 觸控筆輸入封包,以呈現於該輸出佇列1206中。當該墨水 集合物件1203遇到來自該動態成像器1201之物件(在此為 該DynamicRendererCachedData物件)時,執行下'列各者: a.建立符合由該動態成像器成像之筆劃之一適當 相關筆劃;
b.應用該動態成像器筆劃上呈現之繪圖屬性至欲 成像之筆劃;及 c.傳送一釋放通知至該動態成像器1201。此通知 可包含成像該動態成像器上冬一方法’並傳送一 參數。 上述之步驟B可能或可能不適當成像’根據是否繪圖 屬性修改之同步化已於所有筆劃已移出一輸出仔列前發生 48 1374368 而定。第8A圖關於同步化具有之前接收之資料封包之繪 圖屬性變更之一方法。 該繪圖屬性可根據一研發人員的渴望於該系統中設 定,或在其他方法中,可提供於傳送至該墨水集合物件 1203之物件中。該釋放通知可為該動態成像器1201提供 之一介面上之一呼叫。在此,該通知可為 ReleaseCachedData °
第12圖顯示處理濕墨水之另一方法。第12圖包含該 筆服務輸入701,傳送觸控筆資料至即時觸控筆702。輸入 佇列703可處理與佇列輸入,具有放置於輸出佇列709中 之即時觸控筆事件槽之結果。第12圖包含一額外佇列 1 1 0 1。此佇列處理來自動態成像器11 02之結果,其已自其 他即時觸控筆事件槽A 1103與B 1104分離。在此,此方 法點出可能發生之問題,其中即時觸控筆事件槽 A 1103 與/或B 1 1 04減慢流自該觸控筆之墨水之外觀。第1 2圖之 系統在處理其他事件槽A 1103與B 1104之前處理觸控筆 資料之動態成像。即使事件槽A 1 1 03與B 1 1 04仍可導致 至該墨水集合物件1105途中處理觸控筆資料之延遲,該動 態成像1102事件槽可繼續於接收時處理觸控筆資料。在 此,只要觸控筆資料由動態成像器11 02加以成像,該輸出 會傳送至額外佇列1101,其接著由即時事件槽A1103與B 1104加以存取。注意,即時事件槽A1103與B 1104如何 存取之處理(一者呼叫另一者,或兩者藉由額外佇列1101 呼叫)可透過任一方法執行。 49 /4368 特點 中》 輪入_ 同步 關。马 外掛 出佇 組件 與其 13 12 步外 同步 外掛 軟體 13 1〇 識器 或一 13 13 聯僅 送至 著處 像並 第13圖顯示如何確保該濕墨水流自一觸控筆之又一 。在此’一輔助即時觸控筆物件存在於一分離執行緒 筆服務701輸出觸控筆資料至即時觸控筆組件ΐ3〇ι。 佇列1 3 0 2提供觸控筆資料至•動態成像器丨3 〇 3。其他 外掛軟體可能或可能不與即時觸控筆組件13〇1相 1擇丨生同步外掛軟體包含筆勢辨識器1304與及他同步 軟體1305。來自這些同步外掛軟體之輸出會傳送至輸 列1 306。在此,即時觸控筆組件1 307自即時觸控筆 1301連結至之輸出佇列13〇6。該即時觸控筆組件UN 相關同步外掛軟體13〇9_1313與非同步外掛軟體 -13 13作為來自即時觸控筆組件〗3〇1之透視之一非同 掛軟體。該資料封包(然而由即時觸控筆組件1301之 外掛軟趙修改)為即時觸控筆組件13〇7傳送至該同步 軟體集合。例如,為即時觸控筆組件1 307之同步外掛 集合包含同步外掛軟體Al3〇9、同步外掛軟趙元件B 、及(若之前未使用)筆勢辨識器1313。應了解筆勢辨 1313係為任何即時觸控筆組件關聯於一同步執行緒 非同步執行緒之一類型外掛軟體。將該筆勢辨識器 為即時觸控筆組件1 307與該同步外掛軟體集合相關 用於舉例說明之目的。 即時觸控筆…307之同步外掛軟體集合之輸出傳 輸出仔列13U。非同步外掛軟體物件⑴2⑴3可接 理輸幻宁列1313中之資料封包。同樣的,墨水動態成 自該筆順利流出,即使當該應用程式卡住時。 50 1374368 應注意參照該各種不同外掛軟體组件可鏈在一起,而 非互相跟隨於一外掛軟體集合中。一範例在此顯示於第13 圖中’其ΐ同步外掛軟體组件A 1309鏈至同步外掛軟體組 件B1310。當然,根據本發明各特點。將外掛軟體組件鏈 在一起或將其收集於一集合中之方法可取代或另外互相用 於定址外掛軟體组件。 筆勢辨識 筆勢辨識嘗試決定是否已作成一筆劃且將其
理。舉例來說,筆勢辨識器61〇負責查看數位板輸入,』 將筆勢辨識結果注入類似於該動態成像器6〇8之輸入佇歹 中。第8B圖描述筆勢辨識可如何以同步與非同步外掛專 體集合加以執行·»該說明關於針對該筆勢辨識物件之操作 該筆勢辨識器610可使用一演算法。在此,該筆勢表 識器可使用一排列演算法,以辨識多筆筆劃。例如,當孩 於該最大數量筆劃之一屬性設定時,該筆勢辨識器回頭^ 許多筆劃。例如,若該屬性設定為2,該筆勢辨識器回卑 看最近2筆劃’試著將其辨識為筆勢。此可能導致多重夯
識呼叫。然而,此方法減少一經常延遲,必須等待一筆秦 辨識器於最後一筆之後開始處理。 第14圖顯示一筆勢辨識器回頭看多遠以獲得一筆章 部分之一範例。該結果可儲存於—物件(例如,在此命名名
GestureRecognitionData)中。贫蛀里-Γ , ; 通、果可注入該即時觸控| 輸入佇列中。 一旦該墨水集合物件 611接收該筆勢物件(在此為 51 1374368
GestureRecognitionData),其為該筆勢自該墨水存儲器6 1 2 移除該筆劃,並作出適當動作以響應該筆勢。 如上所述,為了執行筆勢辨識,該系統可加入一 SystemGestureData物件至該輸入佇列,以響應完成該筆勢 之資料,例如停滯筆勢之一 StylusUpData物件。 該筆勢辨識器可實施為具有各種不同介面之一物件。 舉例來說’該筆勢辨識器物件可實施IstylusSyncpiUgin與 IstylusAsyncPlugin 介面。
當該筆勢辨識器物件辨識一筆勢時,其加入自訂觸控 筆資料至該輸入行列,以響應該筆劃之StylusUpData物 件。該 CustomStylusData 物件之 CustomDatald 屬性設定 為 該 GestureRecognitionDataGuid 值 ,而該 CustomStylusData 物件之 Data 屬性包含 一 GestureRecognitionData 物件。 在預設的情況下,該筆勢辨識器物件僅辨識單筆筆 勢。該筆勢辨識器物件可設定為辨識多筆筆勢(例如請見第
14圖)。對於多筆筆勢來說,該Cust〇mStylusDaU物件加 入該輸入佇列,以響應該筆勢之最後一筆的StylusUpDau 物件。當辨識多筆筆勢時,可為重疊筆劃組接收通知。舉 例來說’該第一與第二筆劃一起可辨識為一筆勢,該第二 筆釗本身可辨識為一筆勢,且第二與第三筆劃一起可辨識 為另一筆勢。 若為多筆筆勢辨識使用該筆勢辨識器物件,可使用一 階層性即時觸控筆模型,並附加該筆勢辨識器物件至該輔 52 ^/4368 助即時觸控筆物件,以減少該即時執行緒上之延遲,但避 筆勢辨識被該使用者介面執行緒上之延遲影響。 此外,可建立一自訂筆勢辨識器外掛軟體,其以三種 方式辨識手寫、筆勢、或其他物件。 a. 藉由傳送該筆勢資訊至一既有辨識器物件,並使 用該 AddCustomStylusDataToQueue 方法以加入 該結果至該筆資料流。 b. 藉由執行一自訂外掛軟體中之辨識,並使用該 AddCustomStylusDataToQueue 方法以加入該結 果至該筆資料流。 c. 藉由包裝一標準筆勢辨識器外掛軟體與以一菊 鏈方式呼叫該標準外掛軟體之一自訂外掛軟 體,在此方法中,一研發人員可實施空中筆勢辨 識’藉由「翻譯」空中封包至packets、 Cursor-In-Range 至 StylUSD〇Wn 、 及 CursorOutOfRange 至 StylusUp 中。 當由該系統辨識時,該即時觸控筆物件接收關於系統 筆勢之資料。下表描述SystemGestureData物件發生於關 於其他筆資料之筆資料流中何處。下列清單係舉例說明並 非窮盡。不超出本發明範圍外,結合本發明各特點之其他 筆勢亦可使用。
SystemGestnre 說明
Tap 在該 StylusDownData 物件後,且在該
StylusUpData 物件前。 53 1374368
DoubleTap
RightTap Drag RightDrag HoldEnter
HoldLeave Ho verEnter
HoverLeave 在該StylusDownData物件、Tap系统筆勢之 SystemGestureData 物件、及該 StylusUpData 物件後,且在該第二 StylusDownData物件 前。 在該 StylusDownData 物件及 HoldEnter 系統 筆劃之SystemGestureData物件後,且在該 StylusUpData 物件前》 在該 StylusDownData 物件後,且在該 StylusUpData 物件前。 在該 StylusDownData 物件後,且在該 StylusUpData 物件前。 在該 StylusDownData 物件後,且在該 StylusUpData物件前。若該使用者開始一 Drag或RightDrag系統筆勢,此系統筆勢不 會被辨識》 非必需的 在數個低平均速度之InAirPacketData物件 後。在接收該HoverEnter系統筆勢前,可有 可通知延遲。若該即時觸控筆物件係附加於 於該系統筆勢時直接於該筆下之視窗或控 制’該即時觸控筆物件僅接收此資料。 在 HoverEnter 系 統 筆 勢 之 SystemGestureData物件及數個充分平均速 度之 InAirPacketsData物件後。在接收該
54 I374368 同步與非 當例 行緒可分 自一筆服 為不需要 之資料封 許一動態 封包,並 理’即使 同步 之此新執. 者介面執; 該即I (封包佇列 算光處理;! 該使1 由需要可1 輔助,一 4 介面執行承 時堵塞健d
HoverLeave系統筆勢前,可有可通知延遲。 若該即時觸控筆物件係附加於於該系统筆勢 時直接於該筆下之視窗或控制,該即時觸控 筆物件僅接收此資料。 同步處理 示一即時觸控筆範例時,可例示一執行緒。該執 成同步物件與非同步物件。該同步物件一般與源 務組件之封包同步操作。該非同步物件一般集合 總是執行於具有墨水筆劃與其他源自筆服務組件 · 包之不同想法中之物件。這兩個執行緒的分離允 成像器物件與資料封包之接收同步快速處理資料 允許仍然很重要的其他外掛軟體物件可正確處 具有來自該來源資料封包之接收之一稍微延遲。 外掛軟體之集合執行於該即時觸控筆範例所例示 行緒上。非同步外掛軟體之集合可執行於一使用 ί亍緒中。 時觸控筆執行緒可用於可計算光活動,使得喷墨 · 與動態成像)大致有反應且平滑。因&,僅 < 計 般以該同步外掛軟體之執行绪加以實施》 =介面執行緒(僅關於該輸出作列之輸出)通常 :算加強活動之非同步外掛軟體加以使用。為了 宁列架構提供於該即時觸控筆執行緒與該使用者 :之間’欲針對該使用者介面(UI)執行緒中之暫 匕該UI執行緒可能或可能不是收集於該即 55 1374368 時觸控筆執行緒上收集之封包與其他資料之最終目標。應 注意其他架構可較佳處理可計算加強活動,藉此不快速強 迫一研發人員於堵塞一筆執行緒與一使用者介面執行緒之 間加以妥協。例如,在此所描述之一階層化設計允許執行 緒之分離,以較佳處理不同活動。
該筆勢辨識器可實施於該同步執行緒上,或若該筆勢 辨識器決定或參與自預期很重的筆勢辨識活動慢下來(如 筆劃將要針對其比較之大量已接收筆勢),可實施於該非同 步執行緒上。該筆勢辨識器物件可具有一同步外掛軟體介 面與一非同步外掛軟體介面,以給予一研發人員利用來自 其中之一或兩者執行緒之物件之彈性。此功能並非限制該 筆勢辨識器。該動態成像器或任何其他外掛軟體可選擇性 支援其中之一或兩者佇列之使用。應了解所有外掛軟體可 能或可能不具有一同步介面、非同步介面、或兩者,以允 許一研發人員放置該外掛軟體於非同步集合中,或於一非 同步集合中,或若該外掛軟體支援此兩者,根據該研發人 員為該外掛軟體參與一良好位置何處而.定。 該即時觸控筆物件提供即時存取該輸入板筆資料流, 且可執行其本身之執行緒。同步外掛軟體一般可能或可能 不執行於即時觸控筆物件之執行緒上,而非同步外掛軟體 一般可能或可能不執行於該應用程式之使用者介面(UI)執 行緒上。為需要即時存取該同步執行緒上資料流且為可計 算光之工作,例如動態成像,可藉由放置外掛軟體自該非 同步執行緒分離該同步執行緒。不需要即時存取該該資料 56 1374368 流之工 行緒上 可 筆資料 可聚合 13圖中 階層化 在 略之一 起運作 步執行 若 能,該 能外掛 建 當該研 常常導 堵塞動 置處之 有該墨. 如 他操作: 取一資i 辨識係1 作外掛軟體,例如菜皮杳 。 ~如墨水集合,可放至於該#同步執 計算性加強之特定工作 次^ ^ 无木接近即時存取輸入板 流,例如多筆筆勢 町 ' 處理延些工作的外掛軟體 於一執仃緒或另一 或可為如第12與第 所不階層化即時觸控筆物件之部分 許多方法中,即時觸控 執行緒主機。第13圖顯係封裝可擴充性與 ? 13關不多個同步執行緒可如何 =範:》筆勢辨識器可於位置13〇4處放置於該 有,於位置1313處放置於該同步執行緒上 人員想要以一多執行緒方式連接之多重 铲护以了階層化多個即時觸控筆範例,並將其 軟體作為同步外掛軟體。 礒此特性之特殊情況係了解「真正不可t斷」喷墨 員特別有興趣於多筆筆勢時,該筆勢辨識器 致重大延遲,以獲得辨識結u此當具有潛 〜成像時’該筆勢辨識器可能不在該動態成像器 時觸控筆之同步集合上。該筆勢辨識器亦可放 X集。物件,具有非同步外掛軟體之集合。
13圖中顯不之系統在想要自該筆勢辨識器或4 執行緒分離可計算強化操作是有利的,包含例如] 料庫、張貼至網路伺服器、更新一螢幕等等。筆售 凉「真正不可中斷」經驗之一整合部分處,可能J
57 1*574368 有該筆勢辨識器執行於其本身執行緒上,稱為一第二即時 觸控筆執行绪。 即時觸控筆可藉由實施—非同步介面支援此用途,因 此允許其作為僅一非同步外掛軟體範例。下列描述—即時 觸控筆可能如何加入另一即時觸控筆。下列提供許多可能 或可能不實施之選項。 1-當—即時觸控筆加入該非同步外掛軟體集合 時’該系統可限制關係,使得沒有其他非同步外 掛軟體介面可被加入。 Φ 2· 不同數量的即時觸控筆物件可沿著多方向階層 化。例如’多RealTimestylus物件可直接連結至 早 根源(卩&>^1^)」尺6&11^11168171118,或者該多
RealTimeStyluses可加以串聯,使得各階層化至 · 下個’或者該RealTimeStylus物件可連接於前 . 述配置之一组合中。為了簡化或可靠性,—實施 者可選擇限制這些組合。 3·當相同即時觸控筆範例自多即時觸控筆根源加 入非同步外掛軟體之多集合時,該階層化即時冑 · 控筆可正常作用。或者,該階層化(子)即時觸控 筆範例可停止運作,並外掛軟體一 ErrorData物 件至該仔列中。該Err orData物件可為至下游物 件之私示,該資料中有一錯誤,或處理該資料 時別外掛軟體碰到一錯誤。當然,這僅為— 處理錯誤之方法。亦可使用其他方法。 58 應注意—實施方式可重新倭s .π ^ 作為階層^ Λ 使用一非问步外掛軟體集4 β增化之一集合點,而
層化RTs > ^ —實施方式可具有連接一 R
^之一專用連接點,拉IL
有其本> Μ π q此允許階層化中之各RTS J =身的獨立同步與非同步外掛軟體組。 ,、了解該ErrorData物件之户六 來。所、 干之存在可自階層化獨立it 以,該—a物件之產生可針對單一即時觸拐 卩及階層化即時觸控筆組件加以
^•畴外掛軟體集合修改 步夕了促進效能,可修改該即時觸控筆上之同步與非同 卜掛軟體集合,而不需取消且接著重新啟動該即時觸控 「。因此’不保證於該即時觸控筆範圍處有_厂啟動」或 「取消」操作完成。 為了確保外掛軟體可初使化&清除處之一時間,可做 人工」(意指並非導自真正客戶端程式瑪呼叫以啟動及取 消)RealTimeStylusEnabled & RealTimeStylusDisabled 呼
叫至自該外掛軟體集合動態外掛軟體或移除之外掛軟體。 下列說明某些可能發生於加入或移除外掛軟體時之行 為。 參 當一外掛軟體加入一已啟動即時觸控筆範例 時,可對此外掛軟體做一人工 RealTimeStylusEnabled 呼叫; • 當一外掛軟體加入一已取消即時觸控筆範例 時,可能不發生任何事; 59 1374368 ® 外掛軟體自一已啟動即時觸控筆範例移除 時’可對此外掛軟體做—人工
RealTimeStylusDisabled 呼叫;及 參當一外掛軟體自一已取消即時觸控筆範例移除 時’可能不發生任何事。 維持這些關係之方法可能或可能不包含每次當獲得一 即時觸控筆啟動呼叫時遞增一計數器。每次獲得—即時觸 控筆已取消呼叫時遞減此計數器。當該計數器為丨時此 外掛軟體運作。當該計數器變得大於丨時此外掛軟體產 生例外並禁止其功能。當該計數回到1時,此外掛軟體 保持取消。該外掛軟體僅在當該計數器再次回到〇時自我 重新啟動β亦可使用其他方法。 錯誤傳播 設計時間 當在研發環境中(例如Microsoft公司之Visual Studio .NET)時,研發人員可中斷於發生之任何例外處,不 論其被抓到或不具有一嘗試抓取。因此,為了偵測該 RealTimeStylus框架無效配置之目的,錯誤報告是很直覺 的。 執行時間 當即時觸控筆與同步外掛軟體執行於不同於該讥執 行緒UPP執行绪)之即時觸控筆執行緒(墨水執行緒)上 時,該錯誤報告/傳播問題可能對執行時間錯誤來說變得很 難。若一同步外掛軟體產生-例外,纟可被該即時觸控筆 60 1374368 抓到,但該例外除此之外無處可去,由於其於該即時觸控 筆執行緒(墨水執行緒)上,且該控制流之來源係該即時觸 控筆》傳播該錯誤至該使用者介面執行緒,並允許該客戶 端程式碼優美的處理該錯誤可能很難。下列描述一解決方 法。
該.NET標準錯誤處理係當例外發生時,啟動來自該外 掛軟體之事件,並使UI執行緒中的研發人員的錯誤處理 程式碼聽從該事件。此對即時觸控筆沒有作用,雖然當一 外掛軟體啟動一事件,由於該佇列,有一可能性導致例外 之資料可能不會到達該 UI執行緒。做出複雜錯誤處理而 沒有内容有效性(也就是該壞資料以及之前與後續資料)是 一大挑戰,其中該例外發生至該錯誤處理程式瑪。此方法 僅對簡單錯誤處理來說是好的,例如發生一錯誤對話方 塊,並終止該應用程式。
當該外掛軟體為該研發人員控制下之為一程式碼區塊 時,適當放置以做出該即時觸控筆框架中之錯誤處理係該 外掛軟體(同步或非同步)。 於自一同步外掛軟體發生一例外上,該即時觸控筆執 行緒(墨水執行緒)不應立即停止運作,使其不可能做出錯 誤處理於該UI執行緒(app執行緒)中(如該佇列必須為錯 誤處理保持互動)。此外,一外掛軟體視為無效輸入可能會 對另一外掛軟體完全有效。 第15圖顯示一可能的解決方法。在此,例外資訊係透 過該佇列重新路由為一 ErrorData物件。錯誤處理可能做 61 1374368 於外掛軟體中。該例外資訊可透過為外掛軟體建立之資料 流處理,也就是該仔列。 如第15圖中所示,該即時觸控筆6〇3抓出來自外掛軟 趙606-608之所有例外,並建立一 Err〇rData物件。下列 顯示識別錯誤之一方法: a. 若該例外發生於該同步或非同步外掛軟體的介面 上之錯誤方法中,就不建立Err〇rData物件以
避免藉由呼叫回該例外來源外掛軟體之無限迴 圈。 1·另一方法係在導致該例外之實際資料之 則’立即透過該集合中剩餘外掛軟體傳送 該 ErrorData 物件。
b. 若該例外發生於該同步或非同步外掛軟體方法的 介面上之其他方法中’在導致該例外之實際資料 之前,該ErrorData物件會可立即先傳送至該例 外來源外掛軟體本身,且接著傳經集合中剩餘外 掛軟體。 c. 若該例外發生於該同步外掛軟體中,或傳遞至非 同步外掛軟體,該Err〇rData最後佇列於該輸出 佇列中。 d. 在該ErrorData透過該集合之後,導致該例外之 資料傳經該集合中之剩餘外掛軟體。 該 ErrorData 物件矸透過專用方法(例如’ IStylusSyncPlugin.Error 方法或 IStylusAsyncPlugin.Error 62 1374368 方法)傳經該外掛軟體集合。 尤其是’當一外掛軟體丟出一例外時,中斷該正常資 料流。該即時觸控筆物件產生一 ErrorData物件,並呼叫 丟出該例外之外掛軟體之 IStylusSyncPlugin.Error 或 IStylusAsyncPlugin.Error方法,及該集合中剩餘外掛軟體 之 IStylusSyncPlugin.Error 或 IStylusAsyncPlugin.Error 方 法。若丟出該例外之外掛軟體係一同步外掛軟體,該 ErrorData物件加入該該輸出仔列。接著即時觸控筆物件恢 復來源資料之正常處理。 若一外掛軟體自其錯誤方法丟出一例外,該即時觸控 筆物件抓出該例外,但不產生一新錯誤資料物件。或者, 一新錯誤資料物件可根據該實施方式或該研發人員之渴望 加以產生。在此其他方法中’該即時觸控筆可接著藉由限 制該遞迴數減少任何已建立之迴圈, 閲 4具可同時忽略該危 險。 在與由同步外掛軟體加入之自訂觸 j嗎径筆資料之關係 中,於加入建立該錯誤資料之例外前立 ^ .. 丨输出」知列之 任何自訂觸控筆資料之後,及在由該 这冋步外掛軟體集合中 後續外掛軟體加入「立即輸出」佇列 M ^ ^ 目訂觸控筆資 料之刖’該錯誤資料加入該輸出佇列。 ^ ^ A 任何同步外掛軟 體加入自訂觸控筆資料至該「立即輪出 鈣钽咨h 出」知列,以響應該 錯誤資料,該資料立即加入該錯誤資斜 外㈣h 6 貢料之前。若任何同步 铒咨^ 铕出仔列,以響應該錯 誤資料,該資料立即加入該錯誤資料之後。 63 1374368 該即時觸控筆物件呼叫該例外自此丟出之執行緒上之 IStylusSyncPlugin.Error 方法。 已管理/未管理舉例說明 第16圖顯示各種不同方法,以深植本發明之各特點。 該系統可包含由一 C#已管理物件集合所包覆之COM物 件。或者,任何物件導向語言可使用包含java、C + +等等。
第16圖顯示存在於已管理與未管理空間中之一即時 觸控筆組件。第1 6圖包含一動態成像器、非同步外掛軟體 Y、一非同步外掛軟體與一筆勢辨識器。 筆服務1601傳送觸控筆資料至具有其輸入佇列16〇3 與輸出佇列1604於該未管理程式碼區域中之即時觸控筆 組件1602。觸控筆資料傳送至該已管理程式碼區域中之即 時觸控筆組件1605。 該動態成像器係附加至該即時觸控筆組件之第一同步
外掛軟體,在該未管理空間中,具有其資料快取記憶體 1616之動態成像器1608係附加至該即時觸控筆組件 16〇2。同樣的’在該已管理空間巾,具有其資料快取記憶 體1 6 1 7之動態成像器1 6 1 5係為即時觸控筆組件〗6〇5之同 步外掛軟體集合之部分。該同步外掛軟體集合中之下一個 同步外掛軟體係同步外掛軟趙1 607 〇同步外掛軟體16〇7 跟在ReaiTimeStyUs組件1 605的同步外掛軟體集合中之 動態成像器之後。由於同步外掛軟趙γ 16〇7僅存在於已管 理空間中,一同步外掛軟體包覆 RealTimeStylus 組件 1 602 透過該 器〖618允許該已管理 已管理/未管理邊界存取 64 丄 @步外掛軟體1607。
第〗6圖亦顯示非同步外掛軟體之一集合。該非同步外 掛軟體包含一同步外掛軟體1612與筆勢辨識器16〇9。同 步外掛軟趙丨612係於已管理空間中附加於 組件之非同步外掛軟體集合中之第_非同步外掛軟體。由 於非同步外掛軟體1612係於已管理空間中,非同步外掛軟 體包覆器1619可用於允許自該未管理ReaiTimeStyius组 件1602加以存取。該筆勢辨識器存在於已管理空間與未管 理空間中。具有其資料快取記憶體161〇之已管理筆勢辨識 器1 609係於非同步外掛軟體1612之後存取之下一個外掛 軟體。筆勢辨識器1 609可與該筆勢辨識器(具有其快取記 憶體1614之1613)之未管理版本交換資訊。 跨第16圖之已管理與未管理側之資料可能必須於 管理空間中使用之結構與已管理空間中使用之結構之間 換或「整頓」。Microsoft公司之·NET框架提供一互相操 層,自動執行許多此整頓。此額外資料處理招致一應用
能懲罰,所以調整第16圖中所示之設計,以縮小跨互相 作層之次數。 為RTS 1605之已管理包覆器與未管自⑽16〇2間 關係係原生(未管理RTS 1 602),該已管理 來像另一個RT S事件槽。當例示有其建構 器1615時’該RTS 1605存取該對應未 RTS 1605 看起 器中之動態成像 管理動態成像器 16〇8 ’並將其銜接至同步外掛軟體集合中其本身之後 該已管理筆勢辨識器物件 1 609可為一非同步外掛软 65 1374368 體之-完整實施方式。#累積封包資料於該已管理側上, 並跨該互相操作層加頓,並傳至該*管理程式瑪實施 方式1613。該傳回之程式碼係是否封包對應至_筆勢與 否。 '
一該已管理與未管理動態成像器物件1615與1 608亦顯 八;第6圖中。該已官理動態成像.器物件可為比該未管理 動〜成像器16 0 8之屬性較薄之包覆器。該已管理動態成像 器1615為可選擇的。該已管理動態成像器1615並未例示 於此’其可例示為其他同步外掛軟體其中之一。 下列係建立第1 6圖之系統之一方法: a·首先’—研發人員例示該已管理非同步外掛軟體 1612與已管理動態成像器1615。在内部,動態 成像器1 6 1 5例示一未管理動態成像器1 60 8,以 向下傳送傳送屬性設定。 b·第二’一研發人員設定該動態成像器1615上之 屬性(繪圖屬性等等)》
C· 第二’―研發人員例示即時觸控筆1602,處理該 即時觸控筆建構器中之動態成像器1615。幾件事 可能會在内部發生: κ 已管理即時觸控筆1605查詢(經由公用密封 存取器)該未管理動態成像器1608之位址。 η.已管理即時觸控筆例示一原生即時觸控筆 16 02,其將其本身銜接至筆服務1601。 iii.已管理即時觸控筆16〇 5將其本身銜接至原生 66 即時觸控筆1602’作為一即時觸控筆事件槽。 iv.已管理即時觸控筆16〇5將該原生動態成像器 1 608銜接至其同步輪出。 V-已管理即時觸控筆1 605將其本身銜接至該原 生即時觸控筆1 602同步外掛軟體執行緒。 d·第四,該研發人員例示一或多個已管理同步與/ 或非同步外掛軟體物件,選擇性包含該已管理筆 勢辨識器1 609。 e·第五,該研發人員將該已管理外掛軟體物件收集 在一起,至各種不同外掛軟體集合中。(此可藉由 通知該外掛軟體應存取之順序之RealTimeStylus 組件加以完成。或者’為了將該外掛軟體鏈接在 一起’可設定一屬性並於此參照至該第一外掛軟 體。) f. 第六’該研發人員將該已管理非同步外掛軟體物 件1612關聯於該已管理即時觸控筆1605 InkCollection.Object屬性(因此將該非同步外掛 軟體物件1612銜接至該非同步外掛軟體集合)。 g. 第七,該研發人員設定RTS.Enabled為「真」。此 亦可導致該已管理即時觸控筆1605設定該原生 即時觸控筆 1 602 上之 IRealTimeStylus->Enabled 為「真j。 h. 第八,事件開始透過即時觸控筆1 602流入。 步驟(c)可理解為另一配置。例如,該API可能不具有 67 ^/4368 任何外掛軟體特定調節於該RTS建構器上。而是 建構器之各種不同負載指出該RTS本身將如何名 附加至—視窗或控制、與一或多個數位板相關連 上筆行為等等)。由於資料之效能應用跨該相互操 -人’可使用該 DynamicRenderer參數。如设 DynamicRenderer可以一架構方式用於外掛軟體 中之第一或最後一同步外掛軟體。 第16圖顯示縮小跨該相互操作, DynamicRenderer於外掛軟體之已排序清單任何 構之一方法。 下列描述利用第1 6圖之系統之一方法: a. 筆服務1601呼叫RTS 1602上之一函數 積至與RealTimeStylus組件1602相關 軟體集合之資料。在某些情況中,來自 16 03之資料亦可傳送至該外掛軟體集合 b. 當新資料出現於該輸入佇列1603時(或 至筆服務1601之介面上呼叫該適當方$ 生R_TS 1602會做下列各項: i. 自數位板空間轉換封包至 himetric( 間」); ii. 將該反向轉換(himetric->數位板)敌 資料中;及 iii. 在同不外掛軟體集合介面之(在此情 理RTS)資料可藉由呼叫該適當函數 ,該 RTS έ使用(如 、滑鼠對 作邊界多 —來, 集合或鏈 且允許 處之一架 ,傳送累 同步外掛 輸入佇列 〇 當於暴露 fc·時)’原 「墨水空 入該封包 況下已管 傳送該已 68 1374368 轉換封包資料至該外掛軟體集合之第一同步 外掛軟體。 C. 已管理RTS 1605做下列各項: i. 建立該適當已管理資料結構,以一親切管理 方式掌握資料; ii. 呼叫該已收集已管理同步外掛軟體上之適當 函數; iii 確保各外掛軟體處理該資料,並傳回 RealTimeStylus組件1 605,使得該下一外掛 軟體可被呼叫;及 iv. 依此類推,直到其呼叫筆勢辨識器1 609上之 對應函數為止(若使用筆勢辨識器1 609)。 d. 動態成像器1615可由該RealTimeStylus 1 605加 以呼叫。當動態成像器1615完成執行該新封包 時,其傳回,該未管理RTS 1602偵測是否封包 資料袜修改,且將該適當資料放入該佇列中。若 有任何「非立即」使用者資料項目欲加入,其會 現在加入。 e. 原生 RTS 1602接著張貼私用訊息至該附加視 窗;及 f. 原生RTS 1 602接著查看該輸入佇列1 603,看看 是否加入任何即時資料,且若是,則再次呼叫該 同步外掛軟體集合傳送該資料。若無加入資料, 原生RTS 1602會傳回,允許筆服務1601處理並 69 以斩數位板資料再次呼叫RTS 1 602。 g 該私用訊息由原生RTS 1602上之子類別程序看 見’其自該佇列1603取出該資料,並呼叫該附加 同步外掛軟體介面上之適當函數。
也此情況中,該已管理RTS 1 605已自我連接且 被呼叫。該已管理RTS 1605接著呼叫至該非同 步外掛軟體1612上之對應函數。此可能傳經非同 步外掛軟體包覆器1619。 ' 該已管理非同步外掛軟體1612接著非同步處理 該資料,適當執行或累積。
j· 該筆勢辨識器1 609可被呼叫如該RealTimeStylus 組件之非同步外掛軟體集合之部分《該筆勢辨識 器1 609在内部累積封包,直到遇到一 CursorUp 為止’在此時該已累積封包會跨該互相操作邊界 傳送至該原生筆勢辨識器1613以供辨識。 i 此操作傳回關於何筆劃被辨識之資訊,及多 少筆劃對應至各可能筆勢; η·筆勢辨識器1609接著使用已管理RTS 1605 (「立即」設定為否)上之一 AddlJserDataT〇Queue方法’已將該筆勢辨識 之結果放入該佇列1 604中以供非同步消耗。 (此導致該新筆劃資料立即跨過該互相操作 邊界’並落入另一佇列中,直到該原生外掛 軟體集合完成為止);及 70 1374368 iii. 額外啟動一傳統已管理事件至任何等待者, 以即時通知該世界發生一筆勢。 iv. 該目前資料接著為該外掛軟體集合中之任何 額外外掛軟體,由筆勢辨識器1609傳回至該 RealTimeStylus 組件 1605° 資料組舆流 下列列出事件槽處理器及與其相關之資訊:
• 來源IrealTimePen 此往回指標給予該事件槽
實施方式至該來源 RealTimeStylus 之一往回 參照。此指標允許兩件 事:(a)存取關於該觸控筆 範例之内容資訊(例如,動 態成像器1 6 1 5必須可做 數位板座標與像素間之單 位轉換),及(b)於多個RTS 事件鏈間共享。 • TabletContextID 允許即時資料之消費者有 效累積資料,並使用該輸 入板ID做為該資料集合 中之一索引器。 • PacketDescription 描述一封包呼叫中之資料 佈局。不同數位板支援不 同資料量,包含(例如)X、 71 1374368 y 、壓力、角度。該 PacketDescription 指出至 一封包之接收器,此資料 如何配置於最後會到達之 整合器之平陣列中。 • CursorlD 允許即時資料之消費者有
效累積資料,並使用該游 標ID做為該資料集合之 一索引器。 • Styluslnfo 合併便利資訊之一簡單結 構,包含:
TabletContexflD ; CursorlD ;
反向狀態(此為一三 態,指出關聯與是否該游 標對應至一筆之「橡皮擦」 端或「書寫」k ), 按鈕狀態(是否按下 各個至多為32個按鈕); 及若有需要則有其他相關 資訊。 • PropertyCountPerPacket 折衷允許一研發人 員推論封包資料之佈局, 而不需一 API呼叫之參 72 1374368 數。Χ、Υ保證為第一個 且一此順序’且計算允許 研發人員僅對xy資料有 興趣,走過該清單,跳過 每第η個元件。 • CountOfPackets 有效之「綁在一起」封包 數(筆服務及/或該數位板 裝置驅動程式決定許多封
包何時且如何依此方式結 合)。 • PacketData 此為該封包資料之唯讀副 。 • c〇unt0fPacketsRef該已修改封包資料中封包 數設定何外掛軟體為研發 人員可分配者。
照,其給予外掛軟體 之研發人員修改該封 料的能力,以完成包 道J 者, 如, 時資料操控之情況。 在一實施例中’可能不允許外掛軟體集合實施方 是否封包資料在進入該外掛软體集合前加以修泛 若該封包資料已被修改,可通知該外掛軟體^ 可設定該資料上之一旗標或該資料之一獨立旗申 73 1374368 許外掛軟體集合之一優點係了解是否封包資料已被修 提供外掛軟體集合忽略已修改封包資料警告外之能力 一特點,此方法為一研發人員提供犯錯之其他選項。 要的是,由於外掛軟體不再不可知論該資料之來源, 合該設計圖案之簡單性與物件導向特性。若該外掛軟 偵查該來源與已修改資料,則其可能執行屬於該之前 軟體之操作。 為了效能/效率的原因,可在内部維護兩個資料結 使得除非該研發人員想要修改該資料,不需要分配該 體。 資料同步化 下列描述資料如何加入一佇列,以確保同步化, 17A圖中所示。 一 IC 0可使用該輸入與輸出佇列作為一信號機制 同步化進入該 UI執行緒上具有經過該喷墨執行緒之 中資料之其他要求。 第 17A圖顯示.當該系統處理資訊時發生之一模 換。該系統於1701顯示一第一處理(「完成」)之結論 時間1702,接收新觸控筆資料,並開始由外掛軟體1於 處理,且由外掛軟體2於時間17 04處理,並完成於 1705。模式切換發生於時間1703。例如,若一應用程 使用者自「墨水」變更「編輯模式」至「抹除」,且該 程式忙碌。有一合理的可能性為在該使用者模式變更 來自該佇列之封包資料流仍為某時間量「墨水」。 改, 。另 更重 其混 體可 外掛 構, 記憶 如第 ,以 方法 式切 。於 1702 時間 式之 應用 後, 74 1374368
然而,不於目前將模式切換事件加入佇列17〇6’而係 延遲直到為觸控筆資料於時間1705完成目前處理之後為 止。此可發生兩件事。首先,該模式切換操作事件可延遲’ 直到於時間1702該外掛軟體中開始之觸控筆資料完成為 止。第二,該系統可輸入該模式切換事件於佇列1706中’ 於時間1705為來自外掛軟體2之結果保留足夠空間’以將 其放置於該佇列中1706其之前。所以,在此情況中’該 ICO可於該使用者做該模式變更之範例外掛軟體一「標記J 至該輸出佇列中。在一段時間經過後,該標記會傳回該 中(經由該即時觸控筆外掛軟體集合介面上之 CustomDataAdded方法),在此時該ICO可開始轉譯輸入封 包資料為「橡皮擦」要求。
第17B圖顯示第17A圖之一普通版本。為一第一執行 緒之一處理結果由事件17〇7加以顯示。其獲得放至於佇列 1712中》接下來,在時間17〇8,開始該第一執行緒上之另 一處理。在時間1709,一事件發生於一第二執行緒上。由 於該第一執行緒上之處理開始於點1 7〇8,預期於該時間 1 709之事件前定址該處理。然而,由於該第-執行緒上之 處理於時間1 7 1 0繼續,接著結束於時間夏7 Η,於時間} 7 〇 9 之事件之外掛軟體至該處理丨7〇8之開始之時間會不利,於 時間1 7 0 9之事件會被放置於該佇列中於時間^川完成之 處理之則在此,第17B圊顯示於時間1711外掛軟體一 距離之事件藉由跳過㈣1712中至少—位置自從處理完 成點1707產生之事件下游至仵列i7i2中。藉由保持一位 75 368 =有用,佇列1712允許處理17〇8、171〇、17U之完成適 當放置於佇列1712中,於17〇9之事件之前之一位置,以 允許讀取佇列1 7 1 2中之封包/事件以一預期順序發生。在 此,該順序可被歸納為封包/事件以其處理開始或事件發生 之順序發生。此順序為由點1713(處理開始)、1714(處理繼 續)、及1715(處理完成)所顯示之下一處理加以繼續。 第18與第19圖顯示根據本發明各特點,用以處理筆 資料之各種不同系統。
請參照第1 8圖’一筆裝置1 8 〇1傳送資料至筆服務 1 803。一滑鼠1802亦可產生資訊,並將其傳送至user32(亦 稱為USer32_dll)1 804。某些筆資料(舉例來說,按下按鈕) 可呈現滑鼠事件,且重新路由至user32 1804,欲處理為滑 鼠事件。同樣的’某些滑鼠事件可呈現墨水,且於1814 重新路由,欲處理為筆輸入。滑鼠事件接著傳送至視窗訊 息幫浦1 805 ’接著HWND 1 806、HWND滑鼠裝置1 812、 該輸入佇列1810及接著為輸入管理器1811。筆輸入(舉例 來說,當該筆一至一潛在噴墨服務之一範圍中)或一觸控筆 事件傳送至該筆輸入管理器1807/1808(未管理與已管理即 時觸控筆服務)。該筆輸入管理器1807/1808處理該筆服務 1803與該應用程式間之所有通訊。此處理可執行於一正常 優先執行緒上或一高優先狀態執行緒上。筆服務1803可產 生各種不同事件。筆事件可傳送至該筆輸入管理器 1807/1808,以繞過該標準訊息系統1804-1806及1812。 筆服務1803可產生下列事件:範圍中觸控筆(其中該 76 1374368 觸控筆進入該數位板之範圍中)、範圍外觸控筆(其中該觸 控筆不再可被該數位板偵測)、觸控筆封包(來自一數位板 之原始點資料一該筆可能或可能不予該數位板接觸)、觸控 筆空中點、輪入板加入/移除、及系統筆勢事件(例如,「下 壓與按住」及盤旋事件 該觸控筆可產生原始預覽事件。這些原始預覽事件可 由一即時喷墨服務1901(自第19圖)加以處理。其他服務 也可為等待這些事件。該即時喷墨服務1901可執行許多步 驟於該原始預覽事件上,包含: a·檢查是否事件係一下壓「封包」事件。若否,停 止處理並傳回空。 b. 根據其已快取佈局資訊,檢查是否事件係一喷墨 元件。若否,停止處理並傳回空。 c. 由於此封包係為一「下壓」事件,在一喷墨區域 中’則以遞增的方式繪製該筆勢。 d. 最後傳回該筆輸入管理器1807/1808該筆劃繪製 之元件。 來自該原始預覽事件之傳回值由該筆輸入管理器 18〇7/1 808使用,以「目標化」該事件。若傳回一非空目 標,則該事件可放置於具有特定目標之輸入佇列上。此確 保已繪製於一兀件上之墨水實際傳遞至該元件,而非該輸 入佇列中其他事件所導致之某些其他元件。 現在該觸控筆事件準備好變成一輸入事件了。然而在 大部分情況中,各觸控筆事件亦具有流經該訊息系統之一 77 1374368 對應滑鼠訊息。在該筆輸入管理器1807/1808可轉換該觸 控筆事件至一輸入事件之前,應先將該事件與該對應滑鼠 事件相符合。若有必要,該筆輸入管理器1807/1808可等 待該滑鼠訊息到達。 一旦該筆輪入營理器1807/1808可具有該滑鼠訊息與 該觸控筆事件’其結合兩者至該適當輪入報告中,並放置 該報告於該輸入佇列1810上。
第20圖顯示根據本發明各特點之一佇列。第20圖包 含一佇列2001。為了簡化的目的,該佇列顯示為一圓圏。 其他形式的佇列亦可使用,包含一線性佇列與業界中所知 之其他版本。佇列2001包含一開始指標2002與結束指標
2008。佇列2001亦包含許多具有資訊(2〇〇3、2004、及2009) 之位置。位置2005與2007為空。位置2006已被鎖住。位 置2006可被鎖住為一放置持有器,以同步化來自不同來源 之事件與資料(其一範例顯示於第17A圖與第17B圖中 同時,當包含於其中之資料透過一外掛軟體集合或鏈傳送 時’可鎖住位置2006。位置2010與2011亦為空。若有 需要,空的空間數可遞增或遞減。例如,若該仔列為滿, 額外空間可加入儲存額外資料β或者,可固定仔列大小, 使得超過可保持於該佇列中之任何資料會被丟棄。此可提 供對該使用者一有用益處,其提供一指示給該使用者,該 系統高度包含其他處理,且其為該佇列之新資料之建立上 慢下來恨有幫助。該資訊的丟棄亦可顯示給該使用者,已 鎖住該系統,並不建議輸入額外資料,直到該系統再次繼 78 1374368 續處理為止。 應用程式介面 下歹〗提供可由本發明各特點使用之各種不同應用程式 介面之一簡介。 該即時觸控昝 μ杜單可為一即時觸控筆輸入類別之部分。該 已例不即時觸控筆物件可附加至一視窗處理或控制。該即 時觸控筆可包含預設建構器。利用一預設建構器允許僅自 另一即時觸控筆物件接受輸入。 為了允許外掛软體與一筆資料流之互動,該即時觸控 筆物件可維護二外掛軟體集合。該集合可指定於該即時觸 控筆物件之—屬性中(例如,同步外掛軟體之
SyncPluginCollection與非同步外掛軟體之 AsynePluginCollecti〇n)。可藉由於該適當屬性上呼叫一新 增方法(例如 ’ StylusSyncpiUginCollection_Add 加入一外掛 軟體至該同步集合’或 StyluAsyncPluginCollection.Add 加 入一外掛軟體至該非同步集合)加入一外掛軟體至任一集 合。 同步外掛軟體可實施一介面(例如、 IStylusSyncPlugin),且非同步外掛軟體可實施一不同介面 (例如,IstylusAsyncPlugin)。各外掛軟體可具有指定其資 料興趣之屬性(例如,IStylusSyncPlugin.Datalnterest 或 IStylusAsyncPlugin.Datalnterest) » 該即時觸控筆物件可為 該外掛軟體已訂閱之方法呼叫該外掛軟體之通知方法。 該即時觸控筆物件實施該IstylusAsyncPlugin介面。 79 為了例示自另一者接收輸入之— I7時觸控筆,即時觸控筆 可包含利用一預設建構器。此外 ^ ^ ^ a DTQ ^ ,其他機制可用於關聯一 子或階層化RTS與一根源。另— 瑪制可使用與一根源RTS 相關之一專用才曰標,以保有至該OTS之-參照。在此, 該根源RTS不需要實施該非同步外掛軟體介面。 該即時觸控筆物件可具有傳 得輸筆資料之兩個或更多内 部符列。這些包含該輸入佇列 1丁幻興該輪出佇列。另一佇列可 被加入於這兩個佇列之間。同椹认 丄*
N樣的,當資料僅用於自一筆 資料流進入該同步外掛軟料,可減少該輸入仵列。這也
佇列處理筆資料之方法於上方至少參考第6、第8、第U 及第13圖加以描述。 下列係使用收集墨水之一表單上之即時觸控筆物件之 一範例情況。 a. 建立實施該IstylusAsyncPlugin介面之一表單。 b. 建立附加至該表單上一控制之一即時觸控筆物 件。
c.於關於有興趣資料之表單屬性(如一 Datalnterest 屬性)中設疋該表单對關於接觸一表面之一觸控 筆(一 StylusDown事件)、資料封包、及觸控筆上 提(如一 StylusUp事件)通知有興趣(且因此接收) 之通知β d.在該表單之 IstylusAsyncPlugin.StylusDown、 IStylusAsyncPlugin.Packets 、 及 IStylusAsyncPlugin.StylusUp 方法中,加入程式 80 1374368 碼以處理傳送自該表單之即時觸控筆物件之觸控 筆下壓、封包、及觸控筆上提通知。 各即時觸控筆物件為其可互動之物件維護—特定識別 器清單。該即時觸控筆物件可具有幾個方法,用以翻譯一 特定識別器與該輸入板物件之間。.這些可包含
GetTabletContextIDFromTablet 與
GetTabletFromTabletContextID 方法。
該筆資料可佔用其本身之名稱空間(例如, StylusInput.PluginData 名稱領域 一輸入板屬性描述物件(如TabletPropertyDsscription 物件)可包含一屬性通用特定識別器(GUID)與為一特定輸 入板描述該屬性之範圍、解析度、與單位之一輸入表屬性 度量(如 TablefPropertyMetrics)結構。 可使用另一方法,其採取一特定輸入板識別器,並傳 回由該輸入板支援之屬性描述物件之一集合。例如,該即 時觸控筆物件之 GetTabletPropertyDescriptionCoUection
方法採取該特定輸入板識別器,並傳回由該輸入板支援之 TabletPropeityDescription物件之集合。該即時觸控筆物件 之GetDesiredPacketDescription方法為該即時觸控筆物件 將傳送至其外掛軟體之封包屬性傳回一 GUID陣列。 傳送至為給定輸入板的外掛軟體之封包屬性組可為由 該 GetTabletPropertyDescriptionCollection 方法傳回之組 與由一 GetDesiredPacketDescription方法傳回之組之交又 點。為了修改該封包屬性組,該即時觸控筆會傳送至其外 81 1374368 掛軟體,可呼叫該即時觸控筆物件之SetDesiredPacket描 述方法。 當啟動該即時觸控筆物件時,各外掛軟體接收至其 IStyrusSyncPlugin.RealTimeStylusEnabled 或
IStylusAsyncPlugin.RealTimeStylusEnabled 方法之一呼 叫。傳送於該通知中之RealTimeStylusEnabledData物件於 啟動該RealTimeStylus物件時為該有效輸入板包含該内容 識別器之一集合。當該RealTimeStylus物件可使用之一輸 入板加入或移除自一筆啟動計算系統,而該
RealTimeStylus物件被啟動時,該RealTimeStylus物件通 知其外掛軟體具有一輸入板已被新增或移除。
觸控筆可具有額外介面。各觸控筆可具有與其相關描 述與該觸控筆相關之封包之資訊。該即時觸控筆物件可以 許多通知方法傳送關於該觸控筆之資訊至該外掛軟體,關 於一筆或觸控筆之資訊可由一觸控筆物件加以呈現。該物 件係於該資料收集時該輸入板筆之狀態之一即時情況。由 於外掛軟體接收該输入板筆資料做為該輸入板筆資料流之 部分’該外掛軟體應使用該觸控筆物件中之資訊,而非檢 查透過該游標類型之一特定輪入板筆之目前狀態。 下列描述外掛軟體與'該RealTimeStylus類別。外掛軟 體,實施該 IstylusSyncPlugin 或 IstylusAsyncPIugin 介面 之物件,可被加入一即時觸控筆物件中。
IstylusSyncPlugin 與 IstylusAsyncPlugin 介面皆定義 相同之方法。這些方法允許該即時觸控筆物件傳送該筆資 82 1374368 料至各外掛軟體。該 IstylusSyncPlugin.Datalnterest 與 IStylusAsyncPlugin.Datalnterest屬性允許各外掛軟體訂閱 該輸入板筆資料流中之特定資料。一外掛軟體應僅訂閱執 行其工作必要之資料,其縮小潛在效能問題。或者,額外 訂閱可為一外掛軟體加以包含。 該即時觸控筆物件可使用該 StylusInput.PluginData 名稱領域中之物件,以傳送該筆資料至其外掛軟體。該即 時觸控筆亦抓取外掛軟體丟出之例外。當其這麼做時,其 可 藉 由 呼 叫 該 I Stylus SyncPlugin.Error 或 IStylusAsyncPlugin.Error方法通知該外掛軟體。 下列描述外掛軟體資料與該即時觸控筆類別。 該即時觸控筆之外掛軟體可實施該IstylusSyncPlugin 或 Istylus AsyncPlugin 介面。可能或可能不實施該即時觸 控筆中之所有方法。 定義於該介面上之方法可使用該 StylusInput.PluginData名稱領域中之物件,以傳送該筆資 料至該外掛軟體。下表描述該通知方法中參數之資料物 件,並列出與該通知相關之DatalnterestMask值。 外掛軟體資料 DatalnterestMask·值 說明
CustomStylusData
ErrorData
CustomStylusDataAdded 由一外掛軟體加入之自 訂應用程式資料。
Error 該即時觸控筆物件加入 以響應於其外掛軟體其 83 1374368 外掛軟體資料 DatalnterestMask 值 說明 中之一中之一未處理例 外之錯誤資訊 InAirPacketsData InAirPackets 當該觸控筆於該數位板 上空中時,觸控筆移動 之封包資訊。 InAirPacketsData Packets 當該觸控筆觸控該數位 板時,觸控筆移動之封 包資訊。 RealTimeStylusDisabledDat RealTimeStylusDisabled 當被取消時,該即時觸 a 控筆物件加入之資訊。 RealTimeStylusEnabledData RealTimeStylusEnabled 當被啟動時,該即時觸 控筆物件加入之資訊。 StylusButtonDownData StylusButtonDown 關於被壓下之特定觸控 筆按钮之資訊。 StylusButtonUpData StylusButtonUp 關於被釋放之特定觸控 筆按紐之資訊。 StylusDownData StylusDovra 當觸控筆被帶至與該數 位板接觸時為觸控筆之 封包資訊。 StylusInRangeData StylusInRange 關於進入該即時觸控筆 物件之輸入區域或進入 該即時觸控筆物件之輸 入區域上該數位板之刪
84 1374368 外掛軟體資料 DatalnterestMask值
StylusOutOfRangeData StylusOutOfRange
StylusUpData StylusUp
SystemGestureData
SystemGesture T abletAddedData TabletAdded T abletRemo vedData TabletRemoved 說明 除區域之特定觸控筆之 資訊。 關於保留該即時觸控筆 物件之輸入區域或保留 該即時觸控筆取消資料 物件之輸入區域上該數 位板之刪除區域之特定 觸控筆之資訊。 當該觸控筆自該數位板 提升時,觸控筆之封包 資訊。 當偵測一系統筆勢時, 該 RealTimeStylus 物件 加入之資訊。 關於被加入之輸入板之 資訊。 關於被移除之輸入板之
資訊 該即時觸控筆物件以許多通知方法傳送關於該輸入板 筆之資訊至其外掛軟體。關於該輸入板筆之資訊由一觸控 筆物件呈現。此物件係該資料收集時輸入板筆之狀態之一 即時情況。由於外掛軟體接收該輸入板筆資料為該輸入板 筆資料流之部分,該外掛軟體應使用該觸控筆物件中之資 85 1374368 訊,而非透過該游標類別檢查一特殊輸入板筆之目前狀 態。各觸控筆物件為產生該資料之輸入板包含該輸入板内 容識別器。 下列1 3個功能可實施施該同步與非同步介面上。該表 比較傳經該各種不同事件之資訊。該事件與參數清單係舉 例說明並非窮舉。其他事件與參數可使用與或取代該下列 者。
許多同步參數與該非同步參數之不同僅在於前者允許 該接受者修改傳經該佇列之資料。或者,可允許兩組參數 修改傳經該佇列之資料。 函數 目的 同步參數說明 非同步參數說 明 ContextCreate(另1J 名 用於決定該輸 包含該筆之來 包含該筆之來 RTSEnabled) 入板内容何時 源(包含但不限 源(包含但不限 已建立,使得事 於一筆ID)、輸 於一筆ID)、該 件鏈可被啟 入板及身分資 輸入板身分與 動。此事件之消 料封包之說明。 一資料封包之 費者可用此了 說明。
解何時RTS完 成輸入板初始 化,並準備好開 始啟動資料至 客戶端程式碼。
ContextDestroy(別名用於決定該輸 包含該筆之來 包含該筆之來 86 1374368 函數 RTSDisabled)
CursorNew 目的 入板内容何時 被摧毀,便得 RTS可清理其目 的。此事件之消 費者可使用此 了解何時RTS 要釋於一輸入 板内容(也許因 為 RTS.Enabled 為否)且在不再 有效前快取所 需的任何 PacketDescripti on資科。 一新觸控筆已 碰到該數位板 之通知 同步參數說明 源(包含但不限 於一筆ID)及該 輪入板身分 包含該筆之來 源(包含但不限 於一筆ID)及關 於該觸控筆之 資訊(包含但不 限於已被啟動 之觸控筆上之 按紐等等) 非同步參數說 明 源(包含但不限 於一筆ID)及該 輸入板身分 包含該筆之來 源(包含但不限 於一筆ID)及關 於該觸控筆之 資訊(包含但不 限於已被啟動 之觸控筆上之 按钮等等)
87 1374368 函數 CursorlnRange 目的 一觸控筆已移 入該數位板之 範圍之通知
CursorOutOfRange 一觸控筆已移 出該數位板之 範圍外之通知
CursorDown 一觸控筆筆尖 「觸控」該數位 板表面之通知 同步參數說明 包含該筆之來 源(包含但不限 於一筆ID)及關 於該觸控筆之 資訊(包含但不 限於已被啟動 之觸控筆上之 按鈕等等) 包含該筆之來 源(包含但不限 於一筆ID)及關 於該觸控筆之 資訊(包含但不 限於已被啟動 之觸控筆上之 按紐等等) SourceRealTime Pen、 Styluslnfo、 PropertyCountP erPacket、 PacketDataRef 非同步參數說 明 包含該筆之來 源(包含但不限 於一筆ID)及關 於該觸控筆之 資訊(包含但不 限於已被啟動 之觸控筆上之 按紐等等) 包含該筆之來 源(包含但不限 於一筆ID)及關 於該觸控筆之 資訊(包含但不 限於已被啟動 之觸控筆上之 按钮等等) SourceRealTime Pen, Styluslnfo, PropertyCountP erPacket, PacketData
88 1374368 函數
CursorUp 目的 一觸控筆筆尖 不再觸控該數 位板表面之通 知
InAirPackets 該數位板表面 上觸控筆移動 之通知 同步參數說明 包含該筆之來 源(包含但不限 於一筆ID)及關 於該觸控筆之 資訊(包含但不 限於已被啟動 之觸控筆上之 按鈕等等)。此亦 可包含每個資 料封包之屬性 計數及至該封 包資料類型之 一參照。 包含該筆之來 源(包含但不限 於一筆ID)及關 於該觸控筆之 資訊(包含但不 限於已被啟動 之觸控筆上之 按鈕等等)。此亦 可包含每個資 非同步參數說 明 包含該筆之來 源(包含但不限 於一筆ID)及關 於該觸控筆之 資訊(包含但不 限於已被啟動 之觸控筆上之 按鈕等等)。此亦 可包含每個資 料封包之屬性 計數及至該封 包資料類型之 一參照。 包含該筆之來 源(包含但不限 於一筆ID)及關 於該觸控筆之 資訊(包含但不 限於已被啟動 之觸控筆上之 按鈕等等)。此亦 可包含每個資
89 1374368 函數 目的
Packets 當觸控該數位 板表面時觸控 筆移動之通知 同步參數說明 料封包之屬性 計數及至該封 包資料類型之 一參照。此亦可 包含一資料封 包緩衝器長度 與該資料封包 計數。 包含該筆之來 源(包含但不限 於一筆ID)及關 於該觸控筆之 資訊(包含但不 限於已被啟動 之觸控筆上之 按鈕等等)。此亦 可包含每個資 料封包之屬性 計數及至該封 包資料類型之 一參照。此亦可 包含一資料封 非同步參數說 明 料封包之屬性 計數及至該封 包資料類型之 一參照。此亦可 包含一資料封 包緩衝器長度 與該資料封包 計數。 包含該筆之來 源(包含但不限 於一筆ID)及關 於該觸控筆之 資訊(包含但不 限於已被啟動 之觸控筆上之 按鈕等等)。此亦 可包含每個資 料封包之屬性 計數及至該封 包資料類型之 一參照。此亦可 包含一資料封
90 1374368 函數 目的
SystemEvent 一系統事件或 筆勢之通知。範 例包含^ tap」、 「double tap」、 r press&hold」 、Γ shake」
TabletAdded
TableRemoved 連接至該系統 之一新數位板 之通知(一般為 一外部USB裝 置) 自該系統中斷 連接一數位板 同步參數說明 包缓衝器長度 與該資料封包 計數。 包含該筆之來 源(包含但不限 於一筆ID)及關 於該觸控筆之 資訊(包含但不 限於已被啟動 之觸控筆上之 按鈕等等)。此亦 可包含系統事 件資訊與關於 該系統事件之 資料。 包含該筆之來 源(包含但不限 於一筆ID)及關 於該輸入板之 資訊 包含該筆之來 源(包含但不限 非同步參數說 明 包缓衝器長度 與該資料封包 計數。 包含該筆之來 源(包含但不限 於一筆ID)及關 於該觸控筆之 資訊(包含但不 限於已被啟動 之觸控筆上之 按鈕等等)。此亦 可包含系統事 件資訊與關於 該系統事件之 資料。 包含該筆之來 源(包含但不限 於一筆ID)及關 於該輸入板之 資訊 包含該筆之來 源(包含但不限
91 1374368 函數 目的 之通知(一般為 一外部USB裝 置)
UserData 特定辨識之任 意使用者資料 (例如,由一 GUID)。此由想 要透過該佇列 傳送資訊下游 至該墨水集合 物件,並保證其 關於上述之即 時資料之刺餘 部份來自正確 順序之一特殊 化外掛軟體加 同步參數說明 非同步參數說 明 於一筆ID)及關 於一筆ID)及關 於已移除輸入 於已移除輸入 板之資訊 板之資訊 n/a 包含該筆之來 源(包'舍但不限 於一筆ID)、與 該使用者資料 相關之一 GUID、該使用 者資料之大小 之一指示、及該 使用者資料之 内容。 以使用。 本發明各特點已描述於其舉例說明具體實施例中。在 所附申請專利範圍之範圍及精神内之許多其他具體實施 例、修改與變化會對熟知該項技藝人士於檢閱此揭示後發 生。 【圖式簡單說明】 92 1374368 第1A圖舉例說明一通用目的數位計算環境之一架構 圖,其中某些特定特點可實施於本發明。 第1Β至第1Μ圖圖示一通用目的電腦環境,其支援本 發明之一或多特點。 第2圖圖示根據本發明各特點之為一觸控筆型輸入系 统顯示一顯示器。
第3圖圖示根據本發明各特點之處理該電子墨水流之 一系統。 第4圖圖示根據本發明各特點之處理該電子墨水流之 另一方法。 第5圖圊示可支援本發明各特點之一物件模式。 第6圖圖示根據本發明各特點之處理電子墨水之一系 統。 第7圖圖示根據本發明各特點之處理電子墨水之一系 統。 \
第8Α與第8Β圖圖示根據本發明各特點之各種方法, 其係利用一輸入佇列與輸出佇列。 第9與第10圖圖示根據本發明各特點之建立與利用處 理墨水之系統的方法。 第11圖圖示根據本發明各特點之具有警告一墨水集 合物件之一通訊協定的系統。 第12圖圖示根據本發明各特點之具有一額外佇列的 系統。 第 13圖圖示根據本發明各特點之具有分離即時觸控 93 1374368 筆組件的系統。 第14圖圖示根據本發明各特點之筆勢辨識器,其可查 看筆劃多深。 第1 5圖圖示根據本發明各特點之例外處理的系統。 第 16圖圖示根據本發明各特點之已管理與未管理程 式碼。 第17A與第17B圖圖示根據本發明各特點中,資料如 何被放至於一佇列中不同位置,以確保同步化。
第18與第19圖圖示根據本發明各特點之處理筆資料 的各種不同系統。 第2 0圖圖示根據本發明各特點的佇列。 【主要元件符號說明】
100 適用計算系統環境 101 鍵盤 102 滑鼠 106 序列埠介面 107 螢幕 108 視訊配接器 109 遠端電腦 110 處理單元 111 記憶體 112 區域網路 113 廣域網路 114 網路介面 115 數據機 120 系統記憶體 130 系統匯流排 140 ROM 150 RAM 160 BIOS 165 數位板 166 (to be specified) 170 網路介面或配接器 180 遠端電腦 190 視訊介面 191 螢幕 94 1374368 192 硬 碟 介 面 193 磁 碟 驅 動 器 介 面 1 94 光 學 驅 動 器 介 面 195 作 業 系 统 196 應 用 程 式 197 其 他 程 式 模 組 198 程 式 資 枓 201 輸 入 板 電 腦 202 大 型 顯 示 表 面 203 視 窗 204 觸 控 筆 205 區 域 301 輸 入 管 理 器 302 觸 控 筆 輸 入 事 件 303 墨 水 集 合 304 動 態 成 像 305 顯 示 器 306 加 至 墨 水 物 件 之筆劃 307 具 有 墨 水 物 件 屬性之元件 308 以 新 筆 劃 重 新 繪製之墨水 401 内 部 觸 控 筆 輸 入來源 402 輸 入 管 理 器 403 墨 水 集 合 404 即 時 喷 墨 物 件 405 具 有 墨 水 物 件 屬性之元件 406 顯 示 器 501 筆 服 務 502 處 理 1 503 即 時 觸 控 筆 服 務 504 即 時 觸 控 筆 505 即 時 觸 控 筆 506 處 理 2 507 即 時 觸 控 筆 服 務 508 即 時 觸 控 筆 509 即 時 觸 控 筆 601 筆 月艮 務 602 即 時 觸 控 筆 服 務 603 即 時 觸 控 筆 組 件 604 輸 入 佇 列 605 輸 出 仵 列 606 可 插 式 組 件 607 可 插 式 .组· 件 608 動 態 成 像 器 609 視 覺 存儲 器 610 筆 勢 辨 識 器
95 611墨水集合物件 701筆服耠 墨水存儲器 703輸入佇列 7〇2即時觸控筆组件 71 η « 709輸出佇列 710墨水集合物株α η 1 . 8〇1即時觸控筆同步外掛軟 外掛軟體2 803動態成像器 805同步外掛軟體3 體Ν 807存儲器 809同步外掛軟體集合 8 11 非同步外掛軟體1 813 非同步外掛軟體3 901 例示即時觸控筆 軟體 掛軟體1> 1 802即時觸控筆同步 804筆勢辨識器 806即時觸控筆同步外掛軟 808非同步外掛軟體Μ 810非同步外掛軟體集合 812非同步外掛軟體2 814 筆勢辨識器 902例示同步舆非同步外掛
903 動態成像器/筆勢辨識器 9〇5 啟動即時觸
904 加入外掛軟體至外掛軟體集合 控筆 9〇6透過RTS接收筆資料1〇〇1封包由RTS接收 1002 封包進入同步外掛軟體集合 1003 封包透過同步外掛軟體集合進行 1004 封包透過筆勢辨識器/動態成像器進行 1 0 0 5 封包進入輸出佇列 1006 封包透過非同步外掛軟體集合進行 96 1374368 1101 1103 1105 1202 1204 1206 1301 1303 1305 1307 1309 1311 13 13 1601 1602 1603 1605 1607 1609 1612 1614 1616 1618 器 額外佇列 1102 動態成像器 RTS同步外掛軟體a 1104 RTS同步外掛軟體 非同步外掛軟體集合 1201 動態成像器 視覺存儲器 1203 墨水集合物件 墨水存儲器 1205 輸入佇列 輸出佇列 1207 釋放已快取資料 RTS之非同步外掛軟體13〇2輪入佇列 動態成像器 1304 筆勢辨識器 其他同步外掛軟體 1306 輸出佇列 即時觸控筆組件 1308 輸入狩列 同步外掛軟體A 13 10 同步外掛軟體B 輸出佇列 13 12 非同步外掛軟體1 非同步外掛軟體M 筆服務 1401 (to be specified) 未管理之即時觸控筆組件(原 生) 輸入佇列 1604 輪出佇列 已管理之即時觸控筆組件 Y 1608 動態成像器 筆勢辨識器 1610 資料快取記憶體 非同步外掛軟體 1613 筆勢辨識器 資料快取記憶體 1615 動態成像器 資料快取記憶體 1617 資料快取記憶體 同步外掛軟體包覆器 1619 非同步外掛軟體包
97 1374368 1701 完成 1702 外掛軟體 1 1703 時間 1704 外掛軟體 2 1705 完成 1706 佇列 1707 完成 1708 時間 1709 處理開始 1710 處理繼續 1711 處理完成 1712 佇列 1713 處理開始 1714 處理繼續 1715 處理完成 1801 筆裝置 1802 滑鼠 1803 筆服務 1804 user 32 1805 視窗訊息 幫浦 1806 HWND 1807 筆輸入管理器(未管理)RTS 服務 1808 筆輸入管理器(已管理)RTS 服務 1809 HWND觸控筆裝置 1810 輸入佇列 1811 輸入管理器 1812 HWND滑鼠裝置 1813 (to be specified) 1814 重新路由 1901 即時喷墨服務 200 1 佇列 2002 開始指標 2003 内 2004 内 2005 空 2006 鎖住 2007 空 2008 結束指標 2009 内 2010 位置 2011 位置
98

Claims (1)

1374368 -—— /。蛑修正本j 十、申請專夺?(範圍: ...:· ··.:.. - ' ·- ..... . · · !•一種使一電腦利用附加至一組件的一動態成像物件 像墨水之方法,該動態成像物件具有一介面且該 具有-輸入介面、-同步介面、及一非同步介面, 法包含之步騾有: 自安排如何處理資料之該組件接收墨水,該墨 過該動態成像物件的介面加以接收,且該動態成像 的介面附加於該組件上之該同步介面; 為一顯示裝置上之後續顯示成像該墨水,其中 像之步驟與該電腦接收該墨水之步驟同步發生; 暫時快取該已成像墨水; 自該動態成像物件傳輸該墨水; 自另一成像物件接收一通知,該另一成像物件 至該組件之該非同步介面,且該通知將該另一成像 已接收到與來自該組件之該墨水相關之資訊的情 示給該動態成像物件;以及 回應於該通知,清除該已成像墨水之快取。 2. 如申請專利範圍第丨項所述之方法,其中上述成像 提供一使用者墨水未中斷地自—觸控筆流出之外觀。 3. 如申請專利範圍第丨項所述之方法,其中上述動態 物件係附加於該物件之一同步外掛軟體集合之一部分 4·如申請專利範圍第1項所述之方法,進一步包含之 為: 來成 組件 該方 水透 物件
該成 連接 物件 況指 步驟 成像 〇 步騍
99 1374368 資料至連接至該成像物件之-額外物件。 5. —種電腦可讀取媒體,具 程式儲存於其上,上述卷 式用於利用附知5 &从 a 组件之一動態成像物件來成像墨水, 上述動態成像物#且士 A, 篆物件具有-介面,且該組件具有-輸入介 面、一同步介面、及— 及非同步介面,上述程式包含之步帮 為:
安排如何處理資料之該組件接收墨水,該墨水透 過該動態成像物件的介面加以接收,且該動態成像物件 的介面附加於該組件上之該同步介面; 為—顯不裝置上之後續顯示成像該墨水,其中該成 像之步驟與接收該墨水之步驟同步發生; 暫時快取該已成像墨水; 自該動態成像物件傳輸該墨水;
自另一成像物件接收一通知,該另一成像物件連接 至該組件之該非同步介面,且該通知將該另一成像物件 已接故到與來自該組件之該墨水相關之資訊的情況指 示給該動態成像物件;以及 回應於該通知,清除該已成像墨水之快取。 6·如申請專利範圍第5項所述之電腦可讀取媒體,其中上 述成像步驟提供一使用者墨水未中斷地自一觸控筆流出之 外觀。 7_如申請專利範圍第5項所述之電腦可讀取媒體,其中上 述動態成像物件係附加於該組件之一同步外掛軟體集合之 100 丄j/4368 —部分。 8.如申請專利範園第5項所述之電腦可讀取媒體,上述程 式進一步包含之步驟為: 傳送資料至連接至該成像物件之一額外物件。 9’ —種附加物件至一組件之方法,上述组件具 — 面與· 一非同步介面,上述方法包含之步驟為: 、巧一'同步介 決 定操 作 該 组 件 之 — 電 腦 之一 處 理 速 度 > 決 定是 否 一 外 掛 軟 體 物 件 為一 時 間 關 鍵 外 掛 軟 體 物 件 > 需 要與 已 接 收 輸 入 同 步 處 理, 或 是 否 該 外 掛 軟 體 物 件 為 非時 間 關 鍵 外 掛 軟 體 物 件,可於- 一稍後時間處理; 根 據該 決 定 步 驟 > 附 加 該 外掛 軟 體 至 — 同 步 介 面 或 —· 非 同 步介 面 其 中 之 一 9 其 中上 述 附 加 之 步 驟 亦 根 據該 決 定 —— 處 理 速 度 之 步 而 定 〇 10 如 中 請專 利 範 圍 第 9 項 所 述 之方 法 , 其 中 至 少 — 成 像 外 掛 軟 體 物件 係 附 加 於 該 同 步 介 面。 11 • 如 中 請專: 利 範 圍 第 9 項 所 述 之方 法 9 其 中 上 述 時 間 關 鍵 外 掛 軟 體物 件 係 附 加 至 該 同 步 介面 9 而 上 述 非 時 間 關 鍵 外 掛 軟 體 物件 係 附 加 至 該 非 同 步 介面 〇 12 • — 種 附加 物 件 至 — 組 件 之 系 統, 上 述 組 件 具 有 — 同 步 介 面 與 一 非同 步 介 面 J 上 述 系 統 包含 • 第 一決 定 構 件 > 用 於 決 定 操作 該 組 件 之 — 電 腦 之 —^. 處理速度;
101 1^/4368 第二卞定構件,用於決定是否一外掛軟體物件為_ 時間關鍵外掛軟體物件,必須與已接收輸入同步處理, 或疋否上述外掛軟體物件為一非時間關鍵外掛軟體物 件’可於一稍後時間處理; 附加構件,用於根據該決定步驟來附加該外掛軟體 至—同步介面或—非同步介面其中之一 其中该附加構件亦根據該第一決定構件而定。 13 外 14 鍵 外 15
•如申請專利範圍第i 2項所述之系統,其中至少—成像 掛軟體物件係附加至該同步介面。 •如申請專利範圍第1 2項所述之系統’其中上述時間關 外掛軟體物件係附加至該同步介面,而上述非時間關鍵 掛軟體物件係附加至該非同步介面。 .一種成像資訊之系統,該系統包含:
主管一組件之一處理器,該組件具有一輸入端、一 同步介面、及一非同步介面,且該組件經組態以透過該 輸入端接收墨水資訊,該處理器處理: 附加至該同步介面之一動態成像器,該動態成像器 成像該已接收之墨水資訊,且上述動態成像器包含一暫 時存儲器,及 成像該已接收_之墨水資訊之一靜態成像器,上述靜 態成像器通知該動態成像器釋放關於該已接收墨水資訊 之暫時存儲器’使得來自該動態成像器之該通知為該動 態成像器盏理過之一物件,並且使得該組件包括一輸出 102 1374368 打列’該輸出佇列自該動態成像器接收一輸出且保持該 輸出直到被該靜態成像器所擷取。 16.如申請專利範圍第15項所述之系統,其中上述墨水資 訊係由一觸控筆產生。 ‘ 一種成像資訊之方法,該方法包含之步驟為: 透過一組件的一輸入端接收墨水資訊; 使用一動態成像器物件成像該已接收之墨水資訊, 該動態成像器物件附加於該組件的一同步介面;
儲存該已接收墨水資訊於與該動態成像器物件相關 之一暫時存儲器中; 暫時將來自該動‘態成像器物件的—輸出儲存在該級 件的"一輸出^宁列中; 警告一靜態成像器物件有來自該動態成像器物件之 一輸出在該輸出狩列中; 成像該已接收墨水資訊於該靜態成像器物件中; 〜 地沖雄初悲风彳豕益物件
該暫時存儲器中之访P & 之該已接收之墨水資訊,或自該輪 列刪除該輸出;# 、 執行下列二步驟之另一者··通知該 成像Is物件抹哈姑·由a +丄 ’、~暫時存儲器中之已接收之墨水資 或自該輸出仵列刪除該輸出。 之系統 一種處理資訊 該系統包含: 一存儲器; 103 18. 1374368 一處理器,與該存儲器 —組件,上述组件包含: —同步介面,一第一外 面,上述第一外掛軟體物件 步處理由該組件接收之資訊 一成像物件; 交換資訊,上述處理器主管 掛軟體物件附加於此同步介 在該组件接收該.資訊時,同 ,上述第一外掛軟體物件為
.a扯初仟附加於此非 ,介面,該组件捿收該資訊與上述第二外掛軟體物件 理由該組件接收之該資訊二者非同步發生;及 一存鍺器’儲存要被成像之資訊, 其中該成像物件為包括一暫時存儲器之一動態成 物件’該要被成像之資訊被暫時儲存於該暫時存儲器今 且其令該存儲器獨立於該動態成像物件。 19·如申請專利範圍第18項所述之系統,其中上述由該
二外掛軟體物件處理之該資訊係為由該第—外掛軟體物 處理之相同資訊。 a如中請專利範圍第18項所述之系統,其中上述由該第 二外掛軟體物件處理之該資訊不同於由該第―外掛軟體物 件處理之資訊,其中上述第一外掛軟體物件修改該資訊, 以稍後由該第二外掛軟體物件處理。 21.如申請專利範圍第18項所述之系統,上述組件進一步 包含一輸出佇列,上述輸出佇列接收已由該第—外掛軟體 物件處理之資訊。 104 1374368 22.如申請專利範圍第⑽所述之系統上述組件進—步 包含-輪入仵列,上述輸入仲列接收已由該第一外掛軟體 牛產生之資訊’以由該第-外掛軟體物件處理。 23·如申請專利範圍第18項所述之系統,其中上述第 掛軟體物件與該第二外掛軟體物件至少其中之一形成附加 至該組件之一清單之一部分。 24. 如申請專利範圍第18項所述之系統,其中上述第
掛軟體物件與該第二外掛軟體物件至少其中之 至該組件之一鏈之一部分。 25. 如申請專利範圍第.18項所述之系統,其中上述 掛軟體物件與該第二外掛軟體物件至少其中之一 辨識器物件。 平方 1如中請專利範圍第18項所述之系統,其中上述第 掛軟體物件係集合與成像墨水之一墨水集合器物件。 27.如申請專利範圍第18項所述之系統,進一步包含:
-動態成像器,以作為該第一外掛軟體物件 動態成像器包含一存儲器’用於暫 ‘ 之墨水筆刻。 暫時保存由該组件接收 A如中請專利範圍第27項所述之系統,其中於自^二 外掛軟體物件接收一指令後,刪除暫時存储器中之該 29_如申請專利範圍第27項所述之系統,其中於自該心 外掛軟體物件接收一指令且該第二外掛軟體物件與該第: 外掛軟體物件已成像該墨水後,職暫時存儲以之 105 1374368 水ο 3〇· —種處理資訊之系統,該系統包含: 一存儲器; 處理器’與該存儲器交換資訊,上述處理器主管 一組件’上述組件包含:
同步介面’一第一外掛軟體物件附加於此第一介 面上述第一外掛軟體物件在該組件接收該資訊時,同 步處理由該組件接收之資訊; 一非同步介面,一第二外掛軟體物件附加於此第二 介面上述第二外掛軟體物件在該組件接收該資訊時, 非同步處理由該組件接收之資訊;及 -動態成像器,該動態成像器作為該第一外掛軟體物件, 該動態成像器包括一存儲器,該存儲器用來暫時儲存由該 組件所接收之墨水筆劃。
3 1.如申晴專利範圍第3 0項所述之系統,其中上述第一外 掛軟體物件與該第二外掛軟體物件至少其中之一形成附加 於該組件之—清單之一部分。 〇 32.如申請專利範圍第3〇項所述之系統,其中上述第一外 掛軟體物件與該第二外掛軟體物件至少其中之一形成附加 於該組件之一鏈之一部分。 33·—種處理資訊之系統,該系統包含: 一存儲器; 一處理器,與該存儲器交換資訊,上述處理器主管 106 1374368 一第一組件與一第二組件,上述第一组件包含: 一同步介面,一第一外掛軟體物件附加於此同步介 面,上述第一外掛軟體物件在該第一組件接收該資訊 時,同步處理由該第一組件接收之資訊; 一非同步介面,一第二組件附加於此非同步介面’ 上述第二組件包含一同步介面及一非同步介面,且 有一第二外掛軟體物件附加於該同步介面上,有一第三 外掛軟體物件附加於該非同步介面上。 3 4.如申請專利範圍第3 3項所述之系統,其中上述第一外 掛軟體物件係一動態成像器物件。 3 5.如申請專利範圍第3 3項所述之系統,其中上述第三外 掛軟體物件係一墨水集合物件。 3 6.如申請專利範圍第3 3項所述之系統,其中上述第一外 掛軟體物件與該第二外掛軟體物件至少其中之一形成附加 於該組件之一清單之一部分。 3 7.如申請專利範圍第3 3項所述之系統,其中上述第一外 掛軟體物件與該第二外掛軟體物件至少其中之一形成附加 於該組件之一鏈之一部分。 3 8. —種在一組件與外掛軟體物件間通訊之方法,該組件 包括一同步介面及一非同步介面,該方法包含之步驟為: 於該組件接收一資料封包; 放置該資料封包於一佇列; 通知一外掛軟體物件清單該資料封包之存在; 107 1374368 使用該同步介面透過該外掛軟體物件清單處理該資 料封包; 自該外掛軟體物件清單接收該資料封包; 將該資訊封包放置於該組件的一輸出佇列; 通知一第二外掛軟體物件清單該資料封包之存在; 及
透過該非同步介面經由該第二外掛軟體物件清單處 理該資料封包。 39. —種將外掛軟體物件關聯於一組件之方法,該方法包 含之步驟為: 形成可包含一參照至外掛軟體物件之一清單; 附加該清單至該組件之一同步介面; 集結具有參照至至少一外掛軟體物件之該清單;
形成可包含一參照至外掛軟體物件之一第二清單; 附加該第二清單至該組件之一非同步介面;且 集結具有參照至至少一外掛軟體物件之該第二清 單; 其中在該等步驟執行期間所處理之電子資料,可由 該外掛軟體物件根據附加至該非同步介面之該第二清單 中外掛軟體物件之順序加以處理。 4 0. —種將外掛軟體物件關聯至一組件之方法,該方法包 108 1374368 面;及 附 加 一 第 二 外 掛 軟 之 一 同 步 介 面 t 以 形 成 件 、 及 該 第 二 外 掛 軟 體 附 加 一 第 三 外 掛 軟 面 9 及 附 加 — 第 四 外 掛 軟 之 非 同 步 介 面 以 形 物 件 、 及 該 第 四 外 掛 軟 其 中 在 該 等 步 称 執 外 掛 軟 體 物 件 根 據 該 第 加 以 處 理 > 且 其 中 在 該 等 步 驟 執 外 掛 軟 體 物 件 根 據 該 第 加 以 處 理 0 -種 成 像 資 訊 之 系, 統 一 存 鍺 器 1 — 處 理 器 9 與 該 存 第 一 級 件 上 述 第 一 •V 成 像 系 統 ) 成 像 地 附 加 至 孩 第 ***** 組 件 之 含之步驟為: 附加 第一外掛軟體物件至該組件上之一 體物件至該第一外掛軟體 連結該組件、該第一外掛 物件之一第一鍵, 體物件至該組件上之一非 體物件至該第三外掛軟體 成連結該組件、該第三外 體物件之一第二鏈; 行期間所處理之電子資料 一鏈中之該外掛軟體物件 行期間所處理之電子資料 二鏈中之該外掛軟體物件 ’該系統包含: 儲器交換資訊,上述處理 組件包含: 該資訊,該成像系統包括 至少一外掛軟體;及 同步介 物件上 軟體物 同步介 物件上 掛軟體 可由該 之順序 可由該 之順序 器主管 可移除 109 1374368 一第一佇列,接收與暫時儲存由該第一组件成像之 資訊,上述第一佇列由一第二組件存取,以擷取該暫時 儲存資訊,其中上述暫時儲存資訊經組態而由該第二組 件加以處理,其中該處理器經組態以主管該第二組件, 該第二組件包含:
一第二佇列,該第二佇列接收並暫時儲存自該第 一佇列接收到之資訊,該第二佇列由一第三組件進行 存取,該第三組件經組態以擷取自該第一佇列接收到 之該暫時儲存之資訊,其中自該第一佇列接收到之該 暫時儲存之資訊經組態以由該第三組件進行處理,且 其中該第三組件包括一非同步外掛軟體組件。 4 2 ·如申請專利範圍第4 1項所述之系統,其中上述資訊包 含電子墨水。 4 3 _如申請專利範圍第4 1項所述之系統,其中上述資訊包 含對電子墨水之修改。
44.如申請專利範圍第4 1項所述之系統,其中上述資訊包 含於一第一時間接收之一第一封包及於一稍後時間接收之 一第二封包,且其中上述處理器放置該第一封包於該第一 佇列中該第二封包之前,以維護該第一封包與該第二封包 之處理之一適當同步化。 4 5 .如申請專利範圍第4 1項所述之系統,其中上述資訊包 含於一第一時間接收之一第一封包及於一稍後時間接收之 一第二封包,且其中上述處理器放置該第一封包於該第一 110 1374368 佇列中該第二封包之後,以維護該第一封包與該第二封包 之處理之一適當同步化。 46. —種成像資訊之方法,該方法包含之步驟為: 成像已接收資訊; 暫時儲存該已成像資訊於一第一佇列中; 存取該第一佇列,以擷取該暫時儲存資訊; 處理該暫時儲存資訊;及
主管一第二組件,該第二組件執行用於成像資訊之 方法,該方法包含以下步驟: 自該第一佇列擷取資訊; 暫時將自該第一佇列擷取到之資訊儲存於一第 二佇列中; 由一第三組件存取該第二佇列,以擷取該暫時儲 存之資訊;
其中自該第一佇列擷取到之暫時儲存之資訊經組態 而由該第三組件進行處理, 其中該第三組件包括一非同步外掛軟體組件,且 其中該成像步驟是由一第一組件執行,該第一組件包括至 少一外掛軟體,該至少一外掛軟體經組態而可移除地附加 至該第一佇列。 47. 如申請專利範圍第46項所述之方法,其中上述已接收 資訊包含於一第一時間接收之一第一封包與於一稍後時間 接收之一第二封包,上述暫時儲存步驟進一步包含之步驟 111 1374368 為. 放置該第一封包於該第一佇列中該第二封包之前, 以維護該第一封包與該第二封包之處理之一適當同步 化。 48. —種為可顯示資訊修改顯示屬性之方法,上述可顯示 資訊係由一第一成像器物件與由一第二成像器物件成像, 上述方法包含之步驟為:
於一组件接收顯示屬.性修改資訊,該組件包括一輸 入介面、一同步介面、及一非同步介面,且該第一成像 器物件附加至該同步介面,該第二成像器物件附加至該 同步介面與該非同步介面之一; 處理該顯示屬性修改資訊;
經由該第二成像器物件應用該顯示屬性修改資訊, 其中於該可顯示資訊由該第一成像器物件成像之 後,且於該可顯示資訊由該第二成像器物件成像之前, 接收該顯示屬性修改資訊,且 其中上述應用步驟延遲關於該顯示屬性修改資訊之 一顯示屬性修改之應用,直到該可顯示資訊已由該第二 成像器物件成像之後為止。。 49.如申請專利範圍第48項所述之方法,進一步包含之步 驟為: 延遲该應用步驟,直到一新筆或游標下壓事件於該 112 1374368 组件接收為止。 50. 一種為可顯示資訊修改顯示屬性之計算系統, 統包含: & 一處理器,主管一組件、一第一成像器物件與一第 —成像器物件,該組件包括一輸入介面、—同步介面 及一非同步介面,且該第一成像器物件附加於該同步介 面,該第二成像器物件附加於該同步介面及該非同步介 面, 其中上述處理器接收顯示屬性修改資訊、處理該顯 不屬性修改資訊 '及應用該顯示屬性修改資訊至由該第 二成像器物件所成像之該可顯示資訊。 5 1 .如申請專利範圍第5 〇項所述之計算系統, 其中於該可顯示資訊由該第一成像器物件成像後, 且於該可顯示資訊由該第二成像器物件成像前,接收該 顯示屬性修改資訊,且 其中上述應用步驟將關於該顯示屬性修改資訊之一 顯示屬性修改應用至該可顯示資訊。 52·如申請專刺範固第5〇項所述之計算系統, 其中於該可顯示資訊由該第一成像器物件成像後, 且於該可顯示資訊由該第二成像器物件成像前,接收該 顯示屬性修改資訊,且 其中上述應用步驟延遲關於該顯示屬性修改資訊之 -顯示屬性修改之應用程式,直到該可顯示資訊已由該 113 第二成像器物件成像之後為止。 53.如申請專利範圍第50項所述之計算系統,纟中上述處 理器延遲應用該顯示眉性修改資訊,直到一新筆或游標下 獲事件於該元件處接收為止。 54·—種處理資訊之系統,該系统包含: 一存鍺器;及 一處理器’與該存儲器交換資訊,上述處理器主管 第一組件與一第二组件,上述第一組件包含: 一輸入端,該輸入端接收資訊: 一同步介面,一第—外掛軟體物件附加於此同步介 面上述第一外掛軟體物件在該第一組件接收該資訊 時同步處理由該第一組件經由該輸入端而接收之資訊; -輸出仵列,自該第—外掛軟體物件接收資訊:及 -非同步介面,該第二組件的一輸入端附加於此非 上^介面’上述第二組件存取該輸出作列中之資訊;及 迷第一組件包含一同步介面 , 及一非同步介面,且有-第 '外掛軟體物件附加於該同步介 ^ ,, 丄有—第三外掛敕體 物件附加於該非同步介面上,使得上述第-外掛二: 係-動態成像器物…使得上述第 ?件 墨水集合物件。 軟體物件係一 55.如申請專利範圍第54項所述 糸統,其中卜、+, 掛軟體物件與該第二外掛軟體 述第一外 W 1十义至少其中— 、 於該組件之一清單之一部分。 成附加 114 1374368 56.如申請專利範圍笫54項所述之系統,其中上述第一外 掛軟體物件與該第二外掛軟體物件之至少其中之一形成附 加於該組件之一鏈之一部分。 5 7 如申請專利範圍第5 4項所述之系統,其中第二組件之 該同步介面允許該第二外掛軟體物件存取該輸出佇列中之 資訊。
5 8.如申請專利範圍第5 4項所述之系統,上述第二組件進 一步包含: 一輸入佇列,暫時儲存自該第一組件透過該非同步 介面接收之資訊,上述輸入佇列係由該第二組件之同步 介面存取。 59. —種排序來自一鍵盤、滑鼠、及觸控筆之事件之計算 系統,該系統包含: 一存儲器;
一處理器,與該存儲器交換資訊,上述處理器主管 一筆服務组件,上述筆服務組件自該滑鼠與該.觸控筆接 收資訊、排序該資訊、及將與電子墨水相關之資訊傳送 至一筆輸入管理器; 一第一輸入端,該第一輸入端自該滑鼠接收資訊; 及 一第二輸入端,該第二輸入端自該觸控筆接收資訊, 其中該筆輸入管理器包括一動態成像器及一靜態成 像器,且 115 1374368 其中該筆輸入管理器包含一未管理部分與一已管理 部分。 6 0 · —種管理可處理電子墨水之記憶體之系統,該系統包 含: 一存儲器;
一處理器,與該存儲器交換資訊,上述處理器包含 用於處理電子墨水之一組件,上述組件具有一未管理程 式碼區段與一已管理程式碼區段,該未管理程式碼區段 以一第一程式語言寫成且該已管理程式碼區以一第二程 式語言寫成,其中該第一程式語言與該第二程式語言不 同,上述未管理程式碼區段與該已管理程式碼區段共享 一共用記憶體,該組件包括經組態以接收該電子墨水之 一輸入端,一同步介面、及一非同步介面,該處理器進 一步.包括一動態成像器,該動態成像器具有以已管理程 式碼寫成之一第一部分與以未管理程式碼寫成之一第二 部分,其中該動態成像器包括一記憶體,該記憶體在該 已管理程式碼與該未管理程式碼之間共享。 6 1 · —種處理錯誤通知之系統,該系統包含: 一存儲器; 一處理器,與該存儲器交換資訊,上述處理器主管 具有外掛軟體物件之一組件, 116 1374368 其中,當該外掛軟體物件之資訊之處理中之一例外 發生時,上述外掛軟體物件建立傳送至其他外掛軟體物 件之一資料封包,以警告其他外掛軟體物件該例外, 其中上述資料封包傳送至一輸入佇列,該輸入佇列 接著由一同步執行緒與一非同步執行緒之至少其中之一 上之該外掛軟體物件加以存取,且
其中上述資料封包傳送至一輸出佇列,該輸出佇列 接著由一非同步執行緒上之外掛軟體物件加以存取。 117 1374368 式 圖 ~年(月W日修正替換頁 铖1Α涵 <£». --------- 阼業系統195丨 ! 應用程式196 G黹 程式資料 198 Ί90 192 102^1 101, 烯沐蛸韋198 批彥戠兴兹.1· 197 iia 黹A196 (RAM) .50 ,y.誇^择捧 30M) ιέ Π3ΐη : ,192 S?0 ί- 193 ^80 1151 196\ 痗瞵 m 細^1^ ΖΓ \Γ 1-1 嚮7 遠端電腦 1記憶體1 113 194 J91 112
1D—Q /JM0 166 165 116 1374368 七、指定代表圖; (一) 、本案指定代表圖為:第6圖。 (二) 、本代表圖之元件代表符號簡單說明: 601 筆 服 務 607 可 插 式 組 件 602 即 時 觸 控 筆 服務 608 動 態 成 像 器 603 即 時 觸 控 筆 組件 609 視 覺 存 儲 器 604 輸 入 佇 列 611 墨 水 集 合 物件 605 輸 出 佇 列 612 墨 水 存 儲 器 606 可 插 式 组 件 610 筆 勢 辨 識 器 禪本案若有化涯躁 特徵的化學式: 本案無化學式 4
TW093122595A 2003-10-24 2004-07-28 Real-time inking TWI374368B (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US51359103P 2003-10-24 2003-10-24
US10/879,527 US7436535B2 (en) 2003-10-24 2004-06-30 Real-time inking

Publications (2)

Publication Number Publication Date
TW200519711A TW200519711A (en) 2005-06-16
TWI374368B true TWI374368B (en) 2012-10-11

Family

ID=34526880

Family Applications (1)

Application Number Title Priority Date Filing Date
TW093122595A TWI374368B (en) 2003-10-24 2004-07-28 Real-time inking

Country Status (13)

Country Link
US (17) US7436535B2 (zh)
EP (1) EP1676185A4 (zh)
JP (1) JP4698599B2 (zh)
KR (1) KR101085730B1 (zh)
CN (1) CN1795453B (zh)
AU (1) AU2004287136B2 (zh)
BR (1) BRPI0406514A (zh)
CA (1) CA2511395C (zh)
MX (1) MXPA05007085A (zh)
MY (1) MY139593A (zh)
RU (1) RU2392655C2 (zh)
TW (1) TWI374368B (zh)
WO (1) WO2005045574A2 (zh)

Families Citing this family (118)

* Cited by examiner, † Cited by third party
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
US7262785B2 (en) * 2003-08-21 2007-08-28 Microsoft Corporation Ink editing architecture
BR0306576A (pt) * 2003-08-21 2006-10-03 Microsoft Corp coleta e renderização de tinta
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
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
US7757074B2 (en) 2004-06-30 2010-07-13 Citrix Application Networking, Llc System and method for establishing a virtual private network
EP1771998B1 (en) 2004-07-23 2015-04-15 Citrix Systems, Inc. Systems and methods for optimizing communications between network nodes
KR20070037650A (ko) 2004-07-23 2007-04-05 사이트릭스 시스템스, 인크. 종단에서 게이트웨이로 패킷을 라우팅하기 위한 방법 및시스템
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
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
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
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
KR100960577B1 (ko) 2005-02-08 2010-06-03 오블롱 인더스트리즈, 인크 제스처 기반의 제어 시스템을 위한 시스템 및 방법
US8108787B2 (en) * 2005-07-01 2012-01-31 Microsoft Corporation Distributing input events to multiple applications in an interactive media environment
US8305398B2 (en) 2005-07-01 2012-11-06 Microsoft Corporation Rendering and compositing multiple applications in an interactive media environment
US8020084B2 (en) 2005-07-01 2011-09-13 Microsoft Corporation Synchronization aspects of interactive multimedia presentation management
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
US7941522B2 (en) * 2005-07-01 2011-05-10 Microsoft Corporation Application security in an interactive media environment
US8799757B2 (en) * 2005-07-01 2014-08-05 Microsoft Corporation Synchronization aspects of interactive multimedia presentation management
US8656268B2 (en) * 2005-07-01 2014-02-18 Microsoft Corporation Queueing events in an interactive media environment
US7685298B2 (en) * 2005-12-02 2010-03-23 Citrix Systems, Inc. Systems and methods for providing authentication credentials across application environments
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
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
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
US9823747B2 (en) 2006-02-08 2017-11-21 Oblong Industries, Inc. Spatial, multi-modal control device for use with spatial operating system
US8537111B2 (en) 2006-02-08 2013-09-17 Oblong Industries, Inc. Control system for navigating a principal dimension of a data space
US8531396B2 (en) 2006-02-08 2013-09-10 Oblong Industries, Inc. Control system for navigating a principal dimension of a data space
US9910497B2 (en) 2006-02-08 2018-03-06 Oblong Industries, Inc. Gestural control of autonomous and semi-autonomous systems
US8407725B2 (en) 2007-04-24 2013-03-26 Oblong Industries, Inc. Proteins, pools, and slawx in processing environments
US8370383B2 (en) 2006-02-08 2013-02-05 Oblong Industries, Inc. Multi-process interactive systems and methods
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
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
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 ソフトバンクモバイル株式会社 操作入力処理方法及び携帯型情報処理装置
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
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
US8245145B1 (en) * 2007-12-18 2012-08-14 Eakin Douglas M Tool and method for developing a web page
US20090189892A1 (en) 2008-01-27 2009-07-30 Nitin Desai Methods and systems for detecting a dirty region within a frame encompassing three dimensional graphics
US8390579B2 (en) * 2008-03-14 2013-03-05 France Telecom System for classifying gestures
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
US10642364B2 (en) 2009-04-02 2020-05-05 Oblong Industries, Inc. Processing tracking and recognition data in gestural recognition systems
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
US9740293B2 (en) 2009-04-02 2017-08-22 Oblong Industries, Inc. Operating environment with gestural control and multiple client devices, displays, and users
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
EP2164026A1 (en) * 2008-09-15 2010-03-17 Alcatel, Lucent Gesture service platform
EP2350774A4 (en) * 2008-10-14 2014-11-05 Oblong Ind 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
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
US20100131743A1 (en) * 2008-11-25 2010-05-27 Microsoft Corporation Lazy and stateless 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
US9933852B2 (en) 2009-10-14 2018-04-03 Oblong Industries, Inc. Multi-process interactive systems and methods
US9971807B2 (en) 2009-10-14 2018-05-15 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
JP6010036B2 (ja) * 2010-10-01 2016-10-19 ゼット124Z124 タッチセンサ式ディスプレイに画像を表示する方法及び通信デバイスならびにコンピュータ可読媒体
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
US8994686B2 (en) 2011-10-17 2015-03-31 Topaz Systems, Inc. Digitizer
US8952926B2 (en) 2011-10-17 2015-02-10 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
WO2014097303A1 (en) * 2012-12-23 2014-06-26 N-Trig Ltd. 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
WO2015075930A1 (en) * 2013-11-19 2015-05-28 Wacom Co., Ltd. Method and system for ink data generation, ink data rendering, ink data manipulation and ink data communication
US9990046B2 (en) 2014-03-17 2018-06-05 Oblong Industries, Inc. Visual collaboration interface
WO2015141260A1 (ja) * 2014-03-17 2015-09-24 株式会社河合楽器製作所 手書き音楽記号認識装置およびプログラム
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
CN111556426B (zh) * 2015-02-06 2022-03-25 杜比实验室特许公司 用于自适应音频的混合型基于优先度的渲染系统和方法
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
CN111433738A (zh) 2017-12-11 2020-07-17 惠普发展公司,有限责任合伙企业 控制器事件队列
CN111625303B (zh) * 2019-02-27 2023-06-09 阿里巴巴集团控股有限公司 事件处理方法、装置、设备及可读存储介质
WO2021056780A1 (zh) * 2019-09-25 2021-04-01 掌阅科技股份有限公司 信息显示方法、阅读器、计算机存储介质、墨水屏阅读设备以及投屏显示系统
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

Family Cites Families (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2669575B2 (ja) * 1991-04-19 1997-10-29 インターナショナル・ビジネス・マシーンズ・コーポレイション データ入力方法及び装置
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
US6707473B2 (en) * 2001-08-01 2004-03-16 Microsoft Corporation Dynamic rendering of ink strokes with transparency
US6469983B2 (en) * 2001-02-26 2002-10-22 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
US7057615B2 (en) * 2001-06-28 2006-06-06 Microsoft Corporation Method and system for representing and displaying digital ink
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
JP2003216324A (ja) * 2002-01-17 2003-07-31 Hitachi Information Technology Co Ltd 入力システム
US7139004B2 (en) * 2002-01-25 2006-11-21 Xerox Corporation Method and apparatus to convert bitmapped images for use in a structured text/graphics editor
US7136082B2 (en) * 2002-01-25 2006-11-14 Xerox Corporation Method and apparatus to convert digital ink images for use in a structured text/graphics editor
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
US7533338B2 (en) * 2003-08-21 2009-05-12 Microsoft Corporation 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

Also Published As

Publication number Publication date
CN1795453B (zh) 2012-04-11
MY139593A (en) 2009-10-30
US20050093839A1 (en) 2005-05-05
US7453585B2 (en) 2008-11-18
US20050093840A1 (en) 2005-05-05
US7436535B2 (en) 2008-10-14
WO2005045574A2 (en) 2005-05-19
US7446894B2 (en) 2008-11-04
US20060132817A1 (en) 2006-06-22
US7463371B2 (en) 2008-12-09
US8199131B2 (en) 2012-06-12
KR20060123029A (ko) 2006-12-01
US20110225331A1 (en) 2011-09-15
US20050093844A1 (en) 2005-05-05
US20050093833A1 (en) 2005-05-05
US7016055B2 (en) 2006-03-21
US7428736B2 (en) 2008-09-23
CA2511395A1 (en) 2005-05-19
US20120242625A1 (en) 2012-09-27
EP1676185A2 (en) 2006-07-05
US8213027B2 (en) 2012-07-03
US20050093842A1 (en) 2005-05-05
US7212296B2 (en) 2007-05-01
US8400665B2 (en) 2013-03-19
JP4698599B2 (ja) 2011-06-08
US20050093838A1 (en) 2005-05-05
AU2004287136B2 (en) 2009-08-13
US20050093843A1 (en) 2005-05-05
AU2004287136A1 (en) 2005-05-19
US20050088420A1 (en) 2005-04-28
RU2392655C2 (ru) 2010-06-20
US7511836B2 (en) 2009-03-31
US20050156913A1 (en) 2005-07-21
US7199885B2 (en) 2007-04-03
JP2007509413A (ja) 2007-04-12
US7239401B2 (en) 2007-07-03
US7450261B2 (en) 2008-11-11
KR101085730B1 (ko) 2011-11-21
MXPA05007085A (es) 2005-10-18
US7443531B2 (en) 2008-10-28
WO2005045574A3 (en) 2005-10-27
EP1676185A4 (en) 2012-01-04
RU2005120672A (ru) 2006-01-20
CN1795453A (zh) 2006-06-28
US20070121125A1 (en) 2007-05-31
US20050093841A1 (en) 2005-05-05
CA2511395C (en) 2012-04-24
US7973957B2 (en) 2011-07-05
US7515139B2 (en) 2009-04-07
US20070153300A1 (en) 2007-07-05
US20090189879A1 (en) 2009-07-30
TW200519711A (en) 2005-06-16
US20050093836A1 (en) 2005-05-05
BRPI0406514A (pt) 2005-12-20

Similar Documents

Publication Publication Date Title
TWI374368B (en) Real-time inking
US8803824B2 (en) Methods for allowing applications to filter out or opt into tablet input
CN108139859B (zh) 对触摸显示器快速着墨

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees