CN107438818B - 处理经受应用程序监控和干预的数字墨水输入 - Google Patents

处理经受应用程序监控和干预的数字墨水输入 Download PDF

Info

Publication number
CN107438818B
CN107438818B CN201680015344.7A CN201680015344A CN107438818B CN 107438818 B CN107438818 B CN 107438818B CN 201680015344 A CN201680015344 A CN 201680015344A CN 107438818 B CN107438818 B CN 107438818B
Authority
CN
China
Prior art keywords
ink
input
event
application
stroke
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201680015344.7A
Other languages
English (en)
Other versions
CN107438818A (zh
Inventor
孙一波
K.梅农
C.魏因斯
涂霄
O.杜罗贾耶
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
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 Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN107438818A publication Critical patent/CN107438818A/zh
Application granted granted Critical
Publication of CN107438818B publication Critical patent/CN107438818B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/041Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
    • G06F3/0416Control or interface arrangements specially adapted for digitisers
    • G06F3/04162Control or interface arrangements specially adapted for digitisers for exchanging data with external devices, e.g. smart pens, via the digitiser sensing hardware
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B41PRINTING; LINING MACHINES; TYPEWRITERS; STAMPS
    • B41JTYPEWRITERS; SELECTIVE PRINTING MECHANISMS, i.e. MECHANISMS PRINTING OTHERWISE THAN FROM A FORME; CORRECTION OF TYPOGRAPHICAL ERRORS
    • B41J2/00Typewriters or selective printing mechanisms characterised by the printing or marking process for which they are designed
    • B41J2/485Typewriters or selective printing mechanisms characterised by the printing or marking process for which they are designed characterised by the process of building-up characters or image elements applicable to two or more kinds of printing or marking processes
    • B41J2/49Typewriters or selective printing mechanisms characterised by the printing or marking process for which they are designed characterised by the process of building-up characters or image elements applicable to two or more kinds of printing or marking processes by writing
    • 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
    • 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/041Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
    • G06F3/0416Control or interface arrangements specially adapted for digitisers
    • 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
    • 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
    • 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
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications

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)
  • User Interface Of Digital Computer (AREA)
  • Character Discrimination (AREA)

Abstract

描述了用于处理墨水输入的设施。在一个示例设施中,所述设施从输入设备接收墨水输入。该设施根据墨水输入处理管道响应于所接收的墨水输入生成和渲染墨水笔迹数据结构。该设施向执行应用提供对在墨水输入处理管道中的选定点处穿过墨水输入处理管道的信息的访问。

Description

处理经受应用程序监控和干预的数字墨水输入
背景技术
电子墨水是基于用户输入技术被添加到电子文档中的内容,在用户输入技术中,用户手写、绘制或执行其他任意的空间移动。作为这种用户输入的结果,对应于移动路径的视觉标记被添加到文档中。例如,在手写的情况下,手写的词语以与用户执行它们的相同的手写风格出现在文档中。
在一些情况下,用户通过将触笔或他或她的手指横过在其上显示文档的显示设备的表面移动,来执行该输入。在这种情况下,电子墨水通常在发生交互的位置处出现在文档中。在某些情况下,用户通过使用诸如鼠标或触摸板之类的输入设备在屏幕上移动所显示的位置指示器,来执行上墨输入。
在对应于手写的电子墨水的情况下,可以使用手写辨识技术来标识由手写表示的文本,其可以与电子墨水手写一起或代替电子墨水手写插入到文档中。
墨水通常由登记以接收墨水的应用程序消费。在这种情况下,典型地,感知到的墨水操作系统代表经登记的应用自动处理墨水相关的输入事件以执行以下各项中的一些或全部:生成墨水——即,创建表示墨水的数据结构,包括从沿着移动路径的一系列点插入和/或平滑的笔划;渲染墨水——即,使得在应用的显示区域中显示墨水的视觉表示;和/或,通过将表示墨水的数据结构传送给应用的控制来“干燥”墨水。
发明内容
提供本发明内容以便以简化的形式介绍以下在具体实施方式中进一步描述的概念的选择。本发明内容既非旨在标识所要求保护的主题的关键因素或必要特征,也不旨在用于限制所要求保护的主题的范围。
描述了用于处理墨水输入的设施。在一个示例设施中,设施从输入设备接收墨水输入。设施响应于根据墨水输入处理管道所接收的墨水输入生成并渲染墨水笔划数据结构。该设施向执行应用提供对在墨水输入处理管道中的选定点处穿过墨水输入处理管道的信息的访问。
附图说明
图1是示出可以并入到设施在其上操作的计算机系统和其他设备中的至少一些的组件中的一些的框图。
图2是示出在一些示例中可以由设施执行的用于处理宽设备输入的示例动作的流程图。
图3是示出了在一些示例中由设施用于存储关于应用的墨水事件处理程序的登记的信息的墨水事件登记表的样本内容的表格图。
图4是示出可以并入到设施在其上操作的计算机系统和其他设备中的至少一些的组件中的一些的框图。
具体实施方式
发明人已经观察到,操作系统将常规电子墨水处理系统与消耗其墨水的应用进行广泛隔离,这阻止了这些应用实现各种期望的感知到墨水的特征。例如,当与常规墨水处理系统结合操作时,这样的应用通常不能实现这样的特征,诸如允许用户使用利用笔或其他上墨指示设备执行的手势来调用某些应用功能性,诸如注销在电子邮件消息列表中的电子邮件消息,以便从列表中删除电子邮件消息;防止在应用的显示区域中的包含不应被遮蔽的视觉信息的某个区域中上墨;当从各个笔移动输入合成墨水笔划时将墨水笔划发送给协作用户计算机系统;实现定制的墨水选择,墨水擦除和光标悬停功能性;等等。
为了能够在应用中实现更全面的感知到墨水的特征,本发明人已经设想并处于实践用于处理经受应用程序的监控和干预的数字墨水输入的软件和/或硬件设施(“设施”)中。
在各种示例中,该设施许可应用在操作系统的墨水处理管道中的一个或多个点处拦截信息,包括原始设备输入;由原始设备输入生成的用于渲染的墨水笔划;以及不用于生成墨水笔划的输入类型。在一些示例中,该设施许可应用针对在墨水处理管道中的这些点中的任何点处发生的事件登记事件处理程序。
在一些示例中,应用的事件处理程序可以使用其对这些类型的事件的访问来影响墨水处理管道的行为。作为一个示例,在某些情况下,用于原始设备输入的事件处理程序可以基于对该原始设备输入的分析,指令该管道中止处理和渲染正在进行的笔划,诸如在笔划在应用显示区域的当前位置处将是不适当的情况下,或者在应用将构成笔划的原始设备输入辨识为匹配用户意图而不是对笔划上墨(诸如通过手势向应用发出命令)的情况下。
在一些示例中,该设施使应用的事件处理程序对于不同类别的事件以不同的优先级级别执行。特别地,在某些示例中,该设施使得用于原始设备输入的应用的事件处理程序在管道用于将原始设备输入处理为笔划的高优先级后台线程中执行,而使得用于事件的笔划和非笔划的应用的事件处理程序在应用用于将完成的笔划传送到其自己的正在编辑的文档的表示中的低优先级主机线程(诸如应用用户接口线程)中执行。(这种传送有时被称为“干燥”,并且任何未被如此干燥的笔划(诸如正在进行的笔划)有时被称为“湿的”。)在一些示例中,设施监控在高优先级线程中的应用的事件处理程序的执行,以确保应用的事件处理程序不会通过进行大量处理来滥用这些线程的高优先级,从而防止这些事件处理程序干预管道的墨水笔划的快速生成和渲染,这是为用户提供良好的上墨体验的一个重要部分。
通过以这些方式中的一些或所有方式执行,该设施能够在一部分应用上实现范围更广的有用且有吸引力的感知到墨水的特征。
图1是示出可以并入到设施在其上操作的计算机系统和其他设备中的至少一些中的组件中的一些的框图。在各种示例中,这些计算机系统和其他设备100可以包括服务器计算机系统、台式计算机系统、膝上型计算机系统、平板计算机系统、上网本、移动电话、个人数字助理、电视机、照相机、汽车计算机、电子媒体播放器、电子信报亭设备、电子表设备、电子白板设备等。在各种示例中,计算机系统和设备可以包括任何数量的以下各项:用于执行计算机程序的中央处理单元(“CPU”)101;用于在使用程序和数据时存储程序和数据的计算机存储器102,所述程序和数据包括所述设施和相关联的数据、包括内核和设备驱动器的操作系统以及一个或多个应用;用于持久存储程序和数据的诸如硬驱动器或闪速驱动器之类的持久存储设备103;用于读取存储在计算机可读介质上的程序和数据的诸如软盘、CD-ROM或DVD驱动器之类的计算机可读介质驱动器104;和/或用于诸如经由因特网或另外的有线或无线网络及其联网硬件将计算机系统连接到其他计算机系统和/或其他设备以发送和/或接收数据的通信子系统105,其中所述联网硬件诸如是交换机、路由器、中继器、电缆和光纤、发光器和接收器、无线电发射器和接收器等。
在各种示例中,这些计算机系统和其他设备100还可以包括任何数量的以下各项:用于呈现诸如文本、图像、图标、文档、菜单等的视觉信息的显示器106;以及用于感测与显示器的交互(诸如利用一个或多个手指、触笔或其他物体触摸显示器)的触摸屏数字转换器107。在各种示例中,触摸屏数字转换器使用一种或多种可用技术来感测与显示器的交互,诸如电阻感测、表面声波感测、表面电容感测、投射电容感测、红外网格感测、红外丙烯酸投射感测、光学成像感测、色散信号感测和声学脉冲辨识感测。在各种示例中,计算机系统和其他设备100包括各种其他类型的输入设备,诸如键盘、鼠标,触笔等(未示出)。
虽然如上所述配置的计算机系统可以用于支持设施的操作,但是本领域技术人员将会理解,可以使用具有各种组件的各种类型和配置的设备来实现该设施。
图2是示出在一些示例中可由设施执行的用于处理宽设备输入的示例动作的流程图。在一些示例中,设施在具有高执行优先级的线程(诸如用于生成和渲染墨水笔划的后台线程)中执行图2的动作。
在201处,设施接收设备输入。如果应用已经登记了用于接收设备输入的输入事件处理程序,则设施在211处继续,否则设施在203处继续。在各种示例中,该设施为应用登记事件处理程序提供了各种机制,诸如调用操作系统API、调用墨水系统API、在登记表中存储一个或多个键/值对等。在203处,设施关于在201处接收的输入的类型而分支:如果输入是落笔输入 ——诸如指示用户利用手指或触笔或另一个物体触摸了显示器的输入,或者诸如通过按下鼠标上的按钮来激活另一种类型的指示输入设备——设施在204处继续;如果输入是反映在落笔输入之后且在抬笔输入之前的指示设备的移动的笔移动输入,则设施在207处继续;如果输入是反映触摸显示器的手指或其他对象的移开、鼠标按钮的释放等的抬笔输入,则设施在208处继续;以及如果输入是没有命名的输入类型,则该设施在209处继续。
在204处,在接收到的输入是落笔输入的情况下,设施创建并渲染作为湿墨水的墨水笔划。通常这个新的笔划是单个点或一条非常短的线段。在205处,如果应用已经登记了笔划事件处理程序,则设施在206处继续,否则设施返回到201以接收下一个设备输入。在206处,该设施激发由低优先级主机线程(诸如应用的用户接口线程)上的应用所服务的笔划事件。在各种示例中,笔划处理程序可以执行处理,诸如在形成笔划时将笔划发送给远程计算机系统,诸如将它们发送给由协作用户使用的计算机系统,该协作用户于是可以在当前用户利用墨水输入形成笔划时进行观看。在206之后,设施返回到201。
在207处,在输入是笔移动输入的情况下,设施修订并渲染作为湿墨水的正在进行的笔划。在一些示例中,这种修订涉及,将笔划延伸到作为移动输入的目的地的新点,鉴于该延伸来平滑笔划的形状等。在207之后,设施在205处继续。
在208处,在输入是抬笔输入的情况下,设施完成并渲染作为湿墨水的正在进行的笔划,并使该湿墨水在主机线程中干燥。在208之后,设施在205处继续。
在209处,在输入是其他输入的情况下,如果应用已经登记了非笔划事件处理程序,则设施在210处继续,否则设施返回到201。在各种示例中,该其他输入可以是各种各样的类型,诸如悬停、擦除、按压触笔筒按钮(stylus barrel button)、点击鼠标的右按钮等。在210处,设施激发由主机线程上的应用所服务的笔划事件。在各种示例中,非笔划事件处理程序执行各种处理,诸如执行定制形式的擦除,选择墨水和其他内容,悬停等。在210之后,设施返回到201。
在一些示例中,设施以这样的方式分别在206和210处激发笔划事件和非笔划事件,即每个事件被应用的事件处理程序独立地接收。然而,在一些示例中,设施在队列中累积这样的事件的序列,其中该序列可以被应用的事件处理程序一起消费。在一些示例中,设施对这种事件的处置可由应用进行配置,诸如通过指定该排队是否应该在应用对事件处理程序的登记中执行,在随后的对操作系统的某个调用中执行,等等。
在211中,在应用已经为原始设备输入事件登记了输入事件处理程序的情况下,该设施激发与在201处接收到的输入相对应的输入事件。该输入事件由高优先级后台线程上的应用服务。 在各种示例中,输入事件处理程序执行各种处理,诸如检测手势并且作为响应调用对应的命令;防止在禁区中上墨;等等。作为服务输入事件的一部分,应用的输入事件处理程序可以确定输入事件是否应被标记为“被处置”,以便反映应用正主张构成任何当前正在进行的笔划的设备输入,并且该设备输入不应由管道处理。因此,在212处,如果设备输入被标记为被输入事件处理程序处置,则设施在213处继续,否则设施在203处继续。在213处,设施取消并去渲染正在进行的笔划。在214处,设施接收附加设备输入。在215处,该设施以类似于动作211的方式激发输入事件,其对应于在214处接收到的输入。在216处,如果输入的类型是抬笔输入,则设施返回到201,否则设施返回到214。
本领域技术人员将理解,图2中所示出的动作可以以各种方式更改。例如,动作的顺序可以重新布置;一些动作可能并行执行;所示的动作可以省略,或者可以包括其他动作;所示出的动作可以被分为子动作,或多个所示的动作可以组合成单个动作等。
作为设施的操作的另一示例,应用可以以将所选墨水拖动到新位置这样的方式与设施进行交互。在这个示例中,应用的输入事件处理程序处理落笔动作,并确定在所选定的区域(诸如所选定的矩形)内发生了落笔。输入事件处理程序调用输入配置API以向操作系统通知本输入序列应该作为非笔划事件而被指引到主机线程。在主机线程中,应用处理落笔动作并且随后通过根据笔移动动作拖动所选定的墨水笔划来处理笔移动动作。
图3是示出在一些示例中由设施用于存储关于应用对墨水事件处理程序的登记的信息的墨水事件登记表格的样本内容的表格图。表格300由行构成,诸如行301-303,每行对应于由应用登记的不同事件处理程序。每行由以下列构成:进程列311,其包含用于其中登记了事件处理程序的应用正在执行的进程的标识符;类型列312,其指示登记了事件处理程序的事件的类别——输入、笔划、或非笔划;以及代码指示器列313,其包含用于事件处理程序的入口点或者可以用于作为激发所登记的类别的事件的一部分而调用事件处理程序的其他信息。例如行301指示正在进程1中执行的应用已经登记了具有入口点XXXXXX的笔划事件处理程序。根据表格的状态,该应用尚未登记用于输入事件或非笔划事件的事件处理程序。另一方面,行302-303指示正在进程2中执行的应用已经登记了用于输入事件和非笔划事件的事件处理程序,但是尚未登记用于笔划事件的事件处理程序。
虽然图3示出了其内容和组织被设计为使得人类读者更易于理解的表格,但是本领域技术人员将理解,设施用于存储该信息的实际数据结构可能与所示的表格的不同之处在于,例如,它们可能以不同的方式组织;可能包含比所示出的信息更多或更少的信息;可能被压缩和/或加密;可能包含比所示出的行数多得多的行数;等等。
图4是示出可以并入到设施在其上操作的计算机系统和其他设备中的至少一些中的组件中的一些的框图。计算系统400包括被配置为执行应用的处理器410。计算系统还包括被配置为从输入设备接收墨水输入的输入设备接口420。计算系统还包括墨水输入处理子系统430,其被配置为生成和渲染墨水笔划数据结构。它响应于根据墨水输入处理管道由输入设备接口从输入设备接收的墨水输入而这样做。计算系统还包括墨水输入处理管道访问子系统440,其被配置为向处理器执行的应用提供对在墨水输入处理管道中的选定点处穿过墨水输入处理管道的信息的访问。计算系统还包括墨水输入处理控制系统450,其被配置为响应于从在处理器上执行的应用接收到指令,省略相对于由所述输入设备接口接收到的墨水输入的所选部分生成和渲染墨水笔划数据结构。计算系统还包括监控子系统460,其被配置为监控作为由处理器执行的应用的一部分的事件处理程序对处理资源的使用。
在一些示例中,该设施提供用于处理墨水输入的计算系统,该计算系统包括:处理器,其被配置为执行应用;输入设备接口,其被配置为接收墨水输入;墨水输入处理子系统,其被配置为响应于根据墨水输入处理管道由输入设备接口接收的墨水输入生成并渲染墨水笔划数据结构;以及墨水输入处理管道访问子系统,其被配置为向处理器执行的应用提供对在墨水输入处理管道中的选定点处穿过墨水输入处理管道的信息的访问。
在一些示例中,该设施提供了一种用于与应用程序相结合地处理墨水输入的在计算系统中的方法,所述方法包括:许可应用程序登记针对输入事件的事件处理程序;许可应用程序登记针对笔划事件的事件处理程序;从输入设备接收输入事件;响应于应用登记了针对输入事件的事件处理程序,向所登记的针对输入事件的事件处理程序提供对所接收的输入事件的访问;处理所述输入事件的至少一部分以生成多个墨水笔划;以及响应于应用登记了针对笔划事件的事件处理程序,向所登记的针对笔划事件的事件处理程序提供对所生成的笔划的访问。
在一些示例中,该设施提供了一种具有内容的计算机可读介质,所述内容被配置为使计算系统为了处置上墨输入而在操作系统中执行以下动作:调用应用;接收上墨输入事件流;对于由操作系统接收的每个上墨输入事件,在基于上墨输入事件生成墨水之前,向规定为被调用的应用的一部分的代码提供对上墨输入事件的访问;以及对于由操作系统接收的上墨输入事件的至少第一部分中的每一个,在向规定为被调用的应用的一部分的代码提供对上墨输入事件的访问之后,基于上墨输入事件生成墨水。
本领域技术人员将理解,上述设施可以以各种方式直接适配或扩展。虽然前面的描述参照特定示例,但是本发明的范围仅由所附权利要求和其中记载的元素来限定。

Claims (18)

1.一种用于处理墨水输入的计算系统,包括:
至少一个处理器,其配置为执行应用,所述应用被配置为消费墨水笔划数据结构;
输入设备接口,其被配置为接收墨水输入;
墨水输入处理子系统,其被配置为:至少基于根据由所述输入设备接口使用墨水输入处理管道所接收的墨水输入来生成和渲染墨水笔划数据结构,所述墨水输入处理管道管理以下过程:将所接收到的墨水输入首先进行墨水笔划生成,随后到墨水笔划显示器;以及
墨水输入处理管道访问子系统,其被配置为向所述至少一个处理器执行的被配置为消费墨水笔划数据结构应用提供对在墨水笔划显示器之前的在所述墨水输入处理管道中的选定点处穿过所述墨水输入处理管道的信息的访问,其中所述墨水输入处理管道中的所述选定点是墨水笔划数据结构生成之前的在墨水输入处理管道中的点,
其中由所述至少一个处理器执行的所述应用包括事件处理程序,
其中所述墨水输入处理管道访问子系统被进一步配置为经由所述事件处理程序提供访问,并且其中所述事件处理程序由所述至少一个处理器在高优先级线程执行,还包括:
规则子系统,其被配置为限制所述事件处理程序在所述高优先级线程中对处理资源使用的量。
2.根据权利要求1所述的计算系统,还包括:
墨水输入处理控制子系统,其被配置为:从在至少一个处理器上执行的应用接收指令,以及至少基于该指令,省略相对于由输入设备接口接收的墨水输入的所选定部分生成和渲染墨水笔划数据结构。
3.根据权利要求1所述的计算系统,其中所述事件处理程序在其中所被执行的所述高优先级线程也执行针对所述墨水输入处理子系统的代码。
4.根据权利要求1所述的计算系统,其中所述墨水输入处理管道中的所述选定点是所述墨水输入处理管道中由未被所述墨水输入处理子系统使用的一个或多个类型的墨水输入所穿过以生成和渲染墨水笔划数据结构的点。
5.一种用于与应用程序相结合地处理墨水输入的在计算系统中的方法,所述方法包括:
许可应用程序登记针对输入事件的事件处理程序;
许可应用程序登记针对笔划事件的事件处理程序;
从输入设备接收输入事件;
至少基于应用登记了针对输入事件的事件处理程序,向所登记的针对输入事件的事件处理程序提供对所接收的输入事件的访问;
处理所述输入事件的至少一部分以生成多个墨水笔划;
至少基于应用登记了针对笔划事件的所述事件处理程序,向所登记的针对笔划事件的事件处理程序提供对所生成的笔划的访问;以及
至少基于应用登记了针对输入事件的所述事件处理程序,限制针对输入事件的已登记的所述事件处理程序的处理资源消耗的量。
6.根据权利要求5所述的方法,还包括:
许可所述应用程序登记针对非笔划事件的事件处理程序,以及
至少基于应用登记了针对非笔划事件的所述事件处理程序,向针对非笔划事件的已登记的所述事件处理程序提供对于未用于生成墨水笔划的已接收的输入事件的访问。
7.根据权利要求5所述的方法,还包括:
从所述应用程序接收取消所选定的已生成墨水笔划的指引;以及
至少基于接收到所述指引,取消所选定的已生成墨水笔划。
8.根据权利要求7所述的方法,还包括:
使得所选定的已生成墨水笔划被去渲染;以及
删除所选定的已生成墨水笔划。
9.根据权利要求7所述的方法,其中在所述指引被接收的时间,所选定的已生成墨水笔划是不完整的。
10.根据权利要求5所述的方法,其中向所登记的针对笔划事件的事件处理程序提供对所生成的笔划的访问包括:将关于所生成的笔划的信息存储在所登记的针对笔划事件的事件处理程序可访问的队列中。
11.根据权利要求7所述的方法,其中响应于将与所选定的已生成墨水笔划相对应的输入事件识别为应用控制手势,所述应用程序生成已接受的指示以取消所选定的已生成墨水笔划。
12.一种具有内容的计算机可读介质,所述内容被配置为使得计算系统为了处置上墨输入而在操作系统中:
调用应用;
接收上墨输入事件流;
对于由操作系统接收的每个上墨输入事件,在基于上墨输入事件生成墨水之前,向规定为被调用的应用的一部分的代码提供对上墨输入事件的访问;
对于由操作系统接收的上墨输入事件的至少第一部分中的每一个,在向规定为被调用的应用的一部分的代码提供对上墨输入事件的访问之后,基于上墨输入事件生成墨水;以及
至少基于所述应用登记了针对输入事件的事件处理程序,限制针对输入事件的已登记的所述事件处理程序的处理资源消耗的量。
13.根据权利要求12所述的计算机可读介质,其中所述计算机可读介质具有内容,该内容被配置为还使得计算系统:
在所述操作系统中,
从规定为被调用的应用的一部分的代码接收相对于其访问被提供的可辨识的上墨输入事件的指引,
其中,至少基于接收到该指引,根据所接收到的指引执行基于在操作系统中的所述可辨识的上墨输入事件生成墨水。
14.根据权利要求12所述的计算机可读介质,其中所述计算机可读介质具有内容,该内容被配置为还使得计算系统:
在所述操作系统中,
从规定为被调用的应用的一部分的代码接收相对于其访问被提供的可辨识的上墨输入事件的指引,
其中,至少基于接收到该指引,所述可辨识的上墨输入事件不在针对其在操作系统中执行了墨水生成的上墨输入事件中。
15.根据权利要求12所述的计算机可读介质,其中所述计算机可读介质具有内容,该内容被配置为还使得计算系统:
在操作系统中:
对于由操作系统接收的上墨输入事件的至少第二部分中的每一个,基于上墨输入事件来渲染墨水;以及
从规定为被调用的应用的一部分的代码接收相对于其访问被提供的可辨识的上墨输入事件的指引,
其中,至少基于接收到该指引,所述可辨识的上墨输入事件不在针对其在操作系统中执行了墨水渲染的上墨输入事件中。
16.一种用于处理墨水输入的计算系统,包括:
至少一个处理器,其配置为执行应用,所述应用被配置为消费墨水笔划数据结构;
输入设备接口,其被配置为接收墨水输入;
墨水输入处理子系统,其被配置为:至少基于根据由所述输入设备接口使用墨水输入处理管道接收的墨水输入来生成和渲染墨水笔划数据结构,所述墨水输入处理管道管理以下过程:将所接收到的墨水输入首先进行墨水笔划生成,随后到墨水笔划显示器;以及
墨水输入处理管道访问子系统,其被配置为向所述至少一个处理器执行的被配置为消费墨水笔划数据结构应用提供对在墨水笔划显示器之前的在所述墨水输入处理管道中的选定点处穿过所述墨水输入处理管道的信息的访问;以及
规则器,其被配置为至少基于所述应用登记了针对输入事件的事件处理程序,限制针对输入事件的已登记的所述事件处理程序的处理资源消耗的量。
17.一种用于处理墨水输入的计算系统,包括:
至少一个处理器,其配置为执行应用,所述应用被配置为消费墨水笔划数据结构;
输入设备接口,其被配置为接收墨水输入;
墨水输入处理子系统,其被配置为:至少基于根据由所述输入设备接口使用墨水输入处理管道接收的墨水输入来生成和渲染墨水笔划数据结构,所述墨水输入处理管道管理以下过程:将所接收到的墨水输入首先提交到墨水笔划生成,随后到墨水笔划显示器;
墨水输入处理管道访问子系统,其被配置为向所述至少一个处理器执行的被配置为消费墨水笔划数据结构应用提供对在墨水笔划显示器之前的在所述墨水输入处理管道中的选定点处穿过所述墨水输入处理管道的信息的访问;
接收器,其被配置为从所述应用程序接收取消所选定的已生成墨水笔划的指引;以及
取消子系统,其至少基于接收到所述指引,取消所选定的墨水笔划。
18.根据权利要求17所述的计算系统,其中由所述接收器从所述应用程序接收的取消所选定的已生成墨水笔划的所述指引是由所述应用程序响应于将与所选定的已生成墨水笔划相对应的输入事件识别为应用控制手势而生成。
CN201680015344.7A 2015-03-12 2016-02-19 处理经受应用程序监控和干预的数字墨水输入 Active CN107438818B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201562132428P 2015-03-12 2015-03-12
US62/132428 2015-03-12
US14/830,607 US9950542B2 (en) 2015-03-12 2015-08-19 Processing digital ink input subject to monitoring and intervention by an application program
US14/830607 2015-08-19
PCT/US2016/018565 WO2016144502A1 (en) 2015-03-12 2016-02-19 Processing digital ink input subject to monitoring and intervention by an application program

Publications (2)

Publication Number Publication Date
CN107438818A CN107438818A (zh) 2017-12-05
CN107438818B true CN107438818B (zh) 2020-09-04

Family

ID=55447164

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680015344.7A Active CN107438818B (zh) 2015-03-12 2016-02-19 处理经受应用程序监控和干预的数字墨水输入

Country Status (4)

Country Link
US (1) US9950542B2 (zh)
EP (1) EP3268849A1 (zh)
CN (1) CN107438818B (zh)
WO (1) WO2016144502A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10228775B2 (en) * 2016-01-22 2019-03-12 Microsoft Technology Licensing, Llc Cross application digital ink repository
US10147159B2 (en) 2017-04-07 2018-12-04 Microsoft Technology Licensing, Llc Ink render using high priority queues

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1795453A (zh) * 2003-10-24 2006-06-28 微软公司 实时墨迹作图
CN1910050A (zh) * 2004-01-15 2007-02-07 皇家飞利浦电子股份有限公司 具有扫描器和分配器的电子画笔

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5347295A (en) * 1990-10-31 1994-09-13 Go Corporation Control of a computer through a position-sensed stylus
US5710831A (en) * 1993-07-30 1998-01-20 Apple Computer, Inc. Method for correcting handwriting on a pen-based computer
US5561446A (en) * 1994-01-28 1996-10-01 Montlick; Terry F. Method and apparatus for wireless remote information retrieval and pen-based data entry
US8166388B2 (en) 2002-05-14 2012-04-24 Microsoft Corporation Overlaying electronic ink
US20030214531A1 (en) 2002-05-14 2003-11-20 Microsoft Corporation Ink input mechanisms
US7174042B1 (en) 2002-06-28 2007-02-06 Microsoft Corporation System and method for automatically recognizing electronic handwriting in an electronic document and converting to text
US7284192B2 (en) 2004-06-24 2007-10-16 Avaya Technology Corp. Architecture for ink annotations on web documents
US8160363B2 (en) * 2004-09-25 2012-04-17 Samsung Electronics Co., Ltd Device and method for inputting characters or drawings in a mobile terminal using a virtual screen
US7499058B2 (en) 2005-04-22 2009-03-03 Microsoft Corporation Programmatical access to handwritten electronic ink in a tree-based rendering environment
US8315482B2 (en) 2007-06-26 2012-11-20 Microsoft Corporation Integrated platform for user input of digital ink
US8116569B2 (en) 2007-12-21 2012-02-14 Microsoft Corporation Inline handwriting recognition and correction
US8189922B2 (en) 2008-09-25 2012-05-29 Lenovo (Singapore) Pte. Ltd. Techniques for adjusting a drying time of digital ink
US8477103B2 (en) 2008-10-26 2013-07-02 Microsoft Corporation Multi-touch object inertia simulation
US9589241B2 (en) * 2011-03-31 2017-03-07 The United States Of America As Represented By The Secretary Of The Navy Electrical resource controller
US20140210798A1 (en) 2013-01-31 2014-07-31 Hewlett-Packard Development Company, L.P. Digital Drawing Using A Touch-Sensitive Device To Detect A Position And Force For An Input Event
US9286703B2 (en) 2013-02-28 2016-03-15 Microsoft Technology Licensing, Llc Redrawing recent curve sections for real-time smoothing

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1795453A (zh) * 2003-10-24 2006-06-28 微软公司 实时墨迹作图
CN1910050A (zh) * 2004-01-15 2007-02-07 皇家飞利浦电子股份有限公司 具有扫描器和分配器的电子画笔

Also Published As

Publication number Publication date
US9950542B2 (en) 2018-04-24
WO2016144502A1 (en) 2016-09-15
US20160263911A1 (en) 2016-09-15
CN107438818A (zh) 2017-12-05
EP3268849A1 (en) 2018-01-17

Similar Documents

Publication Publication Date Title
US9996176B2 (en) Multi-touch uses, gestures, and implementation
US7907125B2 (en) Recognizing multiple input point gestures
RU2501068C2 (ru) Интерпретация неоднозначных вводов на сенсорном экране
US8732576B2 (en) Operating system providing multi-touch support for applications in a mobile device
US20220214784A1 (en) Systems and methods for a touchscreen user interface for a collaborative editing tool
US20090327975A1 (en) Multi-Touch Sorting Gesture
KR102323892B1 (ko) 멀티 터치 가상 마우스
US9268476B2 (en) Drag and drop interaction paradigm with image swap
US20150169134A1 (en) Methods circuits apparatuses systems and associated computer executable code for providing projection based human machine interfaces
US20140298275A1 (en) Method for recognizing input gestures
CN107438818B (zh) 处理经受应用程序监控和干预的数字墨水输入
US20160054879A1 (en) Portable electronic devices and methods for operating user interfaces
US20120096349A1 (en) Scrubbing Touch Infotip
CN108885556B (zh) 控制数字输入
US20150143289A1 (en) Automatic check box interaction
US20140002397A1 (en) Method and device for handling event invocation using a stylus pen
EP3433713B1 (en) Selecting first digital input behavior based on presence of a second, concurrent, input
US8806381B2 (en) Method and system to improve GUI use efficiency
US20120117517A1 (en) User interface
US20170053161A1 (en) Handwriting recognition with natural user input on multitouch surfaces
US20160210038A1 (en) Electronic inking

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant