一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

消息渲染方法、装置、系统、设备及存储介质与流程

2022-02-20 05:10:22 来源:中国专利 TAG:


1.本技术涉及计算机技术领域,尤其涉及一种消息渲染方法、装置、系统、设备及存储介质。


背景技术:

2.随着计算机技术和互联网技术的迅速发展,即时通讯应用(application,app)如今已成为人们日常工作和生活中必不可少的通信工具。
3.目前在个人计算机(personal computer,pc)端运行的即时通讯app,普遍利用中央处理器(central processing unit,cpu)进行会话界面的渲染。以基于mac os系统运行的即时通讯app为例,即时通讯app会话中的消息显示通常采用coretext绘制方案,即使用cpu渲染显示会话消息中的图片、文本、段落样式等。
4.然而,当所需渲染显示的消息中包含数据量较大的信息,例如包含较大的图片信息时,使用cpu渲染容易出现明显的性能瓶颈,严重时甚至可能导致会话界面出现卡顿的情况。


技术实现要素:

5.本技术实施例提供了一种消息渲染方法、装置、系统、设备及存储介质,能够有效地提高pc端对于即时通讯app会话界面上消息的渲染性能。
6.有鉴于此,本技术第一方面提供了一种消息渲染方法,应用于图形处理器(graphics processing unit,gpu),所述方法包括:
7.接收中央处理器cpu发送的第一绘制区域;所述第一绘制区域对应于引起会话界面发生变化的目标更新消息;
8.当根据所述第一绘制区域确定所述目标更新消息对应的目标图层不需要离屏绘制时,拉取所述cpu当前渲染的基础视图中所述目标更新消息对应的第二绘制区域;
9.判断所述第一绘制区域与所述第二绘制区域是否匹配,若是,则生成所述目标图层;
10.将所述目标图层覆盖在所述基础视图上显示。
11.本技术第二方面提供了一种消息渲染装置,所述装置包括:
12.接收模块,用于接收中央处理器cpu发送的第一绘制区域;所述第一绘制区域对应于引起会话界面发生变化的目标更新消息;
13.拉取模块,用于当根据所述第一绘制区域确定所述目标更新消息对应的目标图层不需要离屏绘制时,拉取所述cpu当前渲染的基础视图中所述目标更新消息对应的第二绘制区域;
14.图层生成模块,用于判断所述第一绘制区域与所述第二绘制区域是否匹配,若是,则生成所述目标图层;
15.显示模块,用于将所述目标图层覆盖在所述基础视图上显示。
16.本技术第三方面提供了一种消息渲染系统,所述系统包括gpu和cpu;
17.所述cpu,用于向所述gpu发送第一绘制区域,所述第一绘制区域对应于引起会话界面发生变化的目标更新消息;渲染显示基础视图;
18.所述gpu,用于执行上述第一方面所述的消息渲染方法的步骤。
19.本技术第四方面提供了一种设备,所述设备包括处理器以及存储器:
20.所述存储器用于存储计算机程序;
21.所述处理器用于根据所述计算机程序,执行如上述第一方面所述的消息渲染方法的步骤。
22.本技术第五方面提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,所述计算机程序用于执行上述第一方面所述的消息渲染方法的步骤。
23.本技术第六方面提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行前述各个实施例所述的一种消息渲染方法中的任意一种实施方式。
24.从以上技术方案可以看出,本技术实施例具有以下优点:
25.本技术实施例提供了一种应用于gpu的消息渲染方法,在该方法中,gpu接收cpu发送的第一绘制区域,该第一绘制区域与引起会话界面发生变化的目标更新消息相对应;然后,根据该第一绘制区域判断目标更新消息对应的目标图层是否需要离屏绘制,若否,则进一步拉取cpu当前渲染的基础视图中目标更新消息对应的第二绘制区域;进而,判断此前接收的第一绘制区域与该第二绘制区域是否相匹配,若二者相匹配,则生成目标图层,并在cpu渲染的基础视图上覆盖该目标图层。上述方法在使用cpu渲染即时通讯app会话界面的场景下,补充使用gpu渲染会话界面中的目标更新消息,由于gpu主要采用硬件的渲染方式,具有更好的图像处理性能,因此,能够在整体上提高会话消息的渲染性能,避免发生会话界面出现卡顿的情况。
附图说明
26.图1为本技术实施例提供的消息渲染系统的结构示意图;
27.图2为本技术实施例提供的一种消息渲染方法的流程示意图;
28.图3为本技术实施例提供的另一种消息渲染方法的流程示意图;
29.图4为本技术实施例提供的第一种消息渲染装置的结构示意图;
30.图5为本技术实施例提供的第二种消息渲染装置的结构示意图;
31.图6为本技术实施例提供的第三种消息渲染装置的结构示意图;
32.图7为本技术实施例提供的第四种消息渲染装置的结构示意图;
33.图8为本技术实施例提供的第五种消息渲染装置的结构示意图;
34.图9为本技术实施例提供的终端设备的结构示意图。
具体实施方式
35.为了使本技术领域的人员更好地理解本技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本
申请一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
36.本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
37.相关技术中,对于pc端运行的即时通讯app中的会话界面以及会话界面上的各类消息,通常只利用cpu进行渲染。当所需渲染的消息中包含数据量较大的信息(如图片信息、视频信息等)时,使用cpu渲染将出现明显的性能瓶颈,甚至可能导致发生会话界面卡顿的情况。
38.针对上述相关技术存在的问题,本技术实施例提供的一种消息渲染方法,该方法可以调用gpu辅助渲染会话界面中的消息,从而提高pc端对于即时通讯app会话界面的整体渲染性能。
39.具体的,在本技术实施例提供的消息渲染方法中,gpu先接收cpu发送的第一绘制区域,该第一绘制区域对应于引起会话界面发生变化的目标更新消息;当根据该第一绘制区域确定该目标更新消息对应的目标图层不需要离屏绘制时,拉取cpu当前渲染的基础视图中该目标更新消息对应的第二绘制区域;进而,判断此前接收的第一绘制区域与该第二绘制区域是否匹配,若二者匹配,则生成目标消息对应的目标图层,并在cpu渲染的基础视图上覆盖该目标图层。
40.相比相关技术中仅利用cpu渲染会话界面以及会话界面中的消息的实现方式,本技术实施例提供的方法在使用cpu渲染即时通讯app会话界面的场景下,补充使用gpu渲染会话界面中的目标更新消息,由于gpu主要采用硬件的渲染方式,具有更优的图像处理性能,因此,能够在整体上提高会话消息的渲染性能。并且,为了确保将gpu渲染的与目标更新消息对应的目标图层准确地覆盖到cpu渲染的基础视图上,本技术实施例提供的方法多次获取目标更新消息在cpu渲染的基础视图中的绘制区域,基于此来确定是否在基础视图上覆盖目标图层,以及目标图层在基础视图上的覆盖位置。
41.应理解,本技术实施例提供的消息渲染方法可以应用于具备图像渲染功能的pc设备。
42.为了便于理解本技术实施例提供的消息渲染方法,下面先结合示例性的应用场景,对本技术实施例提供的消息渲染方法所适用的消息渲染系统进行介绍。
43.参见图1,图1为本技术实施例提供的消息渲染系统的工作原理示意图。如图1所示,该消息渲染系统部署在pc设备100中,该消息渲染系统包括cpu110和gpu120。其中,cpu110用于将与引起会话界面发生变化的目标更新消息对应的第一绘制区域传递给gpu120,并且依据pc设备100的屏幕刷新频率不断地渲染显示会话界面对应的基础视图,基础视图中目标更新消息对应的绘制区域由gpu120渲染;gpu120用于执行本技术实施例提供的消息渲染方法,渲染目标更新消息对应的目标图层,并在确定目标更新消息位于基础视
图的显示范围内时,将目标更新消息对应的目标图层覆盖到cpu110渲染的基础视图中目标更新消息对应的绘制区域。
44.需要说明的是,cpu110进行图片渲染主要是采用软件的渲染方式,通过将图片的像素点采集出来,再依据pc设备100屏幕的刷新频率,将所渲染的图片输出到屏幕上,其原理是将绘制区域(rect)链式传递至具体需要绘制的视图(view)上。gpu120进行图片渲染主要是采用硬件的渲染方式,利用显卡采集图片和形状,运行变换、应用纹理和混合,然后将图层输出到屏幕上。
45.在实际应用中,即时通讯app的会话界面因接收到目标更新消息而发生变化时,将触发cpu110进行会话界面的绘制,此时cpu110将生成与目标更新消息相对应的第一绘制区域,该第一绘制区域为该目标更新消息在cpu110当前所要渲染的会话界面视图中的部署区域,cpu110将该第一绘制区域传递给gpu120。
46.gpu120接收到cpu110传递的第一绘制区域后,可以根据该第一绘制区域判断目标更新消息对应的目标图像是否需要离屏绘制;具体的,gpu120可以判断该第一绘制区域是否所属于会话界面视图的显示区域,若是,则确定该目标更新消息对应的目标图层不需要离屏绘制,若否,则确定该目标更新消息对应的目标图层需要离屏绘制。
47.当gpu120根据第一绘制区域确定目标更新消息对应的目标图层不需要离屏绘制时,gpu120可以从cpu110处拉取cpu110当前渲染的基础视图中目标更新消息对应的第二绘制区域。应理解,cpu110的图片渲染是离散的,cpu110需要按照屏幕的刷新频率不断地渲染会话界面视图,在gpu120确定目标更新消息对应的目标图层不需要离屏绘制的情况下,gpu120需要再次从cpu110处拉取其当前渲染的会话界面视图中该目标更新消息对应的第二绘制区域,以核对目标更新消息对应的显示位置是否发生变化,以及目标更新消息的显示位置是否仍处于会话界面视图的显示区域。
48.gpu120拉取到在cpu110当前渲染的基础视图中目标更新消息对应的第二绘制区域后,gpu120可以判断此前接收的第一绘制区域与该第二绘制区域是否匹配,若二者匹配,则说明目标更新消息在会话界面视图中的显示位置没有发生变化,目标更新消息仍处于显示区域内,则gpu120可以相应地生成该目标更新消息对应的目标图层,并基于第二绘制区域在cpu110渲染的基础视图中覆盖该目标更新消息对应的目标图层,如此,在即时通讯app的会话界面上显示该目标更新消息。
49.需要说明的是,在实际应用中,上述目标更新消息中通常包括数据量较大的信息,如图片信息、视频信息等等,如此,避免对包含有数据量较大的信息的消息进行渲染时出现性能瓶颈的情况发生,避免发生会话界面卡顿的情况。
50.下面通过实施例对本技术提供的消息渲染方法进行详细介绍。
51.参见图2,图2为本技术实施例提供的消息渲染方法的流程示意图,下述实施例以gpu作为执行主体。如图2所示,该消息渲染方法包括以下步骤:
52.步骤201:接收cpu发送的第一绘制区域;所述第一绘制区域对应于引起会话界面发生变化的目标更新消息。
53.在实际应用中,pc设备上运行的即时通讯app接收到目标更新消息后,将会引起该即时通讯app的会话界面发生变化,即时通讯app会话界面的变化会触发cpu绘制渲染变化后的会话界面视图,此时,cpu会自动生成与引起会话界面变化的目标更新消息相对应的第
一绘制区域,该第一绘制区域是目标更新消息在cpu当前所要渲染的会话界面视图中的部署区域。进而,cpu将该第一绘制区域传递给gpu,以使gpu基于该第一绘制区域确定其对目标更新消息对应的目标图层应当采用的渲染方式。
54.需要说明的是,cpu的图片渲染是离散的,cpu需要按照pc设备的屏幕刷新频率不断地渲染所显示的会话界面视图,在每次渲染的会话界面视图的过程中,cpu都需要针对目标更新消息确定其在此次渲染的会话界面视图中的绘制区域,并将该目标更新消息对应的绘制区域一直向下传递至自身渲染的会话界面视图上,即在其渲染的会话界面视图上保留目标更新消息对应的绘制区域,不在该绘制区域内显示任何内容。
55.需要说明的是,考虑到cpu渲染数据量较大的消息(如图片消息、视频消息等)时比较容易出现性能瓶颈,因此,cpu可以在确定所接收的目标更新消息为图片或视频类型的消息时,确定目标更新消息对应的第一绘制区域,并将该第一绘制区域传递给gpu,在确定所接收的目标更新消息为文本类型的消息时,cpu可以自主渲染此类型的消息,无需调用gpu对此类型的消息进行渲染。
56.示例性的,上述第一绘制区域可以表现为(x,y,w,h),其中,x和y可以分别表示第一绘制区域某个顶点的显示位置的横坐标和纵坐标,也可以分别表示第一绘制区域的中心点的横坐标和纵坐标。w表示第一绘制区域的宽度,h表示第一绘制区域的高度。
57.步骤202:当根据所述第一绘制区域确定所述目标更新消息对应的目标图层不需要离屏绘制时,拉取所述cpu当前渲染的基础视图中所述目标更新消息对应的第二绘制区域。
58.gpu接收到cpu传递的与目标更新消息对应的第一绘制区域后,可以根据该第一绘制区域判断目标更新消息对应的目标图层是否需要离屏绘制,即gpu可以根据该第一绘制区域,判断目标更新消息在cpu当前渲染的会话界面视图中是否处于的显示区域内,若是,则确定目标更新消息对应的目标图层不需要离屏渲染,若否,则确定目标更新消息对应的目标图层需要离屏渲染。
59.需要说明的是,cpu渲染的会话界面视图通常包括显示区域和隐藏区域,其中,显示区域为用户可直接看到的会话界面,隐藏区域为用户无法直接看到的会话界面,但是用户可以通过控制会话界面滚动来查看隐藏区域。例如,假设用户a与用户b的会话界面内包括50条消息,其中,15条消息位于会话界面视图的显示区域,35条消息位于会话界面视图的隐藏区域,用户可以直接看到位于显示区域内的15条消息,用户可以通过控制会话界面滚动来查看位于隐藏区域的35条消息。
60.gpu根据第一绘制区域判断目标更新消息对应的目标图层是否需要离屏绘制时,可以根据第一绘制区域与会话界面视图的显示区域之间的位置关系,来判断目标更新消息是否部署在会话界面视图的显示区域内。示例的,gpu可以基于第一绘制区域在屏幕纵向上的分布位置以及会话界面视图的显示区域在屏幕纵向上的分布位置,来判断第一绘制区域是否位于会话界面视图的显示区域内,若是,则确定目标更新消息对应的目标图层不需要离屏绘制,若否,则确定目标更新消息对应的目标图层需要离屏绘制。
61.当gpu确定目标更新消息对应的目标图层不需要离屏绘制时,gpu可以从cpu处拉取该cpu当前渲染的会话界面视图(又称基础视图)中目标更新消息对应的第二绘制区域,以便之后基于该第二绘制区域核对目标更新消息的绘制区域当前是否发生改变,以及目标
更新消息是否仍在会话界面视图的显示区域内。
62.正如上文所介绍的,由于cpu的图片渲染是离散的,cpu通常会按照屏幕的刷新频率不断地渲染会话界面视图,因此,即使gpu根据cpu此前传递的第一绘制区域确定目标更新消息对应的目标图层不需要离屏绘制,gpu在渲染该目标图层之前仍需再次拉取cpu当前正在渲染的会话界面视图中目标更新消息对应的第二绘制区域,以在渲染目标图层之前再次核对该目标更新消息是否仍显示在会话界面视图的显示区域内。
63.当gpu确定目标更新消息对应的目标图层需要离屏绘制时,gpu生成该目标更新消息对应的目标图层,同时将该目标图层的状态标记为不显示,进而,将该目标图层存储至图层缓存池中。即,gpu确定目标更新消息不在会话界面视图的显示区域内时,仍会生成该目标更新消息对应的目标图层,但是会将所生成的目标图层的状态标记为不显示,并将该目标图层存储至图层缓存池中。
64.步骤203:判断所述第一绘制区域与所述第二绘制区域是否匹配,若是,则生成所述目标图层。
65.gpu在根据第一绘制区域确定目标更新消息对应的目标图层不需要离屏绘制,进一步从cpu处拉取该cpu当前渲染的会话界面视图中该目标更新消息对应的第二绘制区域;gpu拉取到该第二绘制区域后,判断此前cpu传递的第一绘制区域与该第二绘制区域是否匹配,即判断第一绘制区域与第二绘制区域是否为同一区域,若是,则说明目标更新消息在cpu渲染的会话界面视图中的显示位置没有发生改变,仍处于会话界面视图的显示区域内,此时gpu可以生成该目标更新消息对应的目标图层。
66.反之,若gpu判断第一绘制区域与第二绘制区域不匹配,则需要进一步重新根据该第二绘制区域判断目标更新消息对应的目标图层是否需要离屏绘制;若确定目标图层需要离屏绘制,则生成该目标图层,并将该目标图层的状态标记为不显示,进而,将该目标图层存储至图层缓存池中;若确定目标图层不需要离屏绘制,则生成该目标图层。
67.在一些情况下,随着用户对于即时通讯app的操作,cpu渲染的会话界面视图可能发生改变,因此,gpu在渲染生成目标更新消息对应的目标图层之前,还需要再次从cpu处拉取其当前渲染的会话界面视图中该目标更新消息对应的绘制区域,以确定该目标更新消息对应的目标图层当前是否仍在会话界面视图的显示区域内,若是,则生成该目标更新消息对应的目标图层,若否,则在生成该目标更新消息对应的目标图层后,将该目标图层的状态标记为不显示,并将该目标图层存储至图层缓存池中。
68.需要说明的是,考虑到图层缓存池中存储的图层会占用gpu的资源,在图层缓存池中存储有较多图层的情况下,gpu的处理性能可能会受到影响,因此,本技术实施例提供的方法会在将状态被标记为不显示的图层存储至图层缓存池后,对该图层缓存池中存储的图层进行回收处理。例如,在根据第一绘制区域确定目标图层需要离屏绘制的情况下,gpu生成状态标记为不显示的目标图层,并将该目标图层存储至图层缓存池后,可以对该图层缓存池中存储的图层进行回收处理;又例如,在确定第一绘制区域与第二绘制区域不匹配,且根据第二绘制区域确定目标图层需要离屏绘制的情况下,gpu生成状态标记为不显示的目标图层,并将该目标图层存储至图层缓存池后,可以对该图层缓存池中存储的图层进行回收处理。
69.具体的,gpu可以拉取cpu当前渲染的会话界面视图(即基础视图)中各条消息各自
对应的绘制区域,并根据所拉取的基础视图中各条消息各自对应的绘制区域,更新图层缓存池中各图层各自对应的绘制区域;然后,根据该图层缓存池中各图层各自对应的绘制区域,对该图层缓存池中的图层进行回收处理。
70.在一些实施例中,gpu可以通过以下方式对图层缓存池中的图层进行回收处理:针对图层缓存池中的每个图层,判断该图层对应的绘制区域是否在目标范围内,若是,则保留该图层,若否,则回收该图层,此处的目标范围是根据显示设备的屏幕尺寸设定的。
71.示例性的,由于cpu渲染的会话界面视图的高度通常高于pc设备的屏幕高度,因此,本技术可以将pc设备的屏幕高度作为目标范围的设置基准,例如,可以将目标范围设置为pc设备的屏幕高度范围。对图层缓存池中的图层进行回收处理时,gpu可以针对图层缓存池中存储的每个图层,判断该图层对应的绘制区域是否在屏幕高度范围内,若是,则保留该图层继续在图层缓存池中存储,若否,则回收该图层,释放该图层所占用的gpu资源。
72.应理解,在实际应用中,gpu除了可以采用上述方式对图层缓存池中的图层进行回收处理外,也可以采用其它方式对图层缓存池中的图层进行回收处理,本技术在此不对图层的回收方式做任何限定。
73.步骤204:将所述目标图层覆盖在所述基础视图上显示。
74.gpu确定第一绘制区域与第二绘制区域相匹配,并生成目标更新消息对应的目标图层后,可以根据第二绘制区域或第一绘制区域,将所生成的目标图层覆盖在cpu渲染的基础视图(即会话界面视图)上显示。
75.在gpu确定第一绘制区域与第二绘制区域不匹配,但根据第二绘制区域确定目标更新消息对应的目标图层不需要离屏绘制的情况下,gpu仍会生成该目标更新消息对应的目标图层,并更新该目标图层对应的绘制区域为第二绘制区域,在这种情况下,gpu可以根据该第二绘制区域,将所生成的目标图层覆盖在cpu渲染的基础视图上显示。
76.在一些实施例中,gpu生成可直接显示在基础视图的显示区域内的目标图层后,可以先将该目标图层存储至图层缓存池中,然后从该图层缓存池中提取该目标图层,并且再次拉取cpu当前渲染的会话界面视图中该目标更新消息对应的第三绘制区域,基于该第三绘制区域在cpu当前渲染的会话界面视图上覆盖该目标图层。
77.需要说明的是,当pc端的即时通讯app需要立即显示目标消息(该目标消息区别于上文中的目标更新消息,该目标消息既可以是即时通讯app当前接收的新消息,也可以是即时通讯app先前接收的历史消息)时,gpu可以在图层缓存池中查找该目标消息对应的图层;若能够在图层缓存池中查找到该目标消息对应的图层,则可以直接在cpu当前渲染的会话界面视图上覆盖该目标消息对应的图层;若不能在图层缓存池中查找到该目标消息对应的图层,则可以从图层缓存池中调取状态被标记为不显示的图层作为备用图层,进而调用该备用图层承载该目标消息,在cpu当前渲染的会话界面视图上覆盖该承载有目标消息的备用图层。
78.即,在需要立即显示某条目标消息的情况下,gpu可以在查找图层缓存池中是否存储有该目标消息对应的图层,若能够查找到,则直接在cpu当前渲染的会话界面视图上覆盖所查找到的目标消息对应的图层;若不能够查找到,则从图层缓存池中状态为不显示的图层中挑选一个备用图层,利用该备用图层承载目标消息,进而在cpu当前渲染的会话界面视图上覆盖该备用图层。如此,实现目标消息的快速显示。
79.相比相关技术中仅利用cpu渲染会话界面以及会话界面中的消息的实现方式,本技术实施例提供的方法在使用cpu渲染即时通讯app会话界面的场景下,补充使用gpu渲染会话界面中的目标更新消息,由于gpu主要采用硬件的渲染方式,具有更优的图像处理性能,因此,能够在整体上提高会话消息的渲染性能。并且,为了确保将gpu渲染的与目标更新消息对应的目标图层准确地覆盖到cpu渲染的基础视图上,本技术实施例提供的方法多次获取目标更新消息在cpu渲染的基础视图中的绘制区域,基于此来确定是否在基础视图上覆盖目标图层,以及目标图层在基础视图上的覆盖位置。
80.为了便于进一步理解本技术实施例提供的消息渲染方法,下面结合图3所示的流程图,对本技术实施例提供的消息渲染方法做整体示例性介绍。
81.如图3所示,其中虚线部分为cpu的绘制时机,当即时通讯app的会话界面因接收到图片消息而发生变化时,会触发cpu渲染该会话界面视图view,此时cpu默认生成该图片消息对应的第一绘制区域(第一rect),并将该第一rect传递至gpu,该第一rect也会一直往下传递至cpu当前渲染的会话界面view。
82.gpu接收到第一rect后,根据该第一rect判断该图片消息对应的图层layer是否需要离屏渲染。即判断该第一rect是否在会话界面view的显示区域内,若是,则确定该layer不需要离屏渲染,若否,则确定该layer需要离屏渲染。
83.当根据第一rect判断该图片消息对应的layer需要离屏渲染时,gpu生成该图片消息对应的layer,将该layer的状态标记为不显示,并将该layer存储至layer缓存池中。
84.当根据该第一rect判断该图片消息对应的layer不需要离屏渲染时,gpu从cpu处拉取其当前渲染的会话界面view中该图片消息对应的第二rect。进而,判断该第二rect与第一rect是否相匹配;若二者相匹配,则直接生成该图片消息对应的layer,并将该layer存储至layer缓存池中;若二者不匹配,则gpu需要再次根据该第二rect判断该图片消息对应的layer是否需要离屏渲染,若是,则生成该图片消息对应的layer,并将该layer的状态标记为不显示,将该layer存储至layer缓存池中,若否,生成该图片消息对应的layer,并将该layer存储至layer缓存池中。
85.需要说明的是,gpu将状态标记为不显示的layer存储至layer缓存池中后,会触发对layer缓存池中存储的layer进行回收处理,以控制layer缓存池中存储的状态为不显示的layer最多存在n个,此处的n可以是pc设备的屏幕高度下可容纳的layer平铺的最大数目。
86.当一次cpu绘制触发结束后,即当cpu完成会话界面view的绘制后,gpu可以从layer缓存池中取出状态并非不显示的layer,将这些layer覆盖在cpu渲染的会话界面view上。
87.针对上文描述的消息渲染方法,本技术还提供了对应的消息渲染装置,以使上述消息渲染方法在实际中得以应用和实现。
88.参见图4,图4是与上文图2所示的消息渲染方法对应的一种消息渲染装置400的结构示意图,该消息渲染装置400包括:
89.接收模块401,用于接收中央处理器cpu发送的第一绘制区域;所述第一绘制区域对应于引起会话界面发生变化的目标更新消息;
90.拉取模块402,用于当根据所述第一绘制区域确定所述目标更新消息对应的目标
图层不需要离屏绘制时,拉取所述cpu当前渲染的基础视图中所述目标更新消息对应的第二绘制区域;
91.图层生成模块403,用于判断所述第一绘制区域与所述第二绘制区域是否匹配,若是,则生成所述目标图层;
92.显示模块404,用于将所述目标图层覆盖在所述基础视图上显示。
93.可选的,在图4所示的消息渲染装置的基础上,参见图5,图5为本技术实施例提供的另一种消息渲染装置500的结构示意图。
94.其中,所述图层生成模块403,还用于当根据所述第一绘制区域确定所述目标更新消息对应的目标图层需要离屏绘制时,生成所述目标图层,并将所述目标图层的状态标记为不显示;
95.该装置还包括:第一存储模块501,用于将所述目标图层存储至图层缓存池中。
96.可选的,在图4所示的消息渲染装置的基础上,参见图6,图6为本技术实施例提供的另一种消息渲染装置600的结构示意图。
97.其中,所述图层生成模块403,还用于当判断所述第一绘制区域与所述第二绘制区域不匹配时,根据所述第二绘制区域判断所述目标更新消息对应的目标图层是否需要离屏绘制;若是,则生成所述目标图层,将所述目标图层的状态标记为不显示;若否,则生成所述目标图层;
98.该装置还包括,第二存储模块601,用于将所述目标图层存储至图层缓存池中;
99.其中,所述显示模块404,还用于在根据所述第二绘制区域判断所述目标更新消息对应的目标图层不需要离屏绘制时,根据所述第二绘制区域在所述基础视图上覆盖所述目标图层。
100.可选的,在图5或图6所示的消息渲染装置的基础上,参见图7,图7为本技术实施例提供的另一种消息渲染装置700的结构示意图。如图7所示,该装置还包括:
101.绘制区域更新模块701,用于拉取所述基础视图中各条消息各自对应的绘制区域;根据所述基础视图中各条消息各自对应的绘制区域,更新所述图层缓存池中各图层各自对应的绘制区域;
102.回收模块702,用于根据所述图层缓存池中各图层各自对应的绘制区域,对所述图层缓存池中的图层进行回收处理。
103.可选的,在图7所示的消息渲染装置的基础上,所述回收模块702具体用于:
104.针对所述图层缓存池中的每个图层,判断该图层对应的绘制区域是否在目标范围内,若否,则回收该图层;所述目标范围是根据显示设备的屏幕尺寸确定的。
105.可选的,在图4所示的消息渲染装置的基础上,参见图8,图8为本技术实施例提供的另一种消息渲染装置800的结构示意图。如图8所示,该装置还包括:图层调用模块801;
106.所述图层调用模块801,用于当需要显示目标消息时,在图层缓存池中查找所述目标消息对应的图层;若在所述图层缓存池中查找到所述目标消息对应的图层,则在所述cpu当前渲染的会话界面视图上覆盖所述目标消息对应的图层;若未在所述图层缓存池中查找到所述目标消息对应的图层,则从所述图层缓存池中调取状态被标记为不显示的备用图层,调用所述备用图层承载所述目标消息,在所述cpu当前渲染的会话界面视图上覆盖所述备用图层。
107.本技术实施例提供的消息渲染装置,在使用cpu渲染即时通讯app会话界面的场景下,补充使用gpu渲染会话界面中的目标更新消息,由于gpu主要采用硬件的渲染方式,具有更优的图像处理性能,因此,能够在整体上提高会话消息的渲染性能。并且,为了确保将gpu渲染的与目标更新消息对应的目标图层准确地覆盖到cpu渲染的基础视图上,本技术实施例提供的装置多次获取目标更新消息在cpu渲染的基础视图中的绘制区域,基于此来确定是否在基础视图上覆盖目标图层,以及目标图层在基础视图上的覆盖位置。
108.本技术实施例还提供了一种用于渲染消息的设备,该设备具体可以是终端设备,下面将从硬件实体化的角度对本技术实施例提供的终端设备进行介绍。
109.参见图9,图9是本技术实施例提供的终端设备的结构示意图。如图9所示,为了便于说明,仅示出了与本技术实施例相关的部分,具体技术细节未揭示的,请参照本技术实施例方法部分。以终端为计算机为例:
110.图9示出的是与本技术实施例提供的终端相关的计算机的部分结构的框图。参考图9,计算机包括:射频(英文全称:radio frequency,英文缩写:rf)电路910、存储器920、输入单元930、显示单元940、传感器950、音频电路960、无线保真(英文全称:wireless fidelity,英文缩写:wifi)模块970、处理器980、以及电源990等部件,其中,处理器980具体包括gpu和cpu。本领域技术人员可以理解,图9中示出的计算机结构并不构成对计算机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
111.存储器920可用于存储软件程序以及模块,处理器980通过运行存储在存储器920的软件程序以及模块,从而执行计算机的各种功能应用以及数据处理。存储器920可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据计算机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器920可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
112.处理器980是计算机的控制中心,利用各种接口和线路连接整个计算机的各个部分,通过运行或执行存储在存储器920内的软件程序和/或模块,以及调用存储在存储器920内的数据,执行计算机的各种功能和处理数据,从而对计算机进行整体监控。可选的,处理器980可包括一个或多个处理单元;优选的,处理器980可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器980中。
113.在本技术实施例中,该终端所包括的处理器980中的gpu还具有以下功能:
114.接收cpu发送的第一绘制区域;所述第一绘制区域对应于引起会话界面发生变化的目标更新消息;
115.当根据所述第一绘制区域确定所述目标更新消息对应的目标图层不需要离屏绘制时,拉取所述cpu当前渲染的基础视图中所述目标更新消息对应的第二绘制区域;
116.判断所述第一绘制区域与所述第二绘制区域是否匹配,若是,则生成所述目标图层;
117.将所述目标图层覆盖在所述基础视图上显示。
118.可选的,所述处理器980还用于执行本技术实施例提供的消息渲染方法的任意一
种实现方式的步骤。
119.本技术实施例还提供一种计算机可读存储介质,用于存储计算机程序,该计算机程序用于执行前述各个实施例所述的一种消息渲染方法中的任意一种实施方式。
120.本技术实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行前述各个实施例所述的一种消息渲染方法中的任意一种实施方式。
121.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
122.在本技术所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
123.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
124.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
125.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(英文全称:read-only memory,英文缩写:rom)、随机存取存储器(英文全称:random access memory,英文缩写:ram)、磁碟或者光盘等各种可以存储计算机程序的介质。
126.应当理解,在本技术中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“a和/或b”可以表示:只存在a,只存在b以及同时存在a和b三种情况,其中a,b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
127.以上所述,以上实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前
述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献