针对降低延迟的数字着墨的湿墨纹理引擎的制作方法_2

文档序号:9916615阅读:来源:国知局
间之间的用户可感知的延迟。
[0026] 当墨水笔划的主动产生存在中断时,墨水输入停止。象征墨水输入结束的事件的 示例包括但不限于:数字笔移动出数字化器的范围、释放鼠标按钮、停止手指与触摸屏接 触、W及停用墨水输入模式。当运种情况发生时,将原始墨水笔划传递至墨水分析组件W产 生最终墨水。用最终墨水替代原始墨水的过程被称为干着墨。在最低限度上,墨水分析组件 将墨水提交至应用;然而,墨水分析组件可W执行对墨水的额外可选的处理。干着墨触发原 始墨水的重新擅染,运是因为干着墨设及当被擅染为最终墨水时删除原始墨水笔划。
[0027]图2示出了在湿着墨期间所产生的湿墨纹理与在干着墨期间所产生的虚拟纹理之 间的墨水流程的一个实施例。在湿着墨期间,原始墨水被缓存在湿墨纹理200中。湿墨纹理 200由湿墨和半干墨组成。湿墨是频繁更新并且向用户显示的纹理200;然而,湿墨纹理200 中的湿墨直到干着墨发生才能由应用所使用。应用画布202存储虚拟纹理204,该虚拟纹理 204保存由应用所捕获并且在应用中、去往应用W及来自应用的可用的墨水(即,干墨)。 [00%]在单独的层中存储湿墨和半干墨。湿墨被存储在输入(即,湿墨)层206中,半干墨 被存储在转移(即,半干墨)层208。每层都是用于保存在湿着墨过程中的不同阶段的原始墨 水虚拟帖缓冲器。层和应用画布202都可W被实现为能够通过应用程序接口(API)(例如, Direc肤叫访问的处理与显示图形相关的任务的对象(例如,位图、栅格化图像、或交换 链)、可视呈现标记语言(例如,可扩展应用标记语言(XAML))中的控制(例如,交换链层)、或 者使用可视呈现标记语言来管理图形显示API和图像源之间的交互的经管理的擅染表面。 在各种实施例中,应用画布202是经管理的擅染表面,例如,虚拟表面图像源(VSIS)或表面 图像源(SIS),并且输入层206和转移(即,半干墨)层是交换链层。
[0029] 在输入(即,湿墨)层中擅染原始墨水输入。输入层206中所存储的图像是对接所收 到的最新的墨水数据(包括局部笔划)的未经处理的(即,原始的)表示。频繁地呈现输入层 206W进行显示使得用户移动触控笔的时间与墨水出现在屏幕上的时间之间的用户可感知 的延迟最小化。
[0030] 在被擅染之后,湿墨被移动至转移(即,半干墨)层。转移层208充当准备好被提交 至应用或由应用消耗的湿墨(即,半干墨)的中间帖缓冲器。转移设及从输入层206中移除所 擅染的湿墨中的至少一些,并且在转移层208中将其重新擅染为半干墨。在转移层208中所 存储的图像是对已经被擅染并准备好被移动(即,被提交)至应用画布的湿墨的未经处理的 表不。
[0031] 在干着墨期间,将湿墨纹理中的墨水的至少一部分移动至应用画布的虚拟纹理 204。当应用准备好接受任何可用的半干墨时,应用请求转移层的内容。在应用画布202的虚 拟纹理204中重新擅染半干墨,并且清理转移层208。该流程继续直到将所有的墨水从湿墨 纹理200转移到虚拟纹理为止。
[0032] 图3示出了基本计算系统环境中的湿墨纹理引擎的一个实施例。湿墨纹理引擎300 在计算设备302上运行。计算设备通常包括硬件组件,所述硬件组件包括处理器304、存储器 306、输入设备308、W及输出设备310。处理器304执行软件组件,所述软件组件包括但不限 于:湿墨纹理引擎300、应用312、W及系统合成器314,并且处理器304执行其它逻辑功能和 控制功能。存储器306存储软件组件和相关联的数据,该数据包括但不限于湿墨纹理200、虚 拟纹理204、输入层206、W及转移层208。可W与湿墨纹理引擎300-起使用的合适的计算设 备的示例包括但不限于:台式计算机、膝上型计算机、平板计算机、平面计算机W及智能电 话。
[0033] 输入设备308是基于坐标的输入设备。在输入设备的各种实施例中,触控笔是用于 对表面进行着墨(即,在表面上写或画)的。在一些实施例中,触控笔是随其移动而产生基于 坐标的输入的主动组件(例如,数字笔或鼠标)。主动触控笔可W与被动表面(例如,纸张、鼠 标垫、或桌面)一起被使用。在其它实施例中,表面是基于用户的手指、数字笔或其它触控笔 (主动的或被动的)的位置和移动而产生基于坐标的输入的主动组件(例如,数字化器或触 摸屏)。在一些实施例中,输入设备308是基于用户的身体(例如,手指、手部或手臂)或者关 于在大型表面(例如,墙壁、桌子或数字白板)上所显示或投影的屏幕图像的其它对象的移 动而产生基于坐标的输入的电子传感器。在各种实施例中,电子传感器基于适用于追踪对 象的红外、超声、热、激光或其它基于可视或基于声音的传感技术而进行操作。合适的电子 传感器的一个示例是Microsof阳Kinect 3H专感器。应当理解的是,输入设备308还可W用 于除了着墨之外的输入。
[0034] 输出设备310是用于向用户显现包括应用用户界面和墨水的信息的可视显示设 备。合适的输出设备的示例包括但不限于:显示屏、监视器、投影仪、W及数字白板。如前所 述,将层与应用画布202进行组合W产生可W在输出设备310上显示的最终图像。例如,湿墨 纹理引擎300可W向在计算设备上运行的系统合成器314呈现层中的每层,而应用可W向系 统合成器314呈现应用画布202。系统合成器314从在计算设备上运行的应用中接收图像源, 并合成在屏幕上显示的最终图像。
[0035] 湿墨纹理引擎300结合能够通过基于坐标的输入设备接收墨水的应用而操作。例 如,湿墨纹理引擎300可W结合在计算设备上运行的应用312(例如,笔记应用、绘画应用、或 操作系统)而操作。在各种实施例中,湿墨纹理引擎300是应用所集成的组件。在其它实施例 中,湿墨纹理引擎300和应用是分离但交互的组件。例如,湿墨纹理引擎300可W是能够由应 用调用或者W其它方式与应用一起工作W处理墨水输入的服务、插件、接口、小程序或其它 软件组件。
[0036] 图4示出了与利用湿墨纹理引擎的一个实施例的单线程应用相关联的线程之间的 关系。湿墨纹理引擎300可W与单线程和多线程程序两者一起使用。然而,利用单线程应用 和具有用于接收、擅染和处理输入的单个线程的多线程应用可W体验更大的益处。在各种 实施例中,湿墨纹理引擎300提供两个专用工作线程W接收和擅染墨水输入。在其它实施例 中,湿墨纹理引擎300提供单个专用工作线程W接收和擅染墨水输入。无论数量,运些工作 线程独立于随着活动增加而变得迟纯的单个应用或用户界面化I)线程。
[0037] 墨水输入发生在专用墨水输入线程400上,并被编组至专用墨水擅染线程402。输 入层206中的原始(即,湿)墨水的擅染发生在墨水擅染线程402上,而此时不对湿墨进行任 何进一步的处理。接收输入和擅染湿墨W高优先级发生。一旦被擅染,湿墨就被呈现至系统 合成器并且在下一屏幕更新向用户显示。换句话说,湿墨W在接收到输入的时间与显示输 入的时间之间的最小的用户可感知的延迟而出现在屏幕上。
[0038] 将所擅染的湿墨笔划转移到转移层208发生在墨水擅染线程402上。转移可W W比 接收输入和擅染湿墨低的优先级发生,W允许尽可能快速地显示湿墨。在一些实施例中,半 干墨转换基本上与对湿墨进行擅染同时发生。在其它实施例中,半干墨转换在墨水输入中 断时发生。在运样的情况下,转移层208将仅包含完整的笔划,运将有助于当将半干墨笔划 提交至应用时促进可选处理。
[0039] 在转移之后,同时或基本上同时将湿墨和半干墨呈现至系统合成器314,并且在下 一屏幕更新向用户显示。一旦半干墨被擅染,进行等待W呈现输入层206与转移层208,而不 是在已经移除湿墨之后立即呈现输入层206,致力于维持墨水显示的可视保真。例如,将输 入层和转移层的呈现同步使可W由于在湿墨已经被移除了之后并且在其被重新擅染为半 干墨之前显示输入层和转移层而产生的用户所感受到的闪烁最小化。
[0040] 将半干墨作为干(即,所提交的)墨转移至应用设及锁定转移层208、在应用画布 202上重新擅染半干墨、W及清理转移层208。转移层208-旦被锁定,就将半干墨编组至应 用线程404上的应用,应用线程404将所述半干墨作为干墨而在应用画布上擅染。在各种实 施例中,应用线程404是UI线程。在其它实施例中,应用线程404是用于将墨水擅染至应用画 布202的专用工作线程。在干墨已经被擅染了之后,由墨水擅染线程402清理并解锁转移层 208。在各种实施例中,应用线程404发送针对墨水擅染线程402的请求,W在擅染了干墨之 后删除转移层208的内容。
[0041] 如在上文中所讨论的,应用可W周期性地轮询湿墨纹理引擎300 W确定半干墨是 否可用。在一些实施例中,湿墨纹理引擎300可W在墨水输入中断时和/或半干墨转换结束 时向应用提供通知。向应用提交半干墨可W W比接收和擅染湿墨和/或将湿墨转换为半干 墨更低的优先级发生。在一些实施例中,提交半干墨可W仅发生在有足够的可用资源来使 引起用户可感知到的墨水延迟的可能性最小化时。例如,提交半干墨可W仅发生在处理器 利
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1