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

一种显示渲染方法、装置、电子设备和可读存储介质与流程

2022-05-26 23:30:26 来源:中国专利 TAG:


1.本公开涉及计算机领域,尤其涉及一种显示渲染方法、装置、电子设备和可读存储介质。


背景技术:

2.在对电子设备的显示界面进行更新时,通常是基于画布(canvas)对显示界面进行重绘刷新,然而电子设备显示的内容可能包括较复杂的对象,例如复杂的图片或笔迹等,而对于这些复杂的对象的重绘需要耗费较长的时间,这导致大尺寸或高分辨率电子设备的显示界面进行更新时,需要耗费较长的时间,可能导致显示界面出现闪烁或卡顿等,影响显示效果。


技术实现要素:

3.在其中一些方面,本公开实施例提供了一种显示渲染方法,应用于电子设备,所述方法包括以下步骤:
4.在画布数据发生变化的情况下,确定位于可视区域内的目标元素;
5.在重绘线程中,生成重绘画布,并在所述重绘画布上绘制所述目标元素;
6.在界面渲染线程中,将所述重绘画布叠加绘制到界面渲染画布,并根据所述界面渲染画布刷新显示界面。
7.在一些实施例中,所述生成重绘画布,并在所述重绘画布上绘制所述目标元素,包括:
8.建立多个重绘子线程,并在所述重绘子线程中生成重绘子画布,其中,所述重绘子线程和所述重绘子画布一一对应;
9.将所述目标元素划分至所述重绘子画布,并将各所述重绘子画布对应的目标元素绘制到相对应的重绘子画布;
10.将所述多个重绘子画布叠加至所述重绘画布。
11.在一些实施例中,所述多个重绘子线程是并行的。
12.在一些实施例中,所述重绘子画布的数量是根据所述电子设备的运算能力确定的。
13.在一些实施例中,所述重绘线程和所述界面渲染线程是串行的。
14.在一些实施例中,所述生成重绘画布,并在所述重绘画布上绘制所述目标元素,还包括:
15.检测所述目标元素的数量;
16.若所述目标元素的数量大于预设数量阈值,则执行建立多个重绘子线程的步骤;
17.若所述目标元素的数量不大于所述预设数量阈值,则在所述重绘画布上绘制所述目标元素。
18.在一些实施例中,所述可视区域为画布与所述电子设备的显示界面对应的区域,
所述目标元素为所述画布数据中位于所述可视区域的元素。
19.在一些实施例中,所述目标元素包括在所述电子设备上的书写操作对应的笔迹对应的元素。
20.在一些实施例中,所述电子设备为智能交互平板。
21.在其中一些方面,本公开实施例提供了一种显示渲染装置,应用于电子设备,包括:
22.目标元素获取模块,用于在画布数据发生变化的情况下,确定位于可视区域内的目标元素;
23.重绘画布生成模块,用于生成重绘画布,并在所述重绘画布上绘制所述目标元素;
24.界面刷新模块,用于在界面渲染线程中,将所述重绘画布叠加绘制到界面渲染画布,并根据所述界面渲染画布刷新显示界面。
25.在其中一些方面,本公开实施例提供了一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的程序;
26.所述处理器,用于读取存储器中的程序实现如第一方面中任一项所述的显示渲染方法中的步骤。
27.在其中一些方面,本公开实施例提供了一种可读存储介质,用于存储程序,所述程序被处理器执行时实现如第一方面中任一项所述的显示渲染方法中的步骤。
附图说明
28.为了更清楚地说明本公开实施例的技术方案,下面将对本公开实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获取其他的附图。
29.图1是本公开一实施例显示渲染方法的流程图;
30.图2是本公开一实施例显示渲染方法的又一流程图;
31.图3是本公开一实施例显示渲染装置的结构图;
32.图4是本公开一实施例中电子设备的结构图。
具体实施方式
33.下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。不冲突的情况下,下述实施例及实施例中的特征可以相互组合。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获取的所有其他实施例,都属于本公开保护的范围。
34.本公开实施例提供了一种显示渲染方法。
35.该显示渲染方法应用于电子设备,在其中一些实施例中,电子设备具体为智能交互平板,智能交互平板通常具有尺寸较大的显示面板以及较高的分辨率,例如2k或4k甚至更高的分辨率。该智能交互平板可以基于安卓系统等操作系统运行。
36.需要理解的是,一些操作系统在对显示界面进行更新时,需要首先将原有的内容
清除,然后在画布上绘制新的内容,所需绘制的内容可以理解为由点、直线、弧线等各种不同的元素构成的,如果需要绘制的内容较为复杂,则会导致绘制内容的时间增加,这可能导致画面更新过程中出现卡顿、闪烁等现象,影响显示效果。
37.需要理解的是,本实施例的技术方案还可以应用于其他操作系统的电子设备,只要该操作系统中的画面更新是基于上述原理进行的即可。
38.其中一些实施例,显示渲染方法包括以下步骤:
39.步骤101:在画布数据发生变化的情况下,确定位于可视区域内的目标元素。
40.本实施例的技术方案中,在画布数据发生变化时,以对显示界面进行更新。
41.在对显示画面进行更新时,首先确定可视区域。本实施例中,可视区域可以理解为当前显示画面上对应的区域,也就是画布与电子设备的显示界面对应的区域。
42.示例性的,在电子设备的手写界面,在一个视图下,手写界面的尺寸与电子设备的显示界面相等,且在显示界面显示了全部手写界面。此时,全部手写界面均为可视区域。当对手写界面进行放大时,显示界面仅显示了手写界面的一部分区域,此时,电子设备上显示的区域为可视区域,该区域对应的画布数据为位于该可视区域的目标元素。
43.需要理解的是,如果显示画面显示全部画布对应的区域时,则可视区域对应整个画布,在某些情况下,显示画面对应画布的一部分区域,例如,用户放大观察某一局部区域时,电子设备所显示的画面仅为画布的一部分。
44.实施时,根据当前的显示界面,能够确定可视区域的边界,进一步的,将可视区域的边界内的元素确定为目标元素。
45.步骤102:在重绘线程中,生成重绘画布,并在所述重绘画布上绘制所述目标元素。
46.本实施例中,建立一个重绘线程,在该重绘线程中,提供一重绘画布,将需要绘制的目标元素绘制到该重绘画布上。
47.在其中一些实施例中,步骤102包括:
48.检测所述目标元素的数量;
49.若所述目标元素的数量大于预设数量阈值,则执行建立多个重绘子线程的步骤;
50.若所述目标元素的数量不大于所述预设数量阈值,则在所述重绘画布上绘制所述目标元素。
51.本实施例的技术方案中,该预设数量阈值是根据电子设备的软硬件性能确定的,需要理解的是,具有不同软硬件的电子设备能够提供不同的运算能力,如果所提供的运算能力相对较高,则在一个重绘线程的单位时间内能够绘制的元素的数量也就越多,相应的,如果所提供的运算能力相对较低,则在一个重绘线程的单位时间内能够绘制的元素的数量也就越少。
52.如果目标元素的总数量相对较少,例如小于或接近一个重绘线程的单位时间内能够绘制的元素的数量,则在重绘线程中,可以直接在重绘画布上绘制目标元素。
53.本实施例中,可以根据电子设备所提供的运算能力确定预设数量阈值,示例性的,可以将预设数量阈值设定为一个等于或略低于一个重绘线程的单位时间内能够绘制的元素的数量的值。
54.如果目标元素的数量不大于该预设数量阈值,则可以直接在重绘画布上绘制目标元素。
55.如果目标元素的数量相对较多,例如大于该预设数量阈值,则建立多个重绘线程以提高对于目标元素的绘制速度。
56.具体的,如果目标元素的数量大于该预设数量阈值,则执行以下步骤:
57.建立多个重绘子线程,并在所述重绘子线程中生成重绘子画布,其中,所述重绘子线程和所述重绘子画布一一对应
58.将所述目标元素划分至所述重绘子画布,并将各所述重绘子画布对应的目标元素绘制到相对应的重绘子画布;
59.将所述多个重绘子画布叠加至所述重绘画布。
60.本实施例中,在重绘线程中建立了多个重绘子线程,每一重绘子线程对应一个重绘子画布,换句话说,重绘子画布和重绘子线程是一一对应的。通过建立多个重绘子线程,在多个重绘子画布上并行绘制相应的目标元素,也就是说,多个重绘画布上的目标元素的绘制线程是并行进行的,从而能够提高对于目标元素的绘制速度。
61.并行也称并行通信,指的是多路数据同时进行传输的通信方式,本实施例中具体可以理解为多个重绘子线程是同时进行的。
62.在各个重绘子画布上绘制完相应的目标元素之后,将全部的重绘子画布叠加获得重绘画布,这样,所获得的重绘画布就包括了全部目标元素,同时,由于各重绘子线程是并行的,能够有效的节约目标元素的绘制时间。
63.在一些实施例中,重绘画布的数量是根据电子设备的运算能力确定的,具体而言,根据电子设备未被占用的剩余运算能力,建立一定数量的重绘子线程,所建立的重绘子线程占用的运算能力不大于剩余运算能力。
64.在一些实施例中,为了避免对可能需要建立的线程造成影响,所建立的重绘子线程占用的运算能力不大于剩余运算能力的30%,显然,该数值可以根据需要设定为10%、20%、25%等不同的数值。
65.这样,本实施例的技术方案能够充分利用电子设备的运算能力,同时也能够避免占用其他线程所需的运算能力,避免对其他线程造成影响。
66.以设置了三个重绘子线程及其一一对应的三个重绘子画布做示例性说明。
67.实施时,可以将画布数据中的全部元素平均或近似平均的分配至三个重绘子线程,这里,全部元素包括位于可视区域中的元素和位于可视区域之外的原始,在一些实施例中,为了平衡各重绘子线程的处理时间,分配至每一重绘子线程的目标元素的数量也是相等或基本相等的。
68.在另外一些实施例中,也可以仅将目标元素平均或近似平均的分配至每一重绘子线程,针对非可视区域的元素,由于不需要显示,所以对其不做处理。
69.针对其中的每一个重绘子线程对应的元素,依次进行遍历。
70.如果分配的元素为全部元素,则在遍历过程中,需要确认相应的元素是否为目标元素,并确保目标元素已经被绘制在相应的重绘子画布上。如果分配的元素为目标元素,则在遍历过程中,需要确保目标元素已经被绘制在相应的重绘子画布上。
71.遍历一个重绘子线程对应的元素之后,能够确保该重绘子线程对应的全部目标元素已经被绘制在了该重绘子线程对应的重绘子画布。
72.依照上述步骤,各重绘子线程并行遍历相对应的元素之后,完成各重绘子画布上
目标元素的绘制,进一步的,将各重绘子画布叠加至重绘画布,即可获得包括了全部目标元素的重绘画布。
73.步骤103:在界面渲染线程中,将所述重绘画布叠加绘制到界面渲染画布,并根据所述界面渲染画布刷新显示界面。
74.需要理解的是,相关技术中,界面渲染线程所需的数据均是在界面渲染线程中处理的,可以理解为,相关技术中是在界面渲染线程中将目标元素绘制到画布上,以进行显示画面的更新的,这将导致界面渲染线程的负荷增加,处理时间增加。
75.本实施例的技术方案中,进一步设置了重绘线程,在重绘线程中完成目标元素在画布上的绘制,具体的,在重绘线程中将目标元素绘制到重绘画布上,接下来,界面渲染线程可以直接调用重绘线程提供的绘制有目标元素的重绘画布。
76.在一些实施例中,重绘线程和界面渲染线程是串行的。
77.串行也称串行通信,指的是在数据通道上,每次传输一个位元数据,并连续进行以上单次过程的通信方式,也就是说,重绘线程和界面渲染线程是依次进行的,当重绘线程结束之后,会将其处理得到的重绘画布输出至界面渲染线程,供界面渲染线程进行界面更新操作。
78.具体的,可以通过ui界面(user interface,人机交互界面)提供界面渲染画布,然后将重绘画布叠加绘制到界面渲染画布上,在ui界面的更新线程中,只需要进行一次绘制动作即可完成界面渲染画布上内容的更新。
79.如图2所示,本实施例的技术方案可以概括为以下步骤。
80.如果画布数据发生了变化,需要进行重绘渲染,则进入重绘线程。
81.在重绘线程中,首先获取可视区域的边界,并确定位于可视区域中的目标元素。
82.检测目标元素的数量是否大于预设数量阈值,本实施例中,以预设数量阈值为100做示例性说明。
83.如果目标元素的数量不大于100,则在重绘线程中直接对重绘画布进行绘制。
84.如果目标元素的数量大于100,则建立多个重绘子线程,将目标元素分配至多个重绘子线程,分别进行绘制。
85.在上述的每一个重绘子线程的目标元素的绘制过程中,对每一重绘子线程对应的元素进行遍历,如果被遍历到的元素为目标元素,则进一步将该目标元素绘制到重绘子画布上。最后,将多个重绘线程对应的重绘子画布叠加获得重绘画布。
86.界面渲染线程调用重绘线程生成的重绘画布。界面渲染线程通知ui界面进行显示界面的更新,在进入界面渲染线程之后,ui界面将重绘画叠加绘制到界面渲染画布上,最终,完成了重绘渲染的过程。
87.本公开实施例提供了一种显示渲染装置,应用于电子设备。
88.如图3所示,在一个实施例中,显示渲染装置300包括:
89.目标元素获取模块301,用于在画布数据发生变化的情况下,确定位于可视区域内的目标元素302;
90.重绘画布生成模块,用于生成重绘画布,并在所述重绘画布上绘制所述目标元素;
91.界面刷新模块303,用于在界面渲染线程中,将所述重绘画布叠加绘制到界面渲染画布,并根据所述界面渲染画布刷新显示界面。
92.在一些实施例中,所述重绘画布生成模块302包括:
93.建立子模块,用于建立多个重绘子线程,并在所述重绘子线程中生成重绘子画布,其中,所述重绘子线程和所述重绘子画布一一对应;
94.划分子模块,用于将所述目标元素划分至所述重绘子画布,并将各所述重绘子画布对应的目标元素绘制到相对应的重绘子画布;
95.叠加子模块,用于将所述多个重绘子画布叠加至所述重绘画布。
96.在一些实施例中,所述多个重绘子线程是并行的。
97.在一些实施例中,所述重绘子画布的数量是根据所述电子设备的运算能力确定的。
98.在一些实施例中,所述重绘线程和所述界面渲染线程是串行的。
99.在一些实施例中,所述重绘画布生成模块302包括:
100.检测子模块,用于检测所述目标元素的数量;
101.所述绘制子模块,具体用于若所述目标元素的数量大于预设数量阈值,则执行将所述画布数据划分至多个重绘画布的步骤;
102.所述绘制子模块,还用于若所述目标元素的数量不大于所述预设数量阈值,则在所述重绘画布上绘制所述目标元素。
103.在一些实施例中,所述可视区域为画布与所述电子设备的显示界面对应的区域,所述目标元素为所述画布数据中位于所述可视区域的元素。
104.在一些实施例中,所述目标元素包括在所述电子设备上的书写操作对应的笔迹对应的元素。
105.在一些实施例中,所述电子设备为智能交互平板。
106.本发明实施例还提供一种电子设备。请参见图4,电子设备可以包括处理器401、存储器402及存储在存储器402上并可在处理器401上运行的程序4021。程序4021被处理器401执行时可实现图1对应的方法实施例中的任意步骤及达到相同的有益效果,此处不再赘述。
107.本领域普通技术人员可以理解实现上述实施例方法的全部或者部分步骤是可以通过程序指令相关的硬件来完成,所述的程序可以存储于一可读取介质中。
108.本发明实施例还提供一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时可实现上述图1对应的方法实施例中的任意步骤,且能达到相同的技术效果,为避免重复,这里不再赘述。
109.所述的存储介质,如只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等。
110.需要说明的是,应理解以上各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现。例如,确定模块可以为单独设立的处理元件,也可以集成在上述装置的某一个芯片中实现,此外,也可以以程序代码的形式存储于上述装置的存储器中,由上述装置的某一个处理元件调用并执行以上确定模块的功能。其它模块的实现与之类似。此外这些模块全部或部分可以集成在一起,也可以独立实现。这里所述的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上
述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。
111.例如,各个模块、单元、子单元或子模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(application specific integrated circuit,asic),或,一个或多个微处理器(digital signal processor,dsp),或,一个或者多个现场可编程门阵列(field programmable gate array,fpga)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(central processing unit,cpu)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,soc)的形式实现。
112.以上所述是本发明实施例的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
再多了解一些

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

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

相关文献