CN107562325B - 一种虚拟机中自带光标软件的光标加速方法及系统 - Google Patents
一种虚拟机中自带光标软件的光标加速方法及系统 Download PDFInfo
- Publication number
- CN107562325B CN107562325B CN201710861837.9A CN201710861837A CN107562325B CN 107562325 B CN107562325 B CN 107562325B CN 201710861837 A CN201710861837 A CN 201710861837A CN 107562325 B CN107562325 B CN 107562325B
- Authority
- CN
- China
- Prior art keywords
- cursor
- virtual machine
- software
- color
- information
- 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
Links
Images
Landscapes
- User Interface Of Digital Computer (AREA)
Abstract
本发明实施例提供了一种虚拟机中自带光标软件的光标加速方法及系统,用于减小虚拟机中自带光标软件的光标显示的延迟时间。本发明实施例方法包括:虚拟机读取自带光标软件的光标配置信息,所述自带光标软件由于自身的逻辑设计而需要自身在所述虚拟机中绘制服务端光标;所述虚拟机获取所述自带光标软件的绘图命令;所述虚拟机根据所述光标配置信息判断所述绘图命令中是否存在光标绘制命令,若存在所述光标绘制命令,则所述虚拟机根据所述光标配置信息生成光标绘制规则并发送给所述客户端,以使得所述客户端根据所述光标绘制规则绘制客户端光标;所述虚拟机将所述自带光标软件在虚拟机中绘制的服务端光标隐藏。
Description
技术领域
本发明涉及远程虚拟桌面技术领域,尤其涉及一种虚拟机中自带光标软件的光标加速方法及系统。
背景技术
随着云技术的兴起,传统桌面办公方式逐渐在被远程虚拟桌面场景所替代,即虚拟桌面基础设施(Virtual Desktop Infrastructure,简称“VDI”)场景。在很多VDI场景都会使用客户端鼠标模式,即隐藏服务端绘制的鼠标,在客户端显示已经上绘制好的鼠标,鼠标移动不需要服务端频繁地绘制画面,从而改善用户体验。然而这种方案有局限性,只能解决某些使用显卡光标接口进行光标绘制的软件,但是对于CAD这类设计类软件,由于这类软件的本身的逻辑设计,在绘图的过程中,会获取鼠标的位置信息,然后再通过调用绘图编程接口的命令接口进行光标绘制,这个绘制过程和绘制图纸上的其他图元没有任何区别,会和其他图元一起进行画面渲染,渲染之后的画面会通过编码输出给客户端,由客户端进行画面解码和画面渲染并显示。
在VDI场境下,对于这类由于软件自身的逻辑设计而需要自身绘制光标的自带光标软件,例如CAD绘图软件、各类3D绘图软、需要鼠标操作的网络游戏软件等,这类自带光标软件对光标的体验要求非常高,然而在VDI环境下的客户端鼠标模式中,自带光标软件的光标绘制需要先在服务端进行光标渲染之后,通过图像编码的形式与其他图元一起发送给客户端,客户端解码图像编码,重新渲染光标图像并显示光标。即,在上述VDI环境下的客户端鼠标模式中的自带光标软件,服务端需要对光标渲染并进行图像编码之后,光标的绘制规则才能传递到对应的客户端进行解码、渲染和显示。
当需要渲染的图元较多时,服务端对光标进行渲染以及客户端对图像编码的解码过程需要耗费时间,这样会使得客户端的光标显示存在延迟,对于CAD绘图软件、各类3D绘图软、需要鼠标操作的网络游戏软件等,这类自带光标软件对光标的体验要求非常高,光标显示的延迟会大大降低用户的体验。
发明内容
本发明实施例提供了一种虚拟机中自带光标软件的光标加速方法及系统,用于减小虚拟机中自带光标软件的光标显示的延迟时间。
本发明实施例第一方面提供了一种虚拟机中自带光标软件的光标加速方法,可包括:
虚拟机读取自带光标软件的光标配置信息,所述自带光标软件由于自身的逻辑设计而需要自身在所述虚拟机中绘制服务端光标;
所述虚拟机获取所述自带光标软件的绘图命令;
所述虚拟机根据所述光标配置信息判断所述绘图命令中是否存在光标绘制命令,若存在所述光标绘制命令,则所述虚拟机根据所述光标配置信息生成光标绘制规则并发送给所述客户端,以使得所述客户端根据所述光标绘制规则绘制客户端光标;
所述虚拟机将所述自带光标软件在虚拟机中绘制的服务端光标隐藏。
结合第一方面,在第一方面的第一种可能的实施方式中,所述自带光标软件的光标配置信息包括光标颜色信息;
所述虚拟机将所述自带光标软件在虚拟机中绘制的服务端光标隐藏,包括:
所述虚拟机将所述自带光标软件的配置信息中光标颜色信息修改为预置颜色;
当所述自带光标软件调用显卡渲染图像时,所述虚拟机判断显卡输出的颜色是否与所述预置颜色相同,若相同,则不输出预置颜色,过滤掉预置颜色的渲染,以隐藏服务端光标。
结合第一方面,在第一方面的第二种可能的实施方式中,所述自带光标软件的光标配置信息包括光标颜色信息;
所述虚拟机将所述自带光标软件在虚拟机中绘制的服务端光标隐藏,包括:
所述虚拟机将所述自带光标软件的配置信息中光标颜色信息修改为与绘图背景颜色相同或近似的颜色,以隐藏服务端光标。
结合第一方面,在第一方面的第三种可能的实施方式中,所述虚拟机将所述自带光标软件在虚拟机中绘制的服务端光标隐藏,包括:
所述虚拟机将所述光标绘制命令中的光标顶点设置为透明显示,以隐藏服务端光标。
结合第一方面,第一方面的第一种可能的实施方式,第一方面的第二种可能的实施方式,第一方面的第三种可能的实施方式,在第一方面的第四种可能的实施方式中,所述自带光标软件的光标配置信息包括光标大小信息及光标颜色信息;
所述虚拟机根据所述光标配置信息判断所述绘图命令中是否存在光标绘制命令,包括:
所述虚拟机判断所述绘图命令中的绘图类型是否与光标绘图类型相同;
若所述绘图命令中的绘图类型与光标绘图类型相同,则所述虚拟机根据所述绘图命令中的命令参数解析绘图过程中的顶点信息的位置索引;
所述虚拟机根据所述顶点信息的位置索引提取多个顶点的顶点信息,并根据多个所述顶点信息计算所述绘图命令绘制的目标图形的大小;
若目标图形的大小与所述光标配置信息中的光标大小信息相匹配,则判定所述绘图命令中存在光标绘制命令。
本发明实施例第二方面提供了一种虚拟机中自带光标软件的光标加速系统,可包括:
虚拟机及客户端,其中,
虚拟机读取自带光标软件的光标配置信息,所述自带光标软件由于自身的逻辑设计而需要自身在所述虚拟机中绘制服务端光标;
所述虚拟机还用于获取所述自带光标软件的绘图命令;
所述虚拟机还用于根据所述光标配置信息判断所述绘图命令中是否存在光标绘制命令,若存在所述光标绘制命令,则所述虚拟机根据所述光标配置信息生成光标绘制规则并发送给所述客户端;
所述客户端用于根据所述光标绘制规则绘制客户端光标;
所述虚拟机还用于将所述自带光标软件在虚拟机中绘制的服务端光标隐藏。
结合第二方面,在第二方面的第一种可能的实施方式中,所述自带光标软件的光标配置信息包括光标颜色信息;
所述虚拟机将所述自带光标软件在虚拟机中绘制的服务端光标隐藏,包括:
所述虚拟机将所述自带光标软件的配置信息中光标颜色信息修改为预置颜色;
当所述自带光标软件调用显卡渲染图像时,所述虚拟机判断显卡输出的颜色是否与所述预置颜色相同,若相同,则不输出预置颜色,过滤掉预置颜色的渲染,以隐藏服务端光标。
结合第二方面,在第二方面的第二种可能的实施方式中,所述自带光标软件的光标配置信息包括光标颜色信息;
所述虚拟机将所述自带光标软件在虚拟机中绘制的服务端光标隐藏,包括:
所述虚拟机将所述自带光标软件的配置信息中光标颜色信息修改为与绘图背景颜色相同或近似的颜色,以隐藏服务端光标。
结合第二方面,在第二方面的第三种可能的实施方式中,所述虚拟机将所述自带光标软件在虚拟机中绘制的服务端光标隐藏,包括:
所述虚拟机将所述光标绘制命令中的光标顶点设置为透明显示,以隐藏服务端光标。
结合第二方面,第二方面的第一种可能的实施方式,第二方面的第二种可能的实施方式,第二方面的第三种可能的实施方式,在第二方面的第四种可能的实施方式中,所述自带光标软件的光标配置信息包括光标大小信息及光标颜色信息;
所述虚拟机根据所述光标配置信息判断所述绘图命令中是否存在光标绘制命令,包括:
所述虚拟机判断所述绘图命令中的绘图类型是否与光标绘图类型相同;
若所述绘图命令中的绘图类型与光标绘图类型相同,则所述虚拟机根据所述绘图命令中的命令参数解析绘图过程中的顶点信息的位置索引;
所述虚拟机根据所述顶点信息的位置索引提取多个顶点的顶点信息,并根据多个所述顶点信息计算所述绘图命令绘制的目标图形的大小;
若目标图形的大小与所述光标配置信息中的光标大小信息相匹配,则判定所述绘图命令中存在光标绘制命令。
从以上技术方案可以看出,本发明实施例具有以下优点:
本发明实施例中,虚拟机可以读取自带光标软件的光标配置信息,并检测该软件的绘图命令中是否存在光标绘制命令,当存在光标绘制命令时,虚拟机提前将光标配置信息发送给客户端,以使得客户端可以提前在原位置绘制客户端光标,与现有方案相比,在虚拟机中运行自带光标软件时,客户端光标的绘制无需等待虚拟机中光标与其他图元的渲染过程、图像编码过程及客户端解码过程,降低了客户端光标显示的延迟时间。
附图说明
图1为本发明实施例中一种虚拟机中自带光标软件的光标加速方法的一个实施例示意图;
图2为图1中步骤300的细化步骤示意图;
图3为AutoCAD软件中的光标类型示意图;
图4为glDrawElements命令查询顶点信息的流程示意图;
图5为本发明实施例中一种虚拟机中自带光标软件的光标加速系统的一个实施例示意图。
具体实施方式
本发明实施例提供了一种虚拟机中自带光标软件的光标加速方法及系统,用于减小虚拟机中自带光标软件的光标显示的延迟时间。
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
首先,对现有方案中虚拟桌面基础设施(Virtual Desktop Infrastructure,简称“VDI”)场景下自带光标软件的光标生成过程进行简单的介绍,在现有的方案中,当客户端发生鼠标移动事件时,客户端通过本地系统中的光标控制相关的应用程序接口(Application Programming Interface,API),获取该鼠标移动事件,再通过协议通讯将其获取的客户端鼠标移动事件传递到虚拟机端。虚拟机端的自带光标软件接收到该操作信息之后,通过调用OpenGL或Direct3D等绘图编程接口生成对应的光标绘制命令,然后驱动显卡在对应的位置渲染出对应的光标图像,最后将渲染的图像进行图像编码并传递给客户端进行解码和渲染显示。
本发明实施例中的自带光标软件是指由于自身的逻辑设计而需要自身在虚拟机中的运行界面上绘制形状不同于传统鼠标光标的软件,例如,绘图设计类软件,例如,美国欧特克有限公司开发的AutoCAD软件、3D Studio Max软件、Photoshop软件等,游戏类软件,例如,射击类游戏、魔兽、英雄联盟等,具体的自带光标软件种类,此处不做限定。
为了便于理解,下面对本发明实施例中的具体流程进行描述,请参阅图1,本发明实施例中一种虚拟机中自带光标软件的光标加速方法的一个实施例可包括:
100、虚拟机读取自带光标软件的光标配置信息;
本实施例中,自带光标软件由于自身的逻辑设计而需要自身在虚拟机中绘制光标,即服务端光标,自带光标软件的光标的种类及光标的大小等配置信息往往是可以根据用户的需求进行设置的,在用户设置光标配置信息之后,自带光标软件会将光标配置信息保存在对应的配置表中,以便于后期绘图时调用,当自带光标软件在虚拟机上运行时,虚拟机可以在对应的配置表中获取到用户设置的光标配置信息。
200、虚拟机获取自带光标软件的绘图命令;
当自带光标软件收到客户端的鼠标移动事件或接收到客户端的其他相关的绘图操作命令之后,会调用对应的OpenGL或Direct3D等绘图编程接口生成对应的光标绘制命令,具体生成绘图命令的过程为现有技术,此处不做赘述。
现有技术中,由于自带光标软件的光标配置信息设置完成之后,其具体的光标绘制规则也随之确定,自带光标软件在虚拟机中绘制服务端光标只需要根据客户端的鼠标移动事件确定虚拟机中光标位置,然后调用光标配置信息,根据光标配置信息中光标绘制规则绘制虚拟机中的服务端光标。具体的,虚拟机可以在自带光标软件运行期间持续获取OpenGL或Direct3D等绘图编程接口生成对应的绘图命令以识别其中的光标绘制命令,优选的,虚拟机可以在检测到客户端的鼠标移动事件之后,再获取OpenGL或Direct3D等绘图编程接口生成对应的绘图命令,具体获取绘图命令的时间此处不做限定。
300、虚拟机根据光标配置信息判断绘图命令中是否存在光标绘制命令;
当获取到绘图命令之后,虚拟机可以解析绘图命令,根据光标配置信息按照预置规则判断绘制命令中是否包含光标绘制命令。
进一步的,请参阅图2,图2为图1中步骤300的细化步骤示意图。作为一种可能的实施方式,步骤300可包括:
201、虚拟机判断绘图命令中的绘图类型是否与光标绘图类型相同;
本实施例中,以AutoCAD软件为例进行说明,自带光标软件的光标配置信息可以包括光标大小信息及光标颜色信息,AutoCAD软件的光标分为三种,如图3中所示,分别为十字矩形光标3011、十字光标3012和矩形光标3013,由图可知,这三种类型的光标的均由直线构成,其对应的绘图类型为线性类绘图,在识别光标绘制命令过程中,可以首先根据绘图命令中判断该绘图命令的绘图类型是否与光标的绘图类型相同,显然若两者的绘图类型不同,则该绘图命令不可能是光标绘制命令,只有在两者的绘图类型相同时,才可以进行进一步的判断。
202、若绘图命令中的绘图类型与光标绘图类型相同,则虚拟机根据绘图命令中的命令参数解析绘图过程中的顶点信息的位置索引;
当绘图命令中的绘图类型与光标绘图类型相同时,虚拟机进一步根据绘图命令中的命令参数解析绘图过程中的顶点信息的位置索引,以OpenGL接口中的glDrawElements命令来举例说明,首先根据glDrawElements命令的相关参数我们可以获取到将要绘制的图像的顶点信息在显存里面的位置索引,如图4所示,pos=n,count=6表示该绘图命令中的所绘制的图形的顶点包括从位置索引n指向的顶点开始的连续6个顶点,根据位置索引信息可以读取到该绘图命令中所需绘制的6个顶点的顶点信息,具体的顶点信息包括对应顶点的坐标位置及顶点的颜色信息。
具体的光标绘制指令的检测方式可以根据顶点信息进行确认,例如,如果count为8,可能代表8个顶点对应四条线,可以优先根据配置信息矩形光标的大小判断是否为矩形光标;如果count为12,可能代表12个顶点六条线,可以优先根据配置信息里的矩形光标的大小和十字光标的大小去判断是否为十字矩形光标;如果前面的情况未能检测到光标,只要count大于4,可以检测最后四个顶点(对应两条线),根据十字光标的大小判断是否为十字光标,如果最后四个顶点(对应两条线)不是光标线,则遍历这count个顶点找到第一个颜色相符合的顶点,然后从这个顶点开始再判断是否为十字光标线,具体的顶点数目与具体的绘图编程接口种类及光标的种类相关,具体此处不做限定。
203、虚拟机根据顶点信息的位置索引提取多个顶点的顶点信息,并根据多个顶点信息计算绘图命令绘制的目标图形的大小;
当获取到顶点信息的位置索引之后可以读取到将要绘制的图像的顶点信息,进而可以按照预置的检测规则进一步的判断绘图命令中是否包含光标绘制命令,具体的,本实施例以AutoCAD软件中的十字光标为例进行说明,十字光标有四个顶点,对应的顶点信息可以为:vertex1(x1,y1,z1,RGB1)、vertex2(x2,y2,z2,RGB2)、vertex3(x3,y3,z3,RGB3)、vertex4(x4,y4,z4,RGB4)。当y1=y2时,可以计算两顶点之间的长度cursorSize为:cursorSize=x2-x1,或x3=x4时,cursorSize=y3-y4,计算出的顶点之间的长度可以与用户设置的十字光标的配置信息中的大小信息进行对比,若计算出的顶点之间的长度可以与用户设置的十字光标的配置信息中的大小信息匹配,则可以判定该绘图命令为光标绘制命令或包括光标绘制命令。
进一步的,在检测到光标绘制指令之后,还可以对顶点的颜色值(RGB)做判断,如果符合,则可以进一步的确认绘图命令里包含光标的绘制。在检测到光标绘制指令之前,还可以对顶点的颜色值(RGB)做判断,如果不符合,则可以初步确认绘图命令里不包含光标绘制命令。
可以理解的是,对于不同的自带光标软件,由于其光标的种类不同,以及用户的设置的配置信息不同,具体的光标绘制指令的检测方式也会因此而调整,具体的光标绘制指令的检测方式,此处不做限定。
204、若目标图形的大小与光标配置信息中的光标大小信息相匹配,则判定绘图命令中存在光标绘制命令。
本实施例中可以通过绘图命令中的相关参数可以获取到将要绘制的图像的顶点信息,并按照预置的检测规则判断该绘图命令中是否包含光标绘制命令。
400、若存在光标绘制命令,则虚拟机根据光标配置信息生成光标绘制规则并发送给客户端;
由于虚拟机中的服务端光标的具体位置是根据客户端的鼠标位置移动进行确定的,在绘制客户端光标的过程中,虚拟机中可以无需向客户端发送服务端光标的位置,当虚拟机检测到光标绘制命令时,虚拟机只需要将用户设置的光标配置信息对应的光标绘制规则发送给客户端中即可,以使得客户端根据光标绘制规则在客户端鼠标显示的位置绘制客户端光标。
本发明实施例中,可以允许虚拟机在检测光标绘制命令中存在一定的误差,在虚拟机中运行自带光标软件时,虚拟机甚至可以在检测到客户端的鼠标移动事件之后,就可以向客户端发送光标绘制规则,使得客户端在当前鼠标位置显示客户端光标。
500、虚拟机将自带光标软件在虚拟机中绘制的服务端光标隐藏。
在虚拟机中运行自带光标软件时,为了防止虚拟机中的服务端光标与客户端的光标由于位置不同步而影响用户体验,虚拟机可以将自带光标软件在虚拟机中绘制的服务端光标隐藏,虚拟机隐藏服务端光标具体的实施方式将在后续实施例中进行描述。
可以理解的是,虚拟机无论是否检测到光标绘制指令,虚拟机都可以执行隐藏服务端光标的流程,因而步骤500与上述步骤的先后顺序此处不做限定。
本发明实施例中,虚拟机可以读取自带光标软件的光标配置信息,并检测该软件的绘图命令中是否存在光标绘制命令,当存在光标绘制命令时,虚拟机提前将光标配置信息发送给客户端,以使得客户端可以提前在原位置绘制客户端光标,与现有方案相比,在虚拟机中运行自带光标软件时,客户端光标的绘制无需等待虚拟机中光标与其他图元的渲染过程、图像编码过程及客户端解码过程,降低了客户端光标显示的延迟时间。
在上述实施例的基础上,虚拟机需要将自带光标软件在虚拟机中绘制的服务端光标隐藏,具体的隐藏方式可以分为三种:
一、通过颜色过滤的方式实现服务端光标隐藏;
作为一种可能的实施方式,步骤500可包括:
501、虚拟机将自带光标软件的配置信息中光标颜色信息修改为预置颜色;
当用户设置自带光标软件的光标配置信息包括光标颜色信息之后,自带光标软件会将光标配置信息存储在特定的配置表中。在需要绘制光标时,自带光标软件可以在特定的配置表中读取光标配置信息,本发明实施例中的虚拟机可以直接修改该配置表中的光标颜色为预置的颜色。虚拟机也可以采用HOOK(钩子)技术,在自带光标软件读取光标配置信息的过程中,将自带光标软件读取到的光标配置信息中的光标颜色为预置的颜色。具体的HOOK技术原理为现有技术,此处不做赘述。
502、当自带光标软件调用显卡渲染图像时,虚拟机判断显卡输出的颜色是否与预置颜色相同,若相同,则不输出预置颜色,过滤掉预置颜色的渲染,以隐藏服务端光标。
自带光标软件调用对应的OpenGL或Direct3D等绘图编程接口生成对应的光标绘制命令之后,需要进一步调用显卡渲染生成对应的图像,虚拟机已将自带光标软件的配置信息中光标颜色信息修改为预置颜色,当自带光标软件调用显卡渲染图像时,虚拟机判断显卡输出的颜色是否与预置颜色相同,具体的,通过高阶着色器语言(High Level ShaderLanguage,简称HLSL)HLSL程序或者OpenGL着色语言(OpenGL Shading Language,简称GLSL)GLSL程序在显卡的渲染管线的片元着色阶段进行颜色过滤,在RGB色彩模式中通过判断输出颜色的RGB值是否与预置颜色的RGB值相同来判断识别出输出的颜色是否与预置颜色相同,若相同,则控制显卡不输出预置颜色,即,过滤掉预置颜色的渲染,以隐藏服务端光标,具体的预置颜色RGB值此处不做限定。
二、通过将光标颜色设置为背景颜色的方式实现服务端光标隐藏;
作为一种可能的实施方式,步骤500可包括:
503、虚拟机将自带光标软件的配置信息中光标颜色信息修改为与绘图背景颜色相同或近似的颜色,以隐藏服务端光标。
自带光标软件调用对应的OpenGL或Direct3D等绘图编程接口生成对应的光标绘制命令之后,需要进一步调用显卡渲染生成对应的图像,虚拟机已将自带光标软件的配置信息中光标颜色信息修改为背景颜色,当自带光标软件调用显卡渲染图像时,绘制出的光标图像与背景颜色相同或近似,使得人眼无法识别出服务端光标,达到隐藏服务端光标的目的。
本发明实施例中的虚拟机可以直接修改该配置表中的光标颜色为背景颜色。虚拟机也可以采用HOOK(钩子)技术,在自带光标软件读取光标配置信息的过程中,将自带光标软件读取到的光标配置信息中的光标颜色为背景颜色。具体的HOOK技术原理为现有技术,此处不做赘述。
三、通过修改顶点颜色信息中的透明度的方式实现服务端光标隐藏。
作为一种可能的实施方式,步骤500可包括:
504、虚拟机将光标绘制命令中的光标顶点设置为透明显示,以隐藏服务端光标。
本实施例中可以按照上述步骤202至203中所示的方法获取到绘图命令中的所绘制的图形的顶点信息,当判定该绘图命令为光标绘制命令或包含光标绘制命令时,可以将对应的光标顶点的显示设置为完全透明,具体的可以将顶点信息中RGBA中的Alpha值修改为0,以实现服务端光标隐藏。
可以理解的是,虚拟机无论是否检测到光标绘制指令,虚拟机都可以执行隐藏服务端光标的流程,虚拟机检测光标绘制命令的过程与服务端光标隐藏的过程是相互独立的,因而上述步骤500的细化步骤在图1所示的实施例中的其他步骤的先后顺序此处不做限定。
上述实施例对本发明实施例中的虚拟机中自带光标软件的光标加速方法进行了描述,下面将对虚拟机中自带光标软件的光标加速系统进行描述。请参阅图5,本发明实施例中,一种虚拟机中自带光标软件的光标加速系统的一个实施例可包括:
虚拟机50及客户端60,其中,
虚拟机50读取自带光标软件的光标配置信息,自带光标软件由于自身的逻辑设计而需要自身在虚拟机50中绘制服务端光标;
虚拟机50还用于获取自带光标软件的绘图命令;
虚拟机50还用于根据光标配置信息判断绘图命令中是否存在光标绘制命令,若存在光标绘制命令,则虚拟机50根据光标配置信息生成光标绘制规则并发送给客户端;
客户端60用于根据光标绘制规则绘制客户端光标;
虚拟机50还用于将自带光标软件在虚拟机中绘制的服务端光标隐藏。
本发明实施例中,虚拟机可以读取自带光标软件的光标配置信息,并检测该软件的绘图命令中是否存在光标绘制命令,当存在光标绘制命令时,虚拟机提前将光标配置信息发送给客户端,以使得客户端可以提前在原位置绘制客户端光标,与现有方案相比,在虚拟机中运行自带光标软件时,客户端光标的绘制无需等待虚拟机中光标与其他图元的渲染过程、图像编码过程及客户端解码过程,降低了客户端光标显示的延迟时间。
可选的,作为一种可能的实施方式,当自带光标软件的光标配置信息包括光标颜色信息时,虚拟机50将自带光标软件在虚拟机中绘制的服务端光标隐藏的步骤可包括:
虚拟机50将自带光标软件的配置信息中光标颜色信息修改为预置颜色;
当自带光标软件调用显卡渲染图像时,虚拟机50判断显卡输出的颜色是否与预置颜色相同,若相同,则不输出预置颜色,过滤掉预置颜色的渲染,以隐藏服务端光标。
可选的,作为一种可能的实施方式,当自带光标软件的光标配置信息包括光标颜色信息时,虚拟机50将自带光标软件在虚拟机中绘制的服务端光标隐藏的步骤可包括:
虚拟机50将自带光标软件的配置信息中光标颜色信息修改为与绘图背景颜色相同或近似的颜色,以隐藏服务端光标。
可选的,作为一种可能的实施方式,虚拟机50将自带光标软件在虚拟机中绘制的服务端光标隐藏,包括:
虚拟机50将光标绘制命令中的光标顶点设置为透明显示,以隐藏服务端光标。
可选的,作为一种可能的实施方式,当自带光标软件的光标配置信息包括光标大小信息及光标颜色信息时,虚拟机50根据光标配置信息判断绘图命令中是否存在光标绘制命令的步骤可包括:
虚拟机50判断绘图命令中的绘图类型是否与光标绘图类型相同;
若绘图命令中的绘图类型与光标绘图类型相同,则虚拟机50根据绘图命令中的命令参数解析绘图过程中的顶点信息的位置索引;
虚拟机50根据顶点信息的位置索引提取多个顶点的顶点信息,并根据多个顶点信息计算绘图命令绘制的目标图形的大小;
若目标图形的大小与光标配置信息中的光标大小信息相匹配,则判定绘图命令中存在光标绘制命令。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种虚拟机中自带光标软件的光标加速方法,其特征在于,包括:
虚拟机读取自带光标软件的光标配置信息,所述自带光标软件由于自身的逻辑设计而需要自身在所述虚拟机中绘制服务端光标;
所述虚拟机获取所述自带光标软件的绘图命令;
所述虚拟机根据所述光标配置信息判断所述绘图命令中是否存在光标绘制命令,若存在所述光标绘制命令,则所述虚拟机根据所述光标配置信息生成光标绘制规则并发送给客户端,以使得所述客户端根据所述光标绘制规则绘制客户端光标;
所述虚拟机将所述自带光标软件在虚拟机中绘制的服务端光标隐藏。
2.根据权利要求1所述的方法,其特征在于,
所述自带光标软件的光标配置信息包括光标颜色信息;
所述虚拟机将所述自带光标软件在虚拟机中绘制的服务端光标隐藏,包括:
所述虚拟机将所述自带光标软件的配置信息中光标颜色信息修改为预置颜色;
当所述自带光标软件调用显卡渲染图像时,所述虚拟机判断显卡输出的颜色是否与所述预置颜色相同,若相同,则不输出预置颜色,过滤掉预置颜色的渲染,以隐藏服务端光标。
3.根据权利要求1所述的方法,其特征在于,
所述自带光标软件的光标配置信息包括光标颜色信息;
所述虚拟机将所述自带光标软件在虚拟机中绘制的服务端光标隐藏,包括:
所述虚拟机将所述自带光标软件的配置信息中光标颜色信息修改为与绘图背景颜色相同或近似的颜色,以隐藏服务端光标,其中,与绘图背景颜色近似的颜色是指使得人眼无法识别出服务端光标的颜色。
4.根据权利要求1所述的方法,其特征在于,所述虚拟机将所述自带光标软件在虚拟机中绘制的服务端光标隐藏,包括:
所述虚拟机将所述光标绘制命令中的光标顶点设置为透明显示,以隐藏服务端光标。
5.根据权利要求1至4中任一项所述的方法,其特征在于,
所述自带光标软件的光标配置信息包括光标大小信息及光标颜色信息;
所述虚拟机根据所述光标配置信息判断所述绘图命令中是否存在光标绘制命令,包括:
所述虚拟机判断所述绘图命令中的绘图类型是否与光标绘图类型相同;
若所述绘图命令中的绘图类型与光标绘图类型相同,则所述虚拟机根据所述绘图命令中的命令参数解析绘图过程中的顶点信息的位置索引;
所述虚拟机根据所述顶点信息的位置索引提取多个顶点的顶点信息,并根据多个所述顶点信息计算所述绘图命令绘制的目标图形的大小;
若目标图形的大小与所述光标配置信息中的光标大小信息相匹配,则判定所述绘图命令中存在光标绘制命令。
6.一种虚拟机中自带光标软件的光标加速系统,其特征在于,包括:
虚拟机及客户端,其中,
虚拟机读取自带光标软件的光标配置信息,所述自带光标软件由于自身的逻辑设计而需要自身在所述虚拟机中绘制服务端光标;
所述虚拟机还用于获取所述自带光标软件的绘图命令;
所述虚拟机还用于根据所述光标配置信息判断所述绘图命令中是否存在光标绘制命令,若存在所述光标绘制命令,则所述虚拟机根据所述光标配置信息生成光标绘制规则并发送给所述客户端;
所述客户端用于根据所述光标绘制规则绘制客户端光标;
所述虚拟机还用于将所述自带光标软件在虚拟机中绘制的服务端光标隐藏。
7.根据权利要求6所述的系统,其特征在于,
所述自带光标软件的光标配置信息包括光标颜色信息;
所述虚拟机将所述自带光标软件在虚拟机中绘制的服务端光标隐藏,包括:
所述虚拟机将所述自带光标软件的配置信息中光标颜色信息修改为预置颜色;
当所述自带光标软件调用显卡渲染图像时,所述虚拟机判断显卡输出的颜色是否与所述预置颜色相同,若相同,则不输出预置颜色,过滤掉预置颜色的渲染,以隐藏服务端光标。
8.根据权利要求6所述的系统,其特征在于,
所述自带光标软件的光标配置信息包括光标颜色信息;
所述虚拟机将所述自带光标软件在虚拟机中绘制的服务端光标隐藏,包括:
所述虚拟机将所述自带光标软件的配置信息中光标颜色信息修改为与绘图背景颜色相同或近似的颜色,以隐藏服务端光标,其中,与绘图背景颜色近似的颜色是指使得人眼无法识别出服务端光标的颜色。
9.根据权利要求6所述的系统,其特征在于,所述虚拟机将所述自带光标软件在虚拟机中绘制的服务端光标隐藏,包括:
所述虚拟机将所述光标绘制命令中的光标顶点设置为透明显示,以隐藏服务端光标。
10.根据权利要求6至9中任一项所述的系统,其特征在于,
所述自带光标软件的光标配置信息包括光标大小信息及光标颜色信息;
所述虚拟机根据所述光标配置信息判断所述绘图命令中是否存在光标绘制命令,包括:
所述虚拟机判断所述绘图命令中的绘图类型是否与光标绘图类型相同;
若所述绘图命令中的绘图类型与光标绘图类型相同,则所述虚拟机根据所述绘图命令中的命令参数解析绘图过程中的顶点信息的位置索引;
所述虚拟机根据所述顶点信息的位置索引提取多个顶点的顶点信息,并根据多个所述顶点信息计算所述绘图命令绘制的目标图形的大小;
若目标图形的大小与所述光标配置信息中的光标大小信息相匹配,则判定所述绘图命令中存在光标绘制命令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710861837.9A CN107562325B (zh) | 2017-09-21 | 2017-09-21 | 一种虚拟机中自带光标软件的光标加速方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710861837.9A CN107562325B (zh) | 2017-09-21 | 2017-09-21 | 一种虚拟机中自带光标软件的光标加速方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107562325A CN107562325A (zh) | 2018-01-09 |
CN107562325B true CN107562325B (zh) | 2020-11-13 |
Family
ID=60982578
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710861837.9A Active CN107562325B (zh) | 2017-09-21 | 2017-09-21 | 一种虚拟机中自带光标软件的光标加速方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107562325B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111506938B (zh) * | 2020-04-15 | 2024-02-23 | 深信服科技股份有限公司 | AutoCAD光标优化方法、装置、设备及介质 |
CN113515213A (zh) * | 2021-08-03 | 2021-10-19 | 恒安嘉新(北京)科技股份公司 | 一种光标形状同步方法、远程浏览系统、设备及存储介质 |
CN113849098A (zh) * | 2021-11-29 | 2021-12-28 | 北京蔚领时代科技有限公司 | 一种基于hook的远程设置光标的方法及装置 |
CN115439586B (zh) * | 2022-10-27 | 2023-03-24 | 腾讯科技(深圳)有限公司 | 数据处理方法、设备、存储介质及计算机程序产品 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101685354A (zh) * | 2008-09-26 | 2010-03-31 | 宏正自动科技股份有限公司 | 校准远程计算机光标对客户端计算机鼠标反应的方法及系统 |
CN102929415A (zh) * | 2012-09-17 | 2013-02-13 | 浪潮(北京)电子信息产业有限公司 | 一种本地监控器及其与远程虚拟机鼠标显示同步的方法 |
CN103460168A (zh) * | 2011-01-27 | 2013-12-18 | 韦斯技术有限公司 | 利用可扩展标记语言(XML)配置对具有基于windows的嵌入图像的特定目的客户机进行配置和定制 |
CN103701791A (zh) * | 2013-12-20 | 2014-04-02 | 中电长城网际系统应用有限公司 | 服务器、终端设备、虚拟桌面系统及其操作方法 |
CN103970290A (zh) * | 2013-01-30 | 2014-08-06 | 云联(北京)信息技术有限公司 | 一种基于云游戏的鼠标信号处理装置及方法 |
CN105302511A (zh) * | 2014-05-29 | 2016-02-03 | 北京云端时代科技有限公司 | 一种在vdi架构下提升客户端设备显示性能的方法和装置 |
CN106598295A (zh) * | 2016-12-12 | 2017-04-26 | 广东威创视讯科技股份有限公司 | 一种改善kvm鼠标操作延时感的方法及系统 |
-
2017
- 2017-09-21 CN CN201710861837.9A patent/CN107562325B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101685354A (zh) * | 2008-09-26 | 2010-03-31 | 宏正自动科技股份有限公司 | 校准远程计算机光标对客户端计算机鼠标反应的方法及系统 |
CN103460168A (zh) * | 2011-01-27 | 2013-12-18 | 韦斯技术有限公司 | 利用可扩展标记语言(XML)配置对具有基于windows的嵌入图像的特定目的客户机进行配置和定制 |
CN102929415A (zh) * | 2012-09-17 | 2013-02-13 | 浪潮(北京)电子信息产业有限公司 | 一种本地监控器及其与远程虚拟机鼠标显示同步的方法 |
CN103970290A (zh) * | 2013-01-30 | 2014-08-06 | 云联(北京)信息技术有限公司 | 一种基于云游戏的鼠标信号处理装置及方法 |
CN103701791A (zh) * | 2013-12-20 | 2014-04-02 | 中电长城网际系统应用有限公司 | 服务器、终端设备、虚拟桌面系统及其操作方法 |
CN105302511A (zh) * | 2014-05-29 | 2016-02-03 | 北京云端时代科技有限公司 | 一种在vdi架构下提升客户端设备显示性能的方法和装置 |
CN106598295A (zh) * | 2016-12-12 | 2017-04-26 | 广东威创视讯科技股份有限公司 | 一种改善kvm鼠标操作延时感的方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN107562325A (zh) | 2018-01-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107562325B (zh) | 一种虚拟机中自带光标软件的光标加速方法及系统 | |
US10733691B2 (en) | Fragment shaders perform vertex shader computations | |
JP6778485B2 (ja) | レンダリング方法及びその装置 | |
US8154544B1 (en) | User specified contact deformations for computer graphics | |
US9311749B2 (en) | Method for forming an optimized polygon based shell mesh | |
KR101257849B1 (ko) | 3차원 그래픽 객체 렌더링 방법 및 장치, 이를 위한 렌더링객체 최소화 방법 및 장치 | |
JP6626691B2 (ja) | テクスチャ処理方法及びその装置 | |
KR20140098133A (ko) | 타일 기반 렌더링에서의 테셀레이션 | |
US7038679B2 (en) | Three dimensional rendering including motion sorting | |
JP2010514310A (ja) | 画像の圧縮及び/又は復元 | |
KR102442488B1 (ko) | 그래픽 처리 시스템 및 그래픽 프로세서 | |
CN106447756B (zh) | 用于生成用户定制的计算机生成动画的方法和系统 | |
EP3050605B1 (en) | A method for event detection in real-time graphic applications | |
KR101670958B1 (ko) | 이기종 멀티코어 환경에서의 데이터 처리 방법 및 장치 | |
CN114092675A (zh) | 图像显示方法、图像显示装置、电子设备及存储介质 | |
US20150145858A1 (en) | Method and apparatus to process current command using previous command information | |
CN111260767B (zh) | 游戏中的渲染方法、渲染装置、电子设备及可读存储介质 | |
CN110599576A (zh) | 文件渲染系统、方法及电子设备 | |
US10062140B2 (en) | Graphics processing systems | |
WO2022269077A1 (en) | Volumetric data processing using a flat file format | |
US8228335B1 (en) | Snapsheet animation visualization | |
KR102147357B1 (ko) | 커맨드들을 관리하는 장치 및 방법 | |
US20160267701A1 (en) | Apparatus and method of rendering frame by adjusting processing sequence of draw commands | |
WO2022135050A1 (zh) | 渲染方法、设备以及系统 | |
CN116980680A (zh) | 电子铭牌显示方法、终端设备及计算机存储介质 |
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 |