CN118170284A - 窗口渲染方法、装置、设备以及介质 - Google Patents
窗口渲染方法、装置、设备以及介质 Download PDFInfo
- Publication number
- CN118170284A CN118170284A CN202410575255.4A CN202410575255A CN118170284A CN 118170284 A CN118170284 A CN 118170284A CN 202410575255 A CN202410575255 A CN 202410575255A CN 118170284 A CN118170284 A CN 118170284A
- Authority
- CN
- China
- Prior art keywords
- rendering
- control
- service
- class
- window
- 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.)
- Pending
Links
- 238000009877 rendering Methods 0.000 title claims abstract description 1029
- 238000000034 method Methods 0.000 title claims abstract description 68
- 230000015654 memory Effects 0.000 claims abstract description 294
- 230000027455 binding Effects 0.000 claims description 96
- 238000009739 binding Methods 0.000 claims description 96
- 238000013507 mapping Methods 0.000 claims description 89
- 238000004590 computer program Methods 0.000 claims description 22
- 238000003860 storage Methods 0.000 claims description 21
- 230000001960 triggered effect Effects 0.000 claims description 8
- 238000010586 diagram Methods 0.000 description 18
- 230000002452 interceptive effect Effects 0.000 description 13
- 230000008569 process Effects 0.000 description 10
- 238000004891 communication Methods 0.000 description 9
- 230000000694 effects Effects 0.000 description 9
- 238000012545 processing Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 8
- 238000011161 development Methods 0.000 description 6
- 230000003993 interaction Effects 0.000 description 6
- 230000000007 visual effect Effects 0.000 description 6
- 239000008186 active pharmaceutical agent Substances 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 3
- 239000000306 component Substances 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 108010001267 Protein Subunits Proteins 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 241000699670 Mus sp. Species 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 239000000872 buffer Substances 0.000 description 1
- 239000008358 core component Substances 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004091 panning Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Landscapes
- User Interface Of Digital Computer (AREA)
Abstract
本申请提供了一种窗口渲染方法、装置、设备以及介质,方法包括:获取包含多个业务控件的业务窗口,将业务窗口所对应的内存区域确定为窗口内存区域;多个业务控件至少包括与第一类渲染引擎相关联的第一类业务控件和与第二类渲染引擎相关联的第二类业务控件;调用第一类渲染引擎对第一类业务控件进行业务渲染,将渲染得到的第一渲染内容存储至第一渲染内存;调用第二类渲染引擎对第二类业务控件进行业务渲染,将渲染得到的第二渲染内容存储至第二渲染内存;基于第一渲染内容和第二渲染内容,生成窗口画面并显示。采用本申请,可以通过不同的渲染引擎实现对同一业务窗口中的不同的业务控件进行染,进而可以在确保渲染质量的同时,提升整体渲染效率。
Description
技术领域
本申请涉及互联网技术领域,尤其涉及一种窗口渲染方法、装置、设备以及介质。
背景技术
目前,应用程序的窗口渲染策略是使用单一渲染引擎进行渲染,即在整个应用程序运行期间,是通过一个渲染引擎对同一窗口中的不同控件进行窗口绘制。比如,对于某个窗口(例如,窗口A)而言,是使用单一渲染引擎遍历对该窗口A中的不同控件(例如,控件B和控件C)进行渲染。
然而,发明人在实践中发现,由于同一窗口中的不同控件(例如,上述控件B和控件C)往往具有不同的业务功能,所以,在使用单一渲染引擎(例如,上述渲染引擎D)对不同控件进行渲染时,难以确保渲染时所得到的不同渲染内容的渲染质量,且在使用单一渲染引擎遍历对不同控件进行渲染的过程中,还需要消耗较长的渲染处理时长来实现对不同控件的绘制需求,以至于降低了对不同控件进行渲染时的整体渲染效率。
发明内容
本申请实施例提供一种窗口渲染方法、装置、设备以及介质,可以通过不同
的渲染引擎实现对同一业务窗口中的不同的业务控件进行染,进而可以在确保渲染质量的同时,提升整体渲染效率。
本申请实施例一方面提供了一种窗口渲染方法,包括:
获取包含多个业务控件的业务窗口,将业务窗口所对应的内存区域确定为窗口内存区域;多个业务控件至少包括与第一类渲染引擎相关联的第一类业务控件和与第二类渲染引擎相关联的第二类业务控件;第一类渲染引擎所对应的渲染内存为第一渲染内存,第二类渲染引擎所对应的渲染内存为第二渲染内存;第一渲染内存和第二渲染内存均为窗口内存区域中的内存;
调用第一类渲染引擎对第一类业务控件进行业务渲染,将第一类业务控件所对应的第一渲染内容存储至第一渲染内存;
调用第二类渲染引擎对第二类业务控件进行业务渲染,将第二类业务控件所对应的第二渲染内容存储至第二渲染内存;
在渲染输出业务窗口所对应的窗口画面时,基于第一渲染内容和第二渲染内容,生成窗口画面,将窗口画面输出显示在业务窗口所对应的显示区域。
本申请实施例一方面提供了一种窗口渲染装置,包括:
第一获取模块,用于获取包含多个业务控件的业务窗口,将业务窗口所对应的内存区域确定为窗口内存区域;多个业务控件至少包括与第一类渲染引擎相关联的第一类业务控件和与第二类渲染引擎相关联的第二类业务控件;第一类渲染引擎所对应的渲染内存为第一渲染内存,第二类渲染引擎所对应的渲染内存为第二渲染内存;第一渲染内存和第二渲染内存均为窗口内存区域中的内存;
第一渲染模块,用于调用第一类渲染引擎对第一类业务控件进行业务渲染,将第一类业务控件所对应的第一渲染内容存储至第一渲染内存;
第二渲染模块,用于调用第二类渲染引擎对第二类业务控件进行业务渲染,将第二类业务控件所对应的第二渲染内容存储至第二渲染内存;
输出显示模块,用于在渲染输出业务窗口所对应的窗口画面时,基于第一渲染内容和第二渲染内容,生成窗口画面,将窗口画面输出显示在业务窗口所对应的显示区域。
可选地,装置还包括:内存创建模块;
其中,内存创建模块,包括:渲染策略获取单元、渲染引擎获取单元、第一内存创建单元以及第二内存创建单元;
渲染策略获取单元,用于获取针对业务窗口的窗口创建事件,基于窗口创建事件确定与业务窗口相关联的渲染策略;
渲染引擎获取单元,用于若渲染策略为多引擎渲染策略,则获取多引擎渲染策略所指示的多个渲染引擎;多个渲染引擎至少包括第一类渲染引擎和第二类渲染引擎;
第一内存创建单元,用于对第一类渲染引擎进行初始化,在窗口内存区域创建第一类渲染引擎所对应的渲染内存,并将第一类渲染引擎所对应的渲染内存作为第一渲染内存;
第二内存创建单元,用于对第二类渲染引擎进行初始化,在窗口内存区域创建第二类渲染引擎所对应的渲染内存,并将第二类渲染引擎所对应的渲染内存作为第二渲染内存。
可选地,装置还包括:控件确定模块;
控件确定模块,包括:标记识别单元以及第一控件确定单元;
标记识别单元,用于获取业务窗口中的多个业务控件,从多个业务控件中获取目标业务控件,识别目标业务控件的控件标识,得到目标业务控件对应的标识识别结果;
第一控件确定单元,用于若标识识别结果指示目标业务控件的控件标识属于第一类控件标识,则确定目标业务控件属于第一类控件标识对应的第一类业务控件。
可选地,控件确定模块,还包括:第二控件确定单元;
第二控件确定单元,用于若标识识别结果指示目标业务控件的控件标识不属于第一类控件标识,则确定目标业务控件的控件标识属于第二类控件标识,将目标业务控件确定为第二类控件标识对应的第二类业务控件。
其中,业务窗口所在的显示终端的终端系统为第一业务系统,第一类渲染引擎为适配于多个业务系统的渲染引擎,多个业务系统包括第一业务系统,第一类渲染引擎所对应的接口为第一类渲染引擎接口;
第一渲染模块,包括:第一接口确定单元、第一业务渲染单元以及第一内容存储单元;
第一接口确定单元,用于基于第一类业务控件对应的第一类控件标识,获取与第一类控件标识相关联的第一映射绑定关系,基于第一映射绑定关系确定第一类业务控件对应的第一类渲染引擎接口;
第一业务渲染单元,用于在第一业务系统中,通过第一类渲染引擎接口调用第一类渲染引擎对第一类业务控件所对应的控件内容进行业务渲染,得到第一类业务控件所对应的第一渲染内容;
第一内容存储单元,用于将第一渲染内容存储至第一渲染内存。
其中,第一类业务控件包括第一业务控件和第二业务控件,第一类业务标识包括第一控件标识和第二控件标识,第一类渲染引擎接口包括第一类子渲染引擎接口和第二类子渲染引擎接口;
第一接口确定单元,包括:第一子接口确定子单元、第二子接口确定子单元以及第一接口确定子单元;
第一子接口确定子单元,用于基于第一业务控件对应的第一控件标识,获取与第一控件标识相关联的第一子映射绑定关系,基于第一子映射绑定关系确定第一业务控件对应的第一类子渲染引擎接口;
第二子接口确定子单元,用于基于第二业务控件对应的第二控件标识,获取与第二控件标识相关联的第二子映射绑定关系,基于第二子映射绑定关系确定第二业务控件对应的第二类子渲染引擎接口;
第一接口确定子单元,用于将第一类子渲染引擎接口和第二类子渲染引擎接口确定为第一类渲染引擎接口。
其中,第一类业务控件包括第一业务控件和第二业务控件,第一类渲染引擎包括第一类子渲染引擎和第二类子渲染引擎,第一类子渲染引擎所对应的接口为第一类子渲染引擎接口,第二类子渲染引擎所对应的接口为第二类子渲染引擎接口;
第一业务渲染单元,包括:第一子业务渲染子单元、第二子业务渲染子单元以及第一渲染内容确定子单元;
第一子业务渲染子单元,用于在第一业务系统中,通过第一类子渲染引擎接口调用第一类子渲染引擎对第一业务控件所对应的控件内容进行业务渲染,得到第一业务控件所对应的第一子渲染内容;
第二子业务渲染子单元,用于在第一业务系统中,通过第二类子渲染引擎接口调用第二类子渲染引擎对第二业务控件所对应的控件内容进行业务渲染,得到第二业务控件所对应的第二子渲染内容;
第一渲染内容确定子单元,用于将第一子渲染内容和第二子渲染内容作为第一渲染内容。
其中,业务窗口是基于业务对象所触发的窗口创建事件所确定的;
可选地,装置还包括:第一标识配置模块;
第一标识配置模块,包括:第一配置策略获取单元以及第一类标识配置单元;
第一配置策略获取单元,用于从窗口创建事件中获取业务窗口包含的多个业务控件,基于窗口创建事件确定业务窗口相关联的控件标识配置策略;多个业务控件至少包括第一类业务控件;
第一类标识配置单元,用于基于控件标识配置策略,配置第一类业务控件对应的第一类控件标识,并配置第一类控件标识与第一类渲染引擎接口之间的第一映射绑定关系。
其中,第一类业务控件包括第一业务控件和第二业务控件,第一类控件标识包括第一控件标识和第二控件标识,第一类渲染引擎接口包括第一类子渲染引擎接口和第二类子渲染引擎接口;
第一类标识配置单元,还包括:第一标识配置子单元、第二标识配置子单元以及第一关系确定子单元;
第一标识配置子单元,用于基于控件标识配置策略,配置第一业务控件对应的第一控件标识,并配置第一控件标识与第一类子渲染引擎接口之间的第一子映射绑定关系;
第二标识配置子单元,用于基于控件标识配置策略,配置第二业务控件对应的第二控件标识,并配置第二控件标识与第二类子渲染引擎接口之间的第二子映射绑定关系;
第一关系确定子单元,用于将第一子映射绑定关系和第二子映射绑定关系作为第一映射绑定关系。
其中,业务窗口所在的显示终端的终端系统为第一业务系统,第二类渲染引擎为第一业务系统所携带的渲染引擎,第二类渲染引擎所对应的接口为第二类渲染引擎接口;
第二渲染模块,包括:第二接口确定单元、第二业务渲染单元以及第二内容存储单元;
第二接口确定单元,用于基于第二类业务控件对应的第二类控件标识,获取与第二类控件标识相关联的第二映射绑定关系,基于第二映射绑定关系确定第二类业务控件对应的第二类渲染引擎接口;
第二业务渲染单元,用于在第一业务系统中,通过第二类渲染引擎接口调用第二类渲染引擎对第二类业务控件所对应的控件内容进行业务渲染,得到第二类业务控件所对应的第二渲染内容;
第二内容存储单元,用于将第二渲染内容存储至第二渲染内存。
其中,业务窗口是基于业务对象所触发的窗口创建事件所确定的;
可选地,装置还包括:第二标识配置模块;
第二标识配置模块,包括:第二配置策略获取单元以及第二类标识配置单元;
第二配置策略获取单元,用于第二类标识配置单元从窗口创建事件中获取业务窗口包含的多个业务控件,基于窗口创建事件确定业务窗口相关联的控件标识配置策略;多个业务控件至少包括第二类业务控件;
第二类标识配置单元,用于基于控件标识配置策略,配置第二类业务控件对应的第二类控件标识,并配置第二类控件标识与第二类渲染引擎接口之间的第二映射绑定关系。
本申请实施例一方面提供了一种计算机设备,包括存储器和处理器,存储器与处理器相连,存储器用于存储计算机程序,处理器用于调用计算机程序,以使得该计算机设备执行本申请实施例中上述一方面提供的方法。
本申请实施例一方面提供了一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序适于由处理器加载并执行,以使得具有处理器的计算机设备执行本申请实施例中上述一方面提供的方法。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述一方面提供的方法。
本申请实施例中,计算机设备可以获取包含多个业务控件的业务窗口,并且将业务窗口所对应的内存区域确定为窗口内存区域;应当理解,这里的多个业务控件至少包括与第一类渲染引擎相关联的第一类业务控件和与第二类渲染引擎相关联的第二类业务控件,第一类渲染引擎所对应的渲染内存为第一渲染内存,第二类渲染引擎所对应的渲染内存为第二渲染内存,且第一渲染内存和第二渲染内存均为窗口内存区域中的内存。应当理解,本申请实施例通过在窗口内存区域分别创建第一渲染内存和第二渲染内存,从而可以将第一类渲染引擎和第二类渲染引擎进行业务渲染时得到的渲染内容,均存储在同一个内存(即上述窗口内存区域)中。比如,计算机设备调用第一类渲染引擎对第一类业务控件进行业务渲染,将第一类业务控件所对应的第一渲染内容存储至第一渲染内存;计算机设备调用第二类渲染引擎对第二类业务控件进行业务渲染,将第二类业务控件所对应的第二渲染内容存储至第二渲染内存。随后,计算机设备可以在渲染输出业务窗口所对应的窗口画面时,基于第一渲染内容和第二渲染内容,生成窗口画面,从而将窗口画面输出显示在业务窗口所对应的显示区域。由此可见,本申请实施例通过统一不同渲染引擎的渲染内存,即在窗口显示区域创建不同渲染引擎的渲染内存,可以实现使用不同渲染引擎对不同的业务控件进行业务渲染,并且将得到的渲染内容(比如,上述第一渲染内容和第二渲染内容)在同一业务窗口进行显示。因此,可以通过不同的渲染引擎实现对同一业务窗口中的不同的业务控件进行染,进而可以在确保渲染质量的同时,提升整体渲染效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种网络架构的结构示意图;
图2是本申请实施例提供的一种窗口渲染过程示意图;
图3是本申请实施例提供的一种窗口渲染方法的流程示意图;
图4是本申请实施例提高的一种为渲染引擎创建渲染内存的示意图;
图5是本申请实施例提供的一种为业务控件配置控件标识的示意图;
图6是本申请实施例提供的一种确定目标业务控件的控件类别的示意图;
图7是本申请实施例提供的一种判断渲染引擎的示意图;
图8是本申请实施例提供的一种生成业务窗口并进行显示的过程意图;
图9是本申请实施例提供的一种对业务进行渲染的分层架构图;
图10是本申请实施例提供的一种窗口渲染装置的结构示意图;
图11是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在对本申请实施例中的窗口渲染方法进行详细说明之前,先对本申请涉及的技术名词进行解释。
渲染引擎:一种软件组件或系统,负责将计算机程序中的图形和视觉元素转化为在屏幕上可见的图像的核心部分。它通常用于图形用户界面(Graphical User Interface,GUI)应用程序、浏览器等,确保图形和视觉效果能够正确地显示在用户的设备上。其中,在本申请实施例中,渲染引擎用于对业务窗口中的业务控件进行渲染,且本申请实施例中的渲染引擎可以包括第一类渲染引擎和第二类渲染引擎。其中,第二类渲染引擎为业务系统中携带的渲染引擎,第一类渲染引擎为可以适配与多个业务系统的渲染引擎。
窗口控件:窗口控件是计算机图形用户界面(Graphical User Interface,GUI)中的元素,用于在屏幕上显示和接收用户的交互。窗口控件是构建用户界面的基本组成部分,可以包括各种元素,如按钮、文本框、复选框、滑块等,用于展示信息、接收用户输入或执行特定的操作。应当理解,在本申请实施例中,业务窗口中的业务控件即为该窗口控件,且在本申请实施例中,该业务控件可以通过控件标识配置操作,分为第一类业务控件和第二类业务控件。
GDI、GDI+:Windows系统中的两种渲染引擎,用于在Windows系统下绘制UI界面。其中,在本申请实施例中,当业务系统为Windows系统时,GDI和GDI+可以在该Windows系统下作为可调用的渲染引擎,为便于理解,本申请实施例可以在Windows系统下可调用的渲染引擎(即GDI和GDI+)统称为第二类渲染引擎,以通过该第二类渲染引擎实现对某个业务窗口中的某个业务控件(即第二类业务控件)进行渲染。
Skia:Google公司开源的跨平台界面渲染引擎,可在多种不同系统中绘制UI界面。其中,在本申请实施例中,当业务系统为Windows系统时,Skia可以在该Windows系统下作为可调用的渲染引擎,为便于理解,本申请实施例可以将在Windows系统下可调用的渲染引擎(即Skia)统称为第一类渲染引擎,以通过该第一类渲染引擎实现对某个业务窗口中的某个业务控件(即第一类业务控件)进行渲染。
图形用户界面(Graphical User Interface,GUI):GUI是一种计算机用户界面的设计方式,通过图形元素(如窗口、图标、按钮等)和用户的交互方式(如鼠标、键盘等)来使用户与计算机进行交互。在本申请实施例中,GUI可以为显示在显示区域的窗口画面。
设备上下文(Device Context ,DC):DC是GDI中的一个关键概念,用于描述图形设备的属性和方法。通过DC,程序可以与图形设备进行交互,进行绘图、文本输出等操作。在本申请实施例中,在调用渲染引擎(比如,GDI)进行渲染时,可以在DC中进行渲染操作,最终显示在窗口画面中。
请参见图1,图1是本申请实施例提供的一种网络架构的结构示意图。如图1所示,该网络架构可以包括服务器2000和终端设备集群,该终端设备集群可以包括一个或者多个终端设备,这里不对终端设备的数量进行限制。如图1所示,该终端设备集群可以具体包括终端设备10a、终端设备10b以及终端设备10c、…、终端设备10n等。其中,该终端设备集群中的每个终端设备均可以包括:智能手机、平板电脑、笔记本电脑、掌上电脑、个人电脑、智能电视、智能手表、车载设备、可穿戴设备等智能终端,在此不做限定。应当理解,如图1所示的终端设备集群中的每个终端设备均可以安装有涉及到窗口渲染的应用客户端,当该应用客户端运行于各终端设备中时,可以分别与上述图1所示的服务器2000之间进行数据交互。其中,该应用客户端可以通过浏览器的形式运行于终端设备上,也可以通过独立的应用程序(application,APP)的形式运行于终端设备上等,对于客户端的具体展现形式,此处不做限定。
其中,服务器2000可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。其中,如图1所示,终端设备10a、终端设备10b以及终端设备10c、…、终端设备10n可以分别与上述服务器2000进行网络连接,以便于每个终端设备可以通过该网络连接与服务器2000进行数据交互。其中,这里的网络连接不限定连接方式,可以通过有线通信方式进行直接或间接地连接,也可以通过无线通信方式进行直接或间接地连接,还可以通过其他方式,本申请在此不做限制。
其中,本申请提供的方案可以由终端设备集群中的任意一个终端设备(例如,终端设备10a)独立完成,也可以由服务器(例如,服务器2000)独立完成,还可以由终端设备和服务器配合完成,对此,本申请实施例并不做具体限定。
其中,本申请实施例涉及对业务窗口中的业务控件进行业务渲染。应当理解,业务控件是指在应用程序中用于展示业务数据、支持业务操作或实现业务逻辑的用户界面元素。业务控件可以包括各种形式的用户界面元素,比如,文本框、按钮、表格、图表等。其中,常见的业务控件可以包括,表单控件:用于收集用户输入的信息,例如,文本框、下拉列表、单选框、复选框等。表格控件:用于展示和编辑结构化数据的控件,通常以行和列的形式呈现。例如,一个销售订单列表,其中包含订单号、客户信息、订单日期等列。按钮控件:用于触发特定操作或事件的控件,例如提交表单、保存数据、导出报表等。例如,一个“提交订单”按钮,用于将用户输入的订单信息提交到系统中。导航控件:用于在应用程序中导航不同页面或功能的控件,例如菜单、导航栏、选项卡等。例如,一个包含“主页”、“退出”、“设置”等选项卡的导航栏,用于切换不同的功能模块。搜索控件:用于在数据集合中搜索特定项的控件,例如文本框加上搜索按钮或者是具有自动完成功能的搜索框。例如,一个产品搜索框,允许用户输入关键字搜索产品信息。提示控件:用于向用户提供信息、指导或警告的控件,例如弹出式消息框、气泡提示、警告标识等。其中,在本申请实施例中,将不对业务控件的种类和具体形式进行限定。
其中,应当理解,不同业务控件对渲染引擎的要求有所不同,因为它们可能涉及到不同的图形和交互效果。比如,图表控件通常需要能够快速、准确地绘制各种类型的图表,并支持交互式操作,如缩放、平移、数据筛选等,因此渲染引擎需要能够有效地处理和渲染大量数据点。又比如,表格控件需要能够高效地渲染大量的表格数据,并支持用户的交互操作,如列排序、行选择、数据筛选等,因此渲染引擎需要能够实现快速的表格绘制和数据更新,并在大型数据集下保持流畅的性能。再比如,提示控件通常是在用户执行特定操作时弹出的,因此渲染引擎需要能够实现提示控件的平滑动画效果,以提高用户体验。
由此可见,不同的业务控件,对于渲染引擎的需求是不一样的。然而,现有的大多数应用程序使用单一渲染引擎对业务窗口(比如,窗口X)进行渲染,即整个应用程序运行期间只有一套渲染引擎对该窗口X进行渲染。尽管部分特殊应用程序可以在运行时切换渲染引擎来进行渲染,但是这仅仅是指对应用程序中不同的业务窗口,可以使用不同的渲染引擎进行业务渲染。比如,针对应用程序(比如,应用程序W)中的窗口A1,可以使用渲染引擎B1进行渲染。针对该应用程序W中的窗口A2,可以使用渲染引擎B2进行渲染。换言之,对于同一业务窗口中的不同业务控件,无法做到使用不同渲染引擎进行渲染。
因此,本申请实施例提供了一种新颖的窗口渲染方法,本申请实施例可以在业务窗口(比如,业务窗口P)所对应的内存区域(比如,内存区域p)中,为不同的业务控件(例如,业务控件Y1和业务控件Y2)相关联的渲染引擎创建属于它们各自的渲染内存。比如,在内存区域p中,为业务控件Y1相关联的渲染引擎(例如,渲染引擎L1)创建渲染内存(例如,渲染内存y1),且为业务控件Y2相关联的渲染引擎(例如,渲染引擎L2)创建渲染内存(例如,渲染内存y2)。因此,当不同的渲染引擎(即渲染引擎L1和渲染引擎L2)对上述业务控件(即业务控件Y1和业务控件Y2)进行渲染时,可以将渲染引擎L1和渲染引擎L2渲染得到的渲染内容,均存储在内存区域p,进而在业务窗口P进行显示。由此,本申请实施例通过调用不同的渲染引擎对不同业务控件进行渲染,可以提高业务控件的渲染效果,还可以提高渲染效率。
可以理解的是,图1只是示例性地表征本申请技术方案的可能存在的网络架构,并不对本申请技术方案的具体架构进行限定,即本申请技术方案还可以提供其他形式的网络架构。
进一步的,请参见图2,图2是本申请实施例提供的一种窗口渲染过程示意图。如图2所示,本申请实施例可以由计算机设备执行,该计算机设备可以为图1所对应实施例中终端设备集群中的任意一个终端设备,例如,终端设备10a。
如图2所示,展示有两个业务控件,分别为业务控件20a和业务控件20b。其中,业务控件20a和业务控件20b可以是基于窗口创建事件确定的。应当理解,当某个用户(例如,用户U1)在某个浏览器打开某个网页时,该网页需要展示对应的业务窗口(例如,如图2所示的业务窗口201a),那么该用户U1所对应的用户终端(例如,终端设备10a)所对应的业务系统(例如,Windows系统)将会负责创建该业务窗口201a,进而触发相应的事件,该事件即可以为窗口创建事件。应当理解,上述业务控件20a和业务控件20b即为业务窗口201a需要展示的业务控件。此外,在生成窗口创建事件时,由于业务系统需要创建业务窗口201a,因此需要分配相应的内存空间来存储业务窗口201a所需的像素数据、图形对象以及与窗口相关的其他属性和状态信息。在本申请实施例中,将业务窗口201a所对应的内存区域称之为窗口内存区域。
应当理解,在本申请实施例中,渲染引擎21a为与业务控件20a相关联的渲染引擎,渲染引擎21b为与业务控件20b相关联的渲染引擎。具体的,如何确定业务控件20a和业务控件20b所对应的渲染引擎,可以参见后续图7所对应实施例的阐述,这里将不进行详细的阐述。
此外,在本申请实施中,计算机设备会在窗口内存区域中,为渲染引擎21a和渲染引擎21b分别创建内存,且将为渲染引擎21a创建的内存称之为渲染内存200a,将为渲染引擎21b创建的内存称之为渲染内存200b。
进一步,为生成上述业务窗口201a,计算机设备会对业务控件20a和业务控件20b进行渲染。其中,应当理解,在本申请实施例中,可以将业务控件20a统称为第一类业务控件,且该业务控件20a可以为图1所对应实施例中所列举的业务控件,这里将不再进行赘述。进一步,计算机设备调用渲染引擎21a对业务控件20a进行渲染,进而得到渲染内容22a。应当理解,针对渲染内容22a,需要对应存储在相应的内存中。其中,在本申请实施例中,将渲染内容22a存储在渲染内存200a中,需要说明的是,该渲染内存200a为触发上述窗口创建事件时,业务系统为业务控件20a对应分配的内存。同理,在本申请实施例中,可以将业务控件20b统称为第二类业务控件,且该业务控件20b也可以为图1所对应实施例中所列举的业务控件,这里将不再进行赘述。进一步,计算机设备调用渲染引擎21b对业务控件20b进行渲染,进而得到渲染内容22b。应当理解,针对渲染内容22b,也需要对应存储在相应的内存中,在本申请实施例中,将渲染内容22b存储在渲染内存200b中,需要说明的是,该渲染内存200b为触发上述窗口创建事件时,业务系统为业务控件20b对应分配的内存。
进一步,计算机设备基于渲染内容22a和渲染内容22b生成窗口画面23a。应当理解,由于上述渲染内存200a和渲染内存200b均为窗口内存区域中的内存,这意味着渲染内容22a和渲染内容22b也存储在窗口内存区域中,那么计算机设备可以将窗口画面23a直接输出显示在业务窗口201a中。
由此可见,本申请实施例可以通过在窗口内存区域,为不同渲染引擎创建对应的渲染内存,从而可以使得不同渲染引擎对不同的业务控件进行渲染得到的渲染内容,都可以存储在窗口内存区域,进而可以将渲染内容显示在同一业务窗口中。由此,本申请实施例可以通过使用不同的渲染引擎,对同一业务窗口中的不同业务控件进行渲染,进而提高渲染效率。
需要说明的是,在本申请的具体实施方式中,涉及到与渲染数据等相关的数据,但本申请以上实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关地区的相关法律法规和标准。
进一步的,请参见图3,图3是本申请实施例提供的一种窗口渲染方法的流程示意图。如图3所示,该方法可以由计算机设备执行,该计算机设备可以为图1所示的终端设备集群中的任意一个终端设备(例如,终端设备10a)执行。该方法至少可以包括以下步骤S101-步骤S104。
步骤S101,获取包含多个业务控件的业务窗口,将业务窗口所对应的内存区域确定为窗口内存区域;多个业务控件至少包括与第一类渲染引擎相关联的第一类业务控件和与第二类渲染引擎相关联的第二类业务控件;第一类渲染引擎所对应的渲染内存为第一渲染内存,第二类渲染引擎所对应的渲染内存为第二渲染内存;第一渲染内存和第二渲染内存均为窗口内存区域中的内存;
其中,包含多个业务控件的业务窗口是由窗口创建事件所指示的,该窗口创建事件是由业务系统(例如,Windows)的窗口管理器或应用程序框架触发的。当用户启动应用程序或者网页时,业务系统(例如,Windows系统)会负责创建应用程序或者网页的主窗口,生成窗口创建事件。该窗口创建事件指示了业务窗口的窗口形式,以及业务窗口中包含的业务控件的控件类别以及控件形式。其中,多个业务控件的控件类别和形式可以参见图1所对应实施例中对业务控件的介绍,这里将不再进行赘述。
应当理解,在处理窗口创建事件时,计算机设备通常还会为业务窗口分配相应的内存区域,即窗口内存区域,该窗口内存区域是指用于存储业务窗口的内容的部分内存区域。在图形用户界面系统中,每个业务窗口都需要存储其自己的图像或内容,包括窗口中显示的所有元素(例如,上述业务控件),这些内容需要在进行渲染,从而显示在业务窗口中,进而显示在用户所对应的终端设备上。
应当理解,在本申请实施例中,计算机设备在为业务窗口分配窗口内存区域时,还会根据渲染引擎的类别,为不同类别的渲染引擎在窗口内存区域创建不同的渲染内存。
其中,为不同类别的渲染内存在窗口内存区域创建不同的渲染内存,具体步骤可以包括:计算机设备获取针对业务窗口的窗口创建事件,基于窗口创建事件确定与业务窗口相关联的渲染策略;进一步,若渲染策略为多引擎渲染策略,计算机设备则可以获取多引擎渲染策略所指示的多个渲染引擎,进而为多个渲染引擎进行初始化,并在窗口内存区域创建对应的渲染内存。
其中,在本申请实施例中,以多个渲染引擎至少包括的第一类渲染引擎和第二类渲染引擎为例进行阐述。计算机设备可以对第一类渲染引擎进行初始化,然后在窗口内存区域创建第一类渲染引擎所对应的渲染内存,并可以将第一类渲染引擎所对应的渲染内存作为第一渲染内存;同理,计算机设备还可以对第二类渲染引擎进行初始化,在窗口内存区域创建第二类渲染引擎所对应的渲染内存,并可以将第二类渲染引擎所对应的渲染内存作为第二渲染内存。
其中,渲染策略是由窗口创建事件所指定的,业务系统(即Windows系统)在负责创建应用程序或者网页的主窗口,生成窗口创建事件时,该事件就指定了该业务窗口的渲染策略。其中,渲染策略可以包括多引擎渲染策略和单引擎渲染策略。应当理解,多引擎渲染策略即为该业务窗口中的业务控件由多个渲染引擎进行渲染。同理,单引擎渲染策略即为该业务窗口中的业务控件仅仅由单一的渲染引擎进行渲染。
其中,初始化是指在使用渲染引擎之前,需要对渲染引擎进行一系列的设置和准备工作,以确保渲染引擎能够正常运行并符合应用程序的需求,初始化操作可以包括但不限于:1、创建渲染上下文:渲染引擎需要一个上下文来管理图形设备和渲染操作。在初始化阶段,会创建渲染上下文,该上下文通常与特定的图形API(如OpenGL、DirectX、Vulkan等)相关联。2、设置渲染环境:在初始化过程中,会设置渲染环境的各种参数,如视口大小、帧缓冲区的配置、深度测试、光照模型等。这些设置会影响后续渲染操作的结果。3、加载和编译着色器程序:渲染引擎通常使用着色器程序来控制图形的绘制过程。在初始化阶段,会加载和编译着色器代码,并创建着色器程序对象,以供后续使用。4、初始化渲染管道:渲染管道是渲染引擎中的重要组成部分,负责控制渲染流程和数据流向。在初始化阶段,会设置和初始化渲染管道,包括顶点输入布局、渲染目标设置、混合状态等。
其中,第一渲染内存是指用于存储与第一类业务控件相关联的第一数据的内存,该第一数据可以包括但不限于需要绘制第一类业务控件的图形数据,包括顶点数据、纹理数据、着色器程序等,以及在渲染第一类业务控件时,可能需要进行各种临时计算和数据操作,例如顶点变换、纹理采样、像素计算等。同理,第二渲染内存是指用于存储与第二类业务控件相关联的第二数据的内存,该第二数据也可以包括但不限于第一数据所包括的内容,这里将不再进行赘述。
需要说明的是,在窗口内存区域为第一类渲染引擎创建的第一渲染内存,也可以称之为在窗口内存区域为第一类渲染引擎添加一块属于第一类渲染引擎的画布(比如,画布X1),那么第一类渲染引擎渲染得到的内容均会显示在画布X1上,换言之也显示在窗口内存区域。同理,在窗口内存区域为第二类渲染引擎创建的第二渲染内存,也可以称之为在窗口内存区域为第二类渲染引擎添加一块属于第二类渲染引擎的画布(比如,画布X2),那么第二类渲染引擎渲染得到的内容均会显示在画布X2上,换言之也显示在窗口内存区域。
进一步,请参见图4,图4是本申请实施例提高的一种为渲染引擎创建渲染内存的示意图。如图4所示的步骤,可以由计算机设备执行,该计算机设备可以为上述图1所对应实施中的终端设备集群中的任意一个终端设备,例如,终端设备10a。
如图4所示,计算机设备获取到窗口创建事件时,基于窗口创建事件获取渲染策略,然后对该渲染策略进行判断,即判断渲染策略是否为多引擎渲染策略。进一步,若渲染策略是多引擎渲染策略,那么计算机设备将获取多引擎渲染策略所指示的多个渲染引擎,并为多个渲染引擎创建对应的渲染内存,在本申请实施例中,以第一类渲染引擎和第二类渲染引擎为例。如图4所示,计算机设备对第一类渲染引擎初始化,进而在窗口内存区域为第一类渲染引擎创建渲染内存,且将为第一类渲染引擎创建的渲染内存称之为第一渲染内存。应当理解,该第一渲染内存可以对应于上述图2所对应实施例中的渲染内存200a。此外,计算机设备对第二类渲染引擎初始化,进而在窗口内存区域为第二类渲染引擎创建渲染内存,且将为第二类渲染引擎创建的渲染内存称之为第二渲染内存。应当理解,该第二渲染内存可以对应于上述图2所对应实施例中的渲染内存200b。
反之,若渲染策略不为多引擎渲染策略,换言之,即渲染策略为单引擎渲染策略,那么计算机设备将获取单引擎渲染策略所指示的渲染引擎,即第三类渲染引擎,其中,应当理解,这里的第三类渲染引擎也可以包括第一类渲染引擎或者第二类渲染引擎。进一步,计算机设备对第三类渲染引擎初始化,进而在窗口内存区域为第三类渲染引擎创建渲染内存,且将为第三类渲染引擎创建的渲染内存称之为第三渲染内存。
应当理解,上述第一渲染内存、第二渲染内存以及第三渲染内存均为窗口内存区域中的内存,因此,调用第一类渲染引擎、第二类渲染引擎以及第三类渲染引擎渲染得到的渲染内容均存储在窗口内存区域,从而可以在同一业务窗口进行显示。由此,本申请实施例可以对同一业务窗口的不同业务控件,调用不同的渲染引擎进行渲染且展示,丰富了对同一业务窗口进行渲染的渲染多样性。
应当理解,本申请实施例提供的一种窗口渲染方法,可以运用在第一业务系统中,在本申请实施例中,将第一业务系统自带的渲染引擎统称为第二类渲染引擎。其中,自带的渲染引擎是指在第一业务系统中,不需要额外部署或者安装的渲染引擎,自带的渲染引擎包含在第一业务系统的核心组件中,无需额外安装或配置。应当理解,第一业务系统可以包括多个业务系统,比如,Windows系统和安卓(Android)系统等,在本申请实施例中,将不对第一业务系统的系统种类进行限定。
其中,在一种可行的实施方式中,上述第一业务系统可以包括Windows系统。应当理解,Windows系统具备自带的渲染引擎,在Windows系统中,自带的渲染引擎是指不需要进行额外部署或者安装即可使用的渲染引擎。将Windows系统自带的渲染引擎称之为第二类渲染引擎,且该第二类渲染引擎可以包括但不限于以下几种:
1、GDI(Graphics Device Interface):GDI是Windows系统中最早的渲染引擎之一,用于处理2D图形渲染。它提供了一套应用程序编程接口(Application ProgrammingInterface,API),允许开发人员绘制图形、文本、图像等元素,并将其呈现在屏幕上。GDI在较早的Windows版本中被广泛使用,但随着技术的发展,其性能和功能已经逐渐被后来的渲染引擎所取代。
2、GDI+(Graphics Device Interface Plus):GDI+是GDI的升级版本,引入了更多的功能和改进。它提供了更高质量的图形渲染、更多的图形对象和效果,以及对Alpha通道的支持。GDI+在WindowsXP和后续版本中得到了广泛的应用,尤其在图形界面应用程序中。
3、Direct2D:Direct2D是Microsoft DirectX API的一部分,用于高性能的2D图形渲染。它提供了硬件加速的图形渲染功能,可以利用图形处理器(graphics processingunit,GPU)加速渲染,从而实现更快的图形绘制和更平滑的动画效果。
4、Direct3D:Direct3D也是Microsoft DirectX API的一部分,主要用于3D图形渲染。尽管它主要是针对3D图形的,但Direct3D也可以用于一些2D图形渲染任务,并且在某些情况下具有更高的性能。Direct3D在游戏开发和图形密集型应用程序中得到了广泛的应用,尤其是对于需要复杂的图形效果和实时渲染的应用。
应当理解,上述将Windows系统自带的渲染引擎称之为第二类渲染引擎,那么在本申请实施例中,将不属于Windows系统自带的渲染引擎称之为第一类渲染引擎。其中,不属于Windows系统自带的渲染引擎是指额外部署在Windows系统中,需要通过指定引擎接口调用到的渲染引擎。举例来说,第一类渲染引擎可以包括但不限于以下几种:
1、Unity 3D:Unity 3D是一个广泛使用的跨平台游戏开发引擎,提供了一套完整的创建二维和三维图形内容的工具。Unity 3D提供了可视化的编辑器、物理引擎、支持多种编程语言(主要是C#)的脚本接口,以及大量的资源和插件支持,非常适合游戏开发和实时应用程序开发。
2、Unreal Engine:Unreal Engine 是一款由Epic Games开发的高度专业化的游戏引擎,也适用于创建复杂的三维交互环境。它被广泛应用于游戏开发、电影制作、建筑可视化等领域。Unreal Engine提供高度的可视化编辑功能、先进的光线处理技术、完整的物理模拟及动画系统,和蓝图可视化脚本系统,允许开发者在不编写代码的情况下创建复杂逻辑。
3、Skia:Skia是Android系统默认的2D渲染引擎,由Google开发和维护。它是一个开源的跨平台图形库,用于处理2D图形渲染、文本渲染等任务。Skia使用C++编写,具有高效、可扩展的特性,能够在各种硬件设备上提供平滑的图形渲染效果。在Android系统中,Skia负责界面绘制、图形处理以及许多应用中的视觉效果。
其中,在本申请实施例中,以第一业务系统为Windows系统为例进行举例阐述。此外,由于上述业务窗口中包含多个业务控件,那么,为区分多个业务控件的类别,需要采取相应的措施进行识别,进而才可以基于业务控件的类别,去确定用于渲染的渲染引擎。
在本申请实施例中,在获取到针对业务窗口的窗口创建事件时,会对业务窗口中的多个业务控件进行标识配置。换言之,即在获取到应用程序发送的窗口创建事件时,开发人员会在编写代码事件时,为不同的业务控件配置对应的控件标识,以及配置不同控件标识所对应的引擎接口。比如,若业务窗口包括业务控件C1、业务控件C2以及业务控件C3,那么可以为业务控件C1配置控件标识D1,并配置控件标识D1与引擎接口E1之间的绑定关系;为业务控件C2配置控件标识D2,并配置控件标识D2与引擎接口E2之间的绑定关系;为业务控件C3配置控件标识D3,并配置控件标识D3与引擎接口E3之间的绑定关系。其中,应当理解,控件标识D1、控件标识D2以及控件标识D3可以为同一控件标识,那么,引擎接口E1、引擎接口E2以及引擎接口E3也可以为同一引擎接口。这意味着,对于不同的业务控件,可以配置相同的控件标识,也可以调用相同渲染引擎进行渲染。
其中,为业务控件配置控件标识的步骤,具体可以包括:计算机设备从窗口创建事件中获取业务窗口包含的多个业务控件,进而基于窗口创建事件确定业务窗口相关联的控件标识配置策略;应当理解,多个业务控件至少包括第一类业务控件和第二类业务控件;进一步的,计算机设备基于控件标识配置策略,配置第一类业务控件对应的第一类控件标识,并配置第一类控件标识与第一类渲染引擎接口之间的第一映射绑定关系;同理,计算机设备基于控件标识配置策略,配置第二类业务控件对应的第二类控件标识,并配置第二类控件标识与第二类渲染引擎接口之间的第二映射绑定关系。
应当理解,控件标识配置策略是由窗口创建事件所指定的,业务系统(即Windows系统)在负责创建应用程序或者网页的主窗口,生成窗口创建事件时,该窗口创建事件便会指定业务窗口中包含的多个业务控件,以及对多个业务控件进行标识配置的配置策略,该配置策略即为控件标识配置策略。
应当理解,在本申请实施例中,该控件标识配置策略可以是基于业务控件的控件类别,为业务控件进行标识配置的策略。比如,多个业务控件按照控件类别可以分为输入控件、展示控件、交互控件以及导航控件等,输入控件是用于接收用户输入的控件,如文本输入框、密码输入框、复选框、单选框等。展示控件是用于展示信息或内容的控件,如文本标签、图像、图标、列表、表格等。交互控件是用于用户与应用程序进行交互的控件,如按钮、开关、滑块、进度条等。导航控件是用于导航和组织应用程序界面的控件,如导航栏、标签栏、选项卡等。那么,在本申请实施例中,可以选取输入控件作为第一类业务控件,交互控件作为第二类业务控件。
那么,针对第一类业务控件(即输入控件),开发人员在进行代码编写时,可以为第一类业务控件配置第一类控件标识,该第一类控件标识可以为一个字符串或者数字。比如,第一类控件标识为控件标识M,其中,控件标识M可以为一个控件标识集合。同理,针对第二类业务控件(即交互控件),开发人员在进行代码编写时,可以为第二类业务控件配置第二类控件标识,该第二类控件标识也可以为一个字符串或者数字。比如,第二类控件标识为控件标识N,其中,控件标识N也可以为一个控件标识集合。
此外,控件标识配置策略还可以记录控件标识所对应的引擎接口,进而为控件标识配置和对应的引擎接口之间的绑定关系。在本申请实施例中,将第一类控件标识与第一类渲染引擎接口之间的绑定关系称之为第一映射绑定关系。该第一映射绑定关系是指第一类控件标识与第一类渲染引擎接口之间建立的直接映射关系,换言之,第一类控件标识与第一类渲染引擎接口是直接相关联的,这种映射关系允许开发人员通过该第一类控件标识来快速操作对应的引擎接口(即第一类渲染引擎接口)。应当理解的是,第二映射绑定关系即是指第二类控件标识与第二类渲染引擎接口之间建立的直接映射关系,这里将不再进行赘述。
应当理解,这里的第一类渲染引擎接口对应的渲染引擎为第一类渲染引擎,第一类渲染引擎可以为上述所阐述的渲染引擎。同理,第二类渲染引擎接口对应的渲染引擎为第二类渲染引擎,第二类渲染引擎可以为上述所阐述的渲染引擎。在进行渲染时,计算机设备可以通过渲染引擎接口调用对应的渲染引擎来进行渲染。
此外,针对于上述第一类业务控件,还可以细分为多个业务控件,比如,第一类业务控件包括第一业务控件和第二业务控件。具体的,计算机设备还基于控件标识配置策略,配置第一业务控件对应的第一控件标识,并配置第一控件标识与第一类子渲染引擎接口之间的第一子映射绑定关系;进一步,计算机设备还基于控件标识配置策略,配置第二业务控件对应的第二控件标识,并配置第二控件标识与第二类子渲染引擎接口之间的第二子映射绑定关系;应当理解,这里的第一子映射绑定关系和第二子映射绑定关系均属于第一映射绑定关系。
其中,应当理解,第一类子渲染引擎接口和第二类渲染引擎接口均属于第一类渲染引擎接口。
应当理解,以上述第一类业务控件为输入控件为例,那么第一业务控件可以为文本输入框,第二业务控件可以为复选框。在本申请实施例中,仅仅是对第一类业务控件为输入控件为例,将不对第一类业务控件进行限定。那么,计算机设备可以基于控件配置策略为第一业务控件(即文本输入框)配置第一控件标识,且基于控件配置策略为第二业务控件(即复选框)配置第二控件标识,若以上述第一类控件标识为控件标识M为例,那么该第一控件标识和第二控件标识均属于控件标识M中的控件标识,比如第一控件标识为控件标识M1,第二控件标识为控件标识M2。具体的,针对第一业务控件(即文本输入框)的第一控件标识(即控件标识M1)可以为“txtUsername”,针对第二业务控件(即复选框)的第二控件标识(即控件标识M2)可以为“agtxtUsername”。
进一步,请参加图5,图5是本申请实施例提供的一种为业务控件配置控件标识的示意图。如图5所示,第一类业务控件包括控件50a和控件50b,其中控件50a可以为上述文本输入框,控件50b可以为上述复选框。
进一步,计算机设备为控件50a和控件50b分别配置控件标识,具体的,为控件50a配置控件标识51a,为控件50b配置控件标识51b。应当理解,控件标识51a和控件标识51b均属于第一类控件标识。进一步,计算机设备为控件标识51a和控件标识51b配置对应的引擎接口,即如图5所示,配置控件标识51a与引擎接口52a之间的映射绑定关系,且配置控件标识51b与引擎接口52b之间的映射绑定关系。其中,应当理解,引擎接口52a可以对应于上述第一类子渲染引擎接口,引擎接口52b可以对应于上述第二类子渲染引擎接口,且引擎接口52a和引擎接口52b均属于第一类渲染引擎接口。
进一步,计算机设备为控件50c配置控件标识,该控件50c可以为上述交互控件。具体的,为控件50c配置控件标识51c。应当理解,控件标识51c属于第二类控件标识。进一步,计算机设备为控件标识51c配置对应的引擎接口,即如图5所示,配置控件标识51c与引擎接口52c之间的映射绑定关系。其中,应当理解,引擎接口52c属于第二类渲染引擎接口。
应当理解,通过为第一类业务控件和第二类业务控件配置相应的控件标识,以及配置控件标识和对应引擎接口的映射绑定关系,可以在后续对第一类业务控件和第二类业务控件进行渲染时,基于对应的控件标识,通过对应的引擎接口调用渲染引擎进行渲染。这意味着,本申请实施例能够基于业务控件的控件类别和特点,选择对应的渲染引擎进行渲染,从而提升控件渲染时的渲染效果。
在一种可选的实施例中,控件标识配置策略还可以分为配置控件标识和不配置控件标识。可以理解的是,为业务控件配置控件标识的步骤,具体可以包括:计算机设备从窗口创建事件中获取业务窗口包含的多个业务控件,进而基于窗口创建事件确定业务窗口相关联的控件标识配置策略;应当理解,多个业务控件至少包括第一类业务控件和第二类业务控件;进一步的,计算机设备基于控件标识配置策略,配置第一类业务控件对应的第一类控件标识,并配置第一类控件标识与第一类渲染引擎接口之间的第一映射绑定关系;此外,计算机设备基于控件标识配置策略,不为第二类业务控件配置控件标识,直接配置第二类业务控件与第二类渲染引擎接口之间的第三映射绑定关系。
应当理解,上述图4和图5所对应实施例是在对业务窗口中的业务控件进行渲染之前的预置步骤,即在窗口显示区域创建渲染内存,以及为业务控件配置控件标识等。应当理解,在正式进行渲染时,计算机设备还需要判断多个业务控件中的每一个业务控件的控件类别,即判断多个业务控件中的每一个业务控件是属于第一类业务控件还是第二类业务控件。
其中,计算机设备进行控件类别判断的具体步骤,可以包括:计算机设备获取业务窗口中的多个业务控件,并且从多个业务控件中获取目标业务控件,识别目标业务控件的控件标识,从而得到目标业务控件对应的标识识别结果;进一步的,若标识识别结果指示目标业务控件的控件标识属于第一类控件标识,则可以确定目标业务控件属于第一类控件标识对应的第一类业务控件。反之,若标识识别结果指示目标业务控件的控件标识不属于第一类控件标识,则确定目标业务控件的控件标识属于第二类控件标识,将目标业务控件确定为第二类控件标识对应的第二类业务控件。
应当理解,上述目标业务控件可以为业务窗口中的多个业务控件中的任意一个业务控件,通过将多个业务控件中的每一个业务控件均作为目标业务控件,再对目标业务控件进行标识识别,可以确定多个业务控件中每一个业务控件的控件类别,从而选取对应的渲染引擎进行渲染。
请参见图6,图6是本申请实施例提供的一种确定目标业务控件的控件类别的示意图。如图6所示的控件60a可以为多个业务控件中的任意一个业务控件,即上述目标业务控件。
进一步,计算机设备对控件60a进行控件标识识别操作,进而通过对控件60a所携带的唯一的控件标识进行识别,得到标识识别结果61a。应当理解,由于计算机设备在预置步骤中为多个业务控件配置了相应的控件标识,那么计算机设备中存储着一套清晰的标识识别策略,进而可以基于标识识别61a进行判断,判断控件60a的控件标识是否属于第一类控件标识。可以理解的是,若控件60a的控件标识属于第一类控件标识,即可以确定控件60a属于第一类业务控件。反之,若控件60a的控件标识不属于第一类控件标识,即可以确定控件60a的控件标识属于第二类控件标识,进而可以确定控件60a属于第二类业务控件。
步骤S102,调用第一类渲染引擎对第一类业务控件进行业务渲染,将第一类业务控件所对应的第一渲染内容存储至第一渲染内存;
需要说明的是,如何确定第一类业务控件的渲染引擎为第一类渲染引擎,这需要通过第一类业务控件所对应的控件标识进行确定。具体的,上述图6所对应实施例阐述了如何对业务控件进行标识识别,这里将不再进行赘述。
应当理解,计算机设备调用第一类渲染引擎对第一类业务控件进行渲染,具体可以包括以下步骤:计算机设备可以基于第一类业务控件对应的第一类控件标识,获取与第一类控件标识相关联的第一映射绑定关系,从而基于第一映射绑定关系确定第一类业务控件对应的第一类渲染引擎接口;进一步的,计算机设备可以在第一业务系统中,通过第一类渲染引擎接口调用第一类渲染引擎对第一类业务控件所对应的控件内容进行业务渲染,从而得到第一类业务控件所对应的第一渲染内容;进一步,计算机设备将第一渲染内容存储至第一渲染内存。
应当理解,第一业务系统为业务窗口所在的显示终端的终端系统,第一类渲染引擎为适配于多个业务系统的渲染引擎,即第一类渲染引擎可以应用于多个业务系统。其中,以第一业务系统为Windows系统为例,那么第一类渲染引擎可以包括上述步骤S101中对Windows系统的第一类渲染引擎的描述,即第一类渲染引擎可以包括但不限于Skia、Unity3D以及Unreal Engine等渲染引擎。比如,Skia可以应用于Windows系统,还可以应用于Android系统。
举例来说,若第一类业务控件为上述的输入控件,在图5所对应实施例中,为该第一类业务控件(即输入控件)配置的控件标识为控件标识M,且配置控件标识M与Skia引擎接口之间的第一映射绑定关系。应当理解,Skia引擎接口对应的渲染引擎即为Skia渲染引擎。那么,在Windows系统中,计算机设备会通过Skia引擎接口调用Skia渲染引擎对该输入控件所对应的控件内容进行业务渲染。其中,输入控件所对应的控件内容可以包括用于描述输入控件的文字内容,比如“请输入”的提示内容,还可以包括单行或者多行文本线框等。进一步,Skia渲染引擎进行渲染,得到上述输入控件所对应的控件内容,上述输入控件的文字内容以及单行或者多行文本线框等即为第一渲染内容。
此外,应当理解,第一类业务控件还可以包括第一业务控件和第二业务控件。计算机设备可以对第一业务控件和第二业务控件进行标识识别操作,进而可以基于它们对应的控件标识,确定第一业务控件和第二业务控件所对应的引擎接口。具体的,计算机设备基于第一业务控件对应的第一控件标识,获取与第一控件标识相关联的第一子映射绑定关系,并基于第一子映射绑定关系确定第一业务控件对应的第一类子渲染引擎接口;进一步的,计算机设备在第一业务系统中,通过第一类子渲染引擎接口调用第一类子渲染引擎对第一业务控件所对应的控件内容进行业务渲染,得到第一业务控件所对应的第一子渲染内容。同理,计算机设备基于第二业务控件对应的第二控件标识,获取与第二控件标识相关联的第二子映射绑定关系,并基于第二子映射绑定关系确定第二业务控件对应的第二类子渲染引擎接口;进一步的,计算机设备在第一业务系统中,通过第二类子渲染引擎接口调用第二类子渲染引擎对第二业务控件所对应的控件内容进行业务渲染,得到第二业务控件所对应的第二子渲染内容。
其中,应当理解,第一类子渲染引擎接口和第二类子渲染引擎接口均属于第一类渲染引擎接口。第一子渲染内容和第二子渲染内容均属于第一渲染内容。
举例来说,若第一类业务控件为上述的输入控件,第一类业务控件(即输入控件)包括第一业务控件和第二业务控件,第一业务控件为文本输入框,第二业务控件为复选框。假设在步骤S101中,为该第一业务控件(即文本输入框)配置的控件标识为控件标识M1,且配置控件标识M1与Skia引擎接口(即第一类子渲染引擎接口)之间的第一子映射绑定关系。应当理解,Skia引擎接口对应的渲染引擎即为Skia渲染引擎(即第一类子渲染引擎)。那么,在Windows系统中,计算机设备会通过Skia引擎接口调用Skia渲染引擎对该文本输入框所对应的控件内容进行业务渲染。其中,文本输入框所对应的控件内容可以包括多行文本线框等。进而,Skia渲染引擎进行渲染,得到上述文本输入框所对应的控件内容,上述文本输入框的多行文本线框即为第一子渲染内容。此外,假设在步骤S101中,为该第二业务控件(即复选框)配置的控件标识为控件标识M2,且配置控件标识M2与Unity 3D引擎接口(即第二类子渲染引擎接口)之间的第二子映射绑定关系。应当理解,Unity 3D引擎接口对应的渲染引擎即为Unity 3D渲染引擎(即第二类子渲染引擎)。那么,在Windows系统中,计算机设备会通过Unity 3D引擎接口调用Unity 3D渲染引擎对该复选框所对应的控件内容进行业务渲染。其中,复选框所对应的控件内容可以包括复选按钮等。进而,Unity 3D渲染引擎进行渲染,得到上述复选框所对应的控件内容,上述复选框的复选按钮即为第二子渲染内容。
可选的,步骤S101还可以配置控件标识M2与Skia引擎接口(即第二类子渲染引擎接口)之间的第二子映射绑定关系。进一步,通过Skia引擎接口调用Skia渲染引擎对第二业务控件(即复选框)进行业务渲染。
由此,应当理解,对于不同的业务控件,尽管配置了不同的控件标识,但是也可以为不同的控件标识配置与同一引擎接口之间的映射绑定关系。换言之,不同的业务控件可以使用不同的渲染引擎进行渲染,也就是说不同的业务控件使用什么样的渲染引擎渲染,都是由业务控件所配置的控件标识,以及控件标识与引擎接口之间的映射绑定关系所确定。
比如,控件标识配置策略,可以根据业务控件的业务功能,选择为第一类业务控件配置控件标识与对应的引擎接口的映射绑定关系,从而调用不同的第一类渲染引擎。举例来说,上述Skia、Unity 3D以及Unereal Engine等第一类渲染引擎,Skia更适用于高性能的2D图像渲染,那么Skia在渲染导航控件等具有更好的渲染效果,可以配置导航控件的控件标识与Skia引擎接口的映射绑定关系。而Unity 3D和Unereal Engine更适用于开发高质量的3D游戏和交互体验,那么对于游戏窗口的业务控件,可以调用Unity 3D或者UnerealEngine进行渲染。
由此,应当理解,通过为不同的业务控件配置不同的控件标识,以及控件标识与引擎接口之间的映射绑定关系,可以在业务控件渲染阶段,调用合适的渲染引擎进行渲染,进而可以提高控件的渲染质量。
步骤S103,调用第二类渲染引擎对第二类业务控件进行业务渲染,将第二类业务控件所对应的第二渲染内容存储至第二渲染内存;
需要说明的是,如何确定第二类业务控件的渲染引擎为第二类渲染引擎,这需要通过第二类业务控件所对应的控件标识进行确定。具体的,上述图6所对应实施例阐述了如何对业务控件进行标识识别,这里将不再进行赘述。
应当理解,计算机设备调用第二类渲染引擎对第二类业务控件进行渲染,具体可以包括:计算机设备基于第二类业务控件对应的第二类控件标识,获取与第二类控件标识相关联的第二映射绑定关系,并基于第二映射绑定关系确定第二类业务控件对应的第二类渲染引擎接口;进一步的,计算机设备在第一业务系统中,通过第二类渲染引擎接口调用第二类渲染引擎对第二类业务控件所对应的控件内容进行业务渲染,进而得到第二类业务控件所对应的第二渲染内容;进一步的,计算机设备将第二渲染内容存储至第二渲染内存。
举例来说,若第二类业务控件为交互控件,在图5所对应实施例中,为该第二类业务控件(即交互控件)配置的控件标识为控件标识N,且配置控件标识N与GDI引擎接口之间的第二映射绑定关系。应当理解,GDI引擎接口对应的渲染引擎为GDI渲染引擎。那么,在Windows系统中,计算机设备会通过GDI引擎接口调用GDI渲染引擎对该交互控件所对应的控件内容进行业务渲染。其中,交互控件所对应的控件内容可以包括按钮的图片和形状等,比如五角星或者长方形等。进一步,GDI渲染引擎进行渲染,得到上述交互控件所对应的控件内容,上述交互控件的按钮的图片和形状等即为第二渲染内容。
其中,上述仅仅是以第二类渲染引擎为GDI渲染引擎为例进行阐述,可选的,第二类渲染引擎还可以包括上述Windows所自带的渲染引擎中的任意一个渲染引擎。
此外,需要说明的是,第二类业务控件也可以包括多个业务控件,比如,H个业务控件,在本申请实施例中,通过图5所对应实施例对第二类业务控件进行控件标识配置,那么该H个业务控件分别配置了不同的控件标识,且也为不同的业务标识配置了不同的渲染引擎接口。应当理解,与第一类业务控件相同的是,该H个业务控件尽管配置了不同的控件标识,但是也可以为不同的控件标识配置与同一引擎接口之间的映射绑定关系。换言之,该H个业务控件可以使用不同的渲染引擎进行渲染,也可以使用相同的渲染引擎进行渲染,这都取决于窗口创建事件中包含的控件标识配置策略。也就是说不同的业务控件使用什么样的渲染引擎渲染,都是由业务控件所配置的控件标识,以及控件标识与引擎接口之间的映射绑定关系所确定。
需要说明说的是,控件标识配置策略,可以根据业务控件的业务功能,选择为第一类业务控件配置控件标识与对应的引擎接口的映射绑定关系,从而调用不同的第一类渲染引擎。
由此,应当理解,通过为不同的业务控件配置不同的控件标识,以及控件标识与引擎接口之间的映射绑定关系,可以在业务控件渲染阶段,调用合适的渲染引擎进行渲染,进而可以提高控件的渲染质量。
步骤S104,在渲染输出业务窗口所对应的窗口画面时,基于第一渲染内容和第二渲染内容,生成窗口画面,将窗口画面输出显示在业务窗口所对应的显示区域。
应当理解,上述第一渲染内容存储在第一渲染内存中,上述第二渲染内容存储在第二渲染内存中,且第一渲染内存和第二渲染内存均为窗口内存区域的内存。这意味着第一渲染内容和第二渲染内容均存储在窗口内存区域,因此计算机设备的显示控制器可以接收到窗口内存区域中的渲染内容(即第一渲染内容和第二渲染内容),并将其转换为显示信号,显示器将接收到的显示信号转换为可见的图像,生成窗口画面,并在显示区域进行显示。这样,用户就可以看见该业务窗口的渲染内容了。
其中,应当理解,上述步骤S102和步骤S103是没有先后顺序的,因此计算机设备可以在调用第一类渲染引擎对第一类业务控件进行渲染的同时,调用第二类渲染引擎对第二类业务控件进行渲染,由此可以减少渲染处理时长,提高不同业务控件进行渲染时的渲染效率。
由此可见,本申请实施例,计算机设备可以获取包含多个业务控件的业务窗口,并且将业务窗口所对应的内存区域确定为窗口内存区域;应当理解,这里的多个业务控件至少包括与第一类渲染引擎相关联的第一类业务控件和与第二类渲染引擎相关联的第二类业务控件。此外,计算机设备还会在窗口内存区域分别为第一类渲染引擎创建第一渲染内存,以及为第二类渲染引擎创建第二渲染内存,从而可以将第一类渲染引擎和第二类渲染引擎进行业务渲染时得到的渲染内容,均存储在同一个内存(即上述窗口内存区域)中。此外,计算机设备还会对第一类业务控件和第二类业务控件配置对应的控件标识,从而在对第一类业务控件和第二类业务控件进行渲染时,可以基于第一类业务控件对应的第一类控件标识,调用第一类渲染引擎对第一类业务控件进行业务渲染,将第一类业务控件所对应的第一渲染内容存储至第一渲染内存;计算机设备基于第二类业务控件对应的第二类控件标识,调用第二类渲染引擎对第二类业务控件进行业务渲染,将第二类业务控件所对应的第二渲染内容存储至第二渲染内存。随后,计算机设备可以在渲染输出业务窗口所对应的窗口画面时,基于第一渲染内容和第二渲染内容,生成窗口画面,从而将窗口画面输出显示在业务窗口所对应的显示区域。由此可见,本申请实施例通过统一不同渲染引擎的渲染内存,即在窗口显示区域创建不同渲染引擎的渲染内存,可以实现使用不同渲染引擎对不同的业务控件进行业务渲染,并且将得到的渲染内容(比如,上述第一渲染内容和第二渲染内容)在同一业务窗口进行显示。因此,本申请实施例可以通过不同的渲染引擎实现对同一业务窗口中的不同的业务控件进行染,进而可以在确保渲染质量的同时,提升整体渲染效率。
应当理解,上述步骤S102-步骤S104所对应实施例均是以第一业务系统为Windows系统为例进行阐述的。可选的,本申请实施例所提供的窗口渲染方法,同时适用于其他的业务系统,比如,其他的业务系统可以包括但不限于系统1、系统2以及系统3等等业务系统。其中,系统1可以为Android系统,系统2可以为Linux系统,系统3可以为iOS系统。此处将其他的业务系统选取Android系统为例进行阐述。也就是说,此时第一业务系统为Android系统,Android系统具备自带的渲染引擎,在Android系统中,自带的渲染引擎是指不需要进行额外部署或者安装即可使用的渲染引擎。可以包括但不限于以下几种:
1、Skia:Skia是Android系统默认的2D渲染引擎,对Skia的具体介绍可以参见上述实施例对Skia的介绍,这里将不再进行赘述。
2、Vulkan:Vulkan是一种新一代的渲染引擎,旨在提供更高效、更低级别的图形和计算控制。它提供了比OpenGL ES更直接的硬件访问,并允许更多的并行化,从而提供更高的性能和更低的延迟。
应当理解,在本申请实施例中,将Android系统自带的渲染引擎称之为第二类渲染引擎,此外,将不属于Android系统自带的渲染引擎称之为第一类渲染引擎。其中,不属于Android系统自带的渲染引擎是指额外部署在Android系统中,需要通过指定引擎接口调用到的渲染引擎。举例来说,第一类渲染引擎可以包括但不限于以下几种:
1、OpenGL ES:OpenGL ES(OpenGL for Embedded Systems)用于进行2D和3D图形渲染。Android系统提供了对OpenGL ES的支持,允许开发人员利用GPU进行高性能的图形渲染。开发人员可以使用OpenGL ES来创建复杂的图形效果、实现流畅的动画以及开发图形密集型应用程序,如游戏。
2、Unreal Engine,其中,对Unreal Engine引擎的阐述可以参见上述对UnrealEngine引擎的阐述,这里将不再进行赘述。
3、Unity 3D,其中对Unity 3D引擎的阐述可以参见上述对Unity 3D引擎的阐述,这里也将不再进行赘述。
应当理解,在Android系统中,对业务窗口中的多个业务控件进行业务渲染,从而得到对应的渲染内容,并基于渲染内容生成窗口画面的具体实施方式,与在Windows系统中的具体实施方式是相同的,具体的,可以参见图3所对应实施例中步骤S101-步骤S104的具体阐述,这里将不再进行阐述。
此外,上述其他业务系统(例如,Linux系统)中,对业务窗口中的多个业务控件进行业务渲染,从而得到对应的渲染内容,并基于渲染内容生成窗口画面的具体实施方式,也与在Windows系统中的具体实施方式是相同的,具体的,可以参见图3所对应实施例中步骤S101-步骤S104的具体阐述,这里也将不再进行阐述。
进一步,请参见图7,图7是本申请实施例提供的一种判断渲染引擎的示意图。如图7所示,计算机设备为第一类业务控件配置第一类控件标识以及为第二类业务控件配置第二类业务标识的过程,具体可以参见上述图5所对应实施例中的具体阐述,这里将不再进行赘述。应当理解,还包括为第一类控件标识配置与第一类渲染引擎接口之间的映射绑定关系,以及为第二类控件标识配置与第二类渲染引擎接口之间的映射绑定关系。
进一步的,在配置好之后,上述业务控件与控件标识之间的配置关系,以及控件标识与引擎接口之间的映射绑定关系,将在窗口生命周期内消息循环。也就是说,在该业务控件从创建到销毁的整个过程中,上述配置均会循环生效。
进一步,进入绘制流程,需要绘制控件70c,首先计算机设备会对控件70c进行标识识别,具体的识别步骤可以参见图6所对应实施例的阐述,这里将不再进行赘述。
应当理解,若控件70c为第一类业务控件,由于为第一类控件标识配置了与第一类渲染引擎接口之间的映射绑定关系,此时确定控件70c使用第一类渲染引擎接口。反之,若控件70c为第二类业务控件,由于为第二类控件标识配置了与第二类渲染引擎接口之间的映射绑定关系,此时确定控件70c使用第二类渲染引擎接口。进一步,计算机设备通过控件70c所对应的引擎接口,调用底层渲染引擎进行渲染。
进一步,请参见图8,图8是本申请实施例提供的一种生成业务窗口并进行显示的过程意图。如图8所示,计算机设备在接收业务系统(例如,Windows系统)所发出的窗口创建事件时,将会从窗口创建事件中获取渲染策略。
进一步,计算机设备会对该渲染策略进行判断,判断该渲染策略是否为多引擎渲染策略,若是,那么计算机设备将会获取多引擎渲染策略所指示的第一类渲染引擎和第二类渲染引擎。进一步,计算机设备初始化第一类渲染引擎,并在窗口内存区域为第一类渲染引擎窗口第一渲染内存。此外,计算机设备初始化第二类渲染引擎,并在窗口内存区域创建第二渲染内存。应当理解,若上述渲染策略不为多引擎渲染策略,那么计算机设备直接初始化第二类渲染引擎,该第二类渲染引擎即为第一业务系统中自带的渲染引擎,且也在窗口内存区域为第二类渲染引擎创建第二渲染内存。
进一步,计算机设备对业务窗口中所包含的业务控件进绘制,例如,绘制控件R。计算机设备首先会判断控件R是否使用第一类渲染引擎进行渲染,应当理解,该确定过程是基于控件R所对应的控件标识所确定的。具体的,可以参见上述步骤S101-步骤S103的阐述,这里将不再进行赘述。进一步的,若控件R是由第一类渲染引擎进行渲染,那么计算机设备会通过第一类渲染引擎接口调用第一类渲染引擎进行渲染,从而得到第一渲染内容,进而生成窗口画面。反之,若控件R不是由第一类渲染引擎进行渲染,那么计算机设备会通过第二类渲染引擎接口调用第二类渲染引擎进行渲染,从而得到第二渲染内容,进而生成窗口画面。随后,计算机设备在会在显示区域显示该窗口画面。
由此可见,本申请实施例提供的窗口渲染方法,通过在窗口内存区域分别创建属于第一类渲染引擎的第一渲染内存,以及属于第二类渲染引擎的第二渲染内存,可以使得第一类渲染引擎渲染的控件和第二类渲染引擎渲染的控件,都存储在窗口内存区域,从而通过混合渲染结果,可以在显示区域进行显示。此外,不同渲染引擎进行渲染时,二者产生的渲染内容将不会互相影响,由此,可以提升同一业务窗口中,不同业务控件的渲染效率。
进一步,请参见图9,图9是本申请实施例提供的一种对业务进行渲染的分层架构图。该分层架构图分为三层,分别为如图9所示的业务层、接口层以及引擎层。其中,业务层主要负责处理用户操作,比如,用户打开一个网页,同步于该打开操作,业务层会创建一个窗口创建事件,用于生成该网页所对应的业务窗口。应当理解,业务层创建的该窗口创建事件,包括业务窗口90A,该业务窗口90A包括控件90a和控件90b。其中,控件90a可以对应于前述第一类业务控件,控件90b可以对应于前述第二类业务控件。进一步,业务层会向接口层发送针对控件90a和控件90b的渲染任务。
应当理解,接口层将对所有的引擎接口进行封装,即将所有的引擎接口均封装为统一接口。进一步,业务层会调用统一接口对上述控件90a和控件90b进行渲染,此时不用区分上述不同的引擎接口。
进一步,由接口层进行判断与控件90a相关联的引擎接口,以及和控件90b相关联引擎接口。应当理解,确定与控件90a和控件90b相关联的引擎接口的具体实施方式,可以参见上述图7所对应实施例,确定控件70c对应的引擎接口的实施方式,这里也将不再进行赘述。如图9所示,通过接口层的判断,确定控件90a对应的引擎接口为引擎接口91a,控件90b对应的引擎接口为引擎接口91b。其中,应当理解,这里的引擎接口91a即为前述第一类渲染引擎接口,引擎接口91b即为前述第二类渲染引擎接口。
进一步,引擎层通过引擎接口91a调用渲染引擎92a进行渲染,得到渲染内容93a。此外,引擎层通过引擎接口91b调用渲染引擎92b进行渲染,得到渲染内容93b。应当理解,这里的渲染引擎92a可以对应于前述第一类渲染引擎,渲染引擎92b可以为前述第二类渲染引擎。应当理解,由于前述图4所对应实施例中,分别为第一类渲染引擎和第二类渲染引擎在窗口内存区域中创建渲染内存,那么这里的渲染内容93a和渲染内容93b均存储在窗口内存区域。进一步,计算机设备可以通过引擎层将渲染内容93a和渲染内容93b进行混合,然后生成窗口画面,从而在显示区域进行显示,即在网页上进行显示。
应当理解,本申请实施例中,通过上述业务层可以获取包含多个业务控件的业务窗口,并且将业务窗口所对应的内存区域确定为窗口内存区域;此外,业务层还会在窗口内存区域分别为第一类渲染引擎创建第一渲染内存,以及为第二类渲染引擎创建第二渲染内存,从而可以将第一类渲染引擎和第二类渲染引擎进行业务渲染时得到的渲染内容,均存储在同一个内存(即上述窗口内存区域)中。此外,业务层还会对第一类业务控件和第二类业务控件配置对应的控件标识。进一步,在进行渲染时,接口层会基于第一类业务控件对应的第一类控件标识,调用第一类渲染引擎对第一类业务控件进行业务渲染,将第一类业务控件所对应的第一渲染内容存储至第一渲染内存;此外,接口层还会基于第二类业务控件对应的第二类控件标识,调用第二类渲染引擎对第二类业务控件进行业务渲染,将第二类业务控件所对应的第二渲染内容存储至第二渲染内存。随后,渲染层可以在渲染输出业务窗口所对应的窗口画面时,基于第一渲染内容和第二渲染内容,生成窗口画面,从而将窗口画面输出显示在业务窗口所对应的显示区域。由此可见,本申请实施例通过统一不同渲染引擎的渲染内存,即在窗口显示区域创建不同渲染引擎的渲染内存,可以实现使用不同渲染引擎对不同的业务控件进行业务渲染,并且将得到的渲染内容(比如,上述第一渲染内容和第二渲染内容)在同一业务窗口进行显示。因此,本申请实施例可以通过不同的渲染引擎实现对同一业务窗口中的不同的业务控件进行染,进而可以在确保渲染质量的同时,提升整体渲染效率。
进一步地,请参见图10,图10是本申请实施例提供的一种窗口渲染装置的结构示意图。如图10所示,该窗口渲染装置可以是运行于计算机设备的一个计算机程序(包括程序代码),例如该窗口渲染装置为一个应用软件,该计算机设备可以是终端设备,比如,图1所示终端设备10a。该装置可以用于执行本申请实施例提供的窗口渲染方法中的相应步骤。如图10所示,该窗口渲染装置可以包括:第一获取模块11、第一渲染模块12、第二渲染模块13以及输出显示模块14;
第一获取模块11,用于获取包含多个业务控件的业务窗口,将业务窗口所对应的内存区域确定为窗口内存区域;多个业务控件至少包括与第一类渲染引擎相关联的第一类业务控件和与第二类渲染引擎相关联的第二类业务控件;第一类渲染引擎所对应的渲染内存为第一渲染内存,第二类渲染引擎所对应的渲染内存为第二渲染内存;第一渲染内存和第二渲染内存均为窗口内存区域中的内存;
第一渲染模块12,用于调用第一类渲染引擎对第一类业务控件进行业务渲染,将第一类业务控件所对应的第一渲染内容存储至第一渲染内存;
第二渲染模块13,用于调用第二类渲染引擎对第二类业务控件进行业务渲染,将第二类业务控件所对应的第二渲染内容存储至第二渲染内存;
输出显示模块14,用于在渲染输出业务窗口所对应的窗口画面时,基于第一渲染内容和第二渲染内容,生成窗口画面,将窗口画面输出显示在业务窗口所对应的显示区域。
其中,第一获取模块11、第一渲染模块12、第二渲染模块13以及输出显示模块14的具体实现方式,可以参见上述图3所对应实施例中对步骤S101-步骤S104的描述,这里将不再继续进行赘述。
可选地,装置还包括:内存创建模块15;
其中,内存创建模块15,包括:渲染策略获取单元151、渲染引擎获取单元152、第一内存创建单元153以及第二内存创建单元154;
渲染策略获取单元151,用于获取针对业务窗口的窗口创建事件,基于窗口创建事件确定与业务窗口相关联的渲染策略;
渲染引擎获取单元152,用于若渲染策略为多引擎渲染策略,则获取多引擎渲染策略所指示的多个渲染引擎;多个渲染引擎至少包括第一类渲染引擎和第二类渲染引擎;
第一内存创建单元153,用于对第一类渲染引擎进行初始化,在窗口内存区域创建第一类渲染引擎所对应的渲染内存,并将第一类渲染引擎所对应的渲染内存作为第一渲染内存;
第二内存创建单元154,用于对第二类渲染引擎进行初始化,在窗口内存区域创建第二类渲染引擎所对应的渲染内存,并将第二类渲染引擎所对应的渲染内存作为第二渲染内存。
其中,渲染策略获取单元151、渲染引擎获取单元152、第一内存创建单元153以及第二内存创建单元154的具体实现方式,可以参见上述图4所对应实施例的描述,这里将不再继续进行赘述。
可选地,装置还包括:控件确定模块16;
控件确定模块16,包括:标记识别单元161以及第一控件确定单元162;
标记识别单元161,用于获取业务窗口中的多个业务控件,从多个业务控件中获取目标业务控件,识别目标业务控件的控件标识,得到目标业务控件对应的标识识别结果;
第一控件确定单元162,用于若标识识别结果指示目标业务控件的控件标识属于第一类控件标识,则确定目标业务控件属于第一类控件标识对应的第一类业务控件。
可选地,控件确定模块16,还包括:第二控件确定单元163;
第二控件确定单元163,用于若标识识别结果指示目标业务控件的控件标识不属于第一类控件标识,则确定目标业务控件的控件标识属于第二类控件标识,将目标业务控件确定为第二类控件标识对应的第二类业务控件。
其中,标记识别单元161、第一控件确定单元162以及第二控件确定单元163的具体实现方式,可以参见上述图6所对应实施例的描述,这里将不再继续进行赘述。
其中,业务窗口所在的显示终端的终端系统为第一业务系统,第一类渲染引擎为适配于多个业务系统的渲染引擎,多个业务系统包括第一业务系统,第一类渲染引擎所对应的接口为第一类渲染引擎接口;
第一渲染模块12,包括:第一接口确定单元121、第一业务渲染单元122以及第一内容存储单元123;
第一接口确定单元121,用于基于第一类业务控件对应的第一类控件标识,获取与第一类控件标识相关联的第一映射绑定关系,基于第一映射绑定关系确定第一类业务控件对应的第一类渲染引擎接口;
第一业务渲染单元122,用于在第一业务系统中,通过第一类渲染引擎接口调用第一类渲染引擎对第一类业务控件所对应的控件内容进行业务渲染,得到第一类业务控件所对应的第一渲染内容;
第一内容存储单元123,用于将第一渲染内容存储至第一渲染内存。
其中,第一接口确定单元121、第一业务渲染单元122以及第一内容存储单元123的具体实现方式,可以参见上述图5所对应实施例中对步骤S102的描述,这里将不再继续进行赘述。
其中,第一类业务控件包括第一业务控件和第二业务控件,第一类业务标识包括第一控件标识和第二控件标识,第一类渲染引擎接口包括第一类子渲染引擎接口和第二类子渲染引擎接口;
第一接口确定单元121,包括:第一子接口确定子单元1211、第二子接口确定子单元1212以及第一接口确定子单元1213;
第一子接口确定子单元1211,用于基于第一业务控件对应的第一控件标识,获取与第一控件标识相关联的第一子映射绑定关系,基于第一子映射绑定关系确定第一业务控件对应的第一类子渲染引擎接口;
第二子接口确定子单元1212,用于基于第二业务控件对应的第二控件标识,获取与第二控件标识相关联的第二子映射绑定关系,基于第二子映射绑定关系确定第二业务控件对应的第二类子渲染引擎接口;
第一接口确定子单元1213,用于将第一类子渲染引擎接口和第二类子渲染引擎接口确定为第一类渲染引擎接口。
其中,第一子接口确定子单元1211、第二子接口确定子单元1212以及第一接口确定子单元1213的具体实现方式,可以参见上述图3所对应实施例中对步骤S102的描述,这里将不再继续进行赘述。
其中,第一类业务控件包括第一业务控件和第二业务控件,第一类渲染引擎包括第一类子渲染引擎和第二类子渲染引擎,第一类子渲染引擎所对应的接口为第一类子渲染引擎接口,第二类子渲染引擎所对应的接口为第二类子渲染引擎接口;
第一业务渲染单元122,包括:第一子业务渲染子单元1221、第二子业务渲染子单元1222以及第一渲染内容确定子单元1223;
第一子业务渲染子单元1221,用于在第一业务系统中,通过第一类子渲染引擎接口调用第一类子渲染引擎对第一业务控件所对应的控件内容进行业务渲染,得到第一业务控件所对应的第一子渲染内容;
第二子业务渲染子单元1222,用于在第一业务系统中,通过第二类子渲染引擎接口调用第二类子渲染引擎对第二业务控件所对应的控件内容进行业务渲染,得到第二业务控件所对应的第二子渲染内容;
第一渲染内容确定子单元1223,用于将第一子渲染内容和第二子渲染内容作为第一渲染内容。
其中,第一子业务渲染子单元1221、第二子业务渲染子单元1222以及第一渲染内容确定子单元1223的具体实现方式,可以参见上述图3所对应实施例中对步骤S102的描述,这里将不再继续进行赘述。
其中,业务窗口是基于业务对象所触发的窗口创建事件所确定的;
可选地,装置还包括:第一标识配置模块17;
第一标识配置模块17,包括:第一配置策略获取单元171以及第一类标识配置单元172;
第一配置策略获取单元171,用于从窗口创建事件中获取业务窗口包含的多个业务控件,基于窗口创建事件确定业务窗口相关联的控件标识配置策略;多个业务控件至少包括第一类业务控件;
第一类标识配置单元172,用于基于控件标识配置策略,配置第一类业务控件对应的第一类控件标识,并配置第一类控件标识与第一类渲染引擎接口之间的第一映射绑定关系。
其中,第一配置策略获取单元171以及第一类标识配置单元172的具体实现方式,可以参见上述图5所对应实施例的描述,这里将不再继续进行赘述。
其中,第一类业务控件包括第一业务控件和第二业务控件,第一类控件标识包括第一控件标识和第二控件标识,第一类渲染引擎接口包括第一类子渲染引擎接口和第二类子渲染引擎接口;
第一类标识配置单元172,还包括:第一标识配置子单元1721、第二标识配置子单元1722以及第一关系确定子单元1723;
第一标识配置子单元1721,用于基于控件标识配置策略,配置第一业务控件对应的第一控件标识,并配置第一控件标识与第一类子渲染引擎接口之间的第一子映射绑定关系;
第二标识配置子单元1722,用于基于控件标识配置策略,配置第二业务控件对应的第二控件标识,并配置第二控件标识与第二类子渲染引擎接口之间的第二子映射绑定关系;
第一关系确定子单元1723,用于将第一子映射绑定关系和第二子映射绑定关系作为第一映射绑定关系。
其中,第一标识配置子单元1721、第二标识配置子单元1722以及第一关系确定子单元1723的具体实现方式,可以参见上述图5所对应实施例的描述,这里将不再继续进行赘述。
其中,业务窗口所在的显示终端的终端系统为第一业务系统,第二类渲染引擎为第一业务系统所携带的渲染引擎,第二类渲染引擎所对应的接口为第二类渲染引擎接口;
第二渲染模块13,包括:第二接口确定单元131、第二业务渲染单元132以及第二内容存储单元133;
第二接口确定单元131,用于基于第二类业务控件对应的第二类控件标识,获取与第二类控件标识相关联的第二映射绑定关系,基于第二映射绑定关系确定第二类业务控件对应的第二类渲染引擎接口;
第二业务渲染单元132,用于在第一业务系统中,通过第二类渲染引擎接口调用第二类渲染引擎对第二类业务控件所对应的控件内容进行业务渲染,得到第二类业务控件所对应的第二渲染内容;
第二内容存储单元133,用于将第二渲染内容存储至第二渲染内存。
其中,第二接口确定单元131、第二业务渲染单元132以及第二内容存储单元133的具体实现方式,可以参见上述图3所对应实施例中对步骤S103的描述,这里将不再继续进行赘述。
其中,业务窗口是基于业务对象所触发的窗口创建事件所确定的;
可选地,装置还包括:第二标识配置模块18;
第二标识配置模块18,包括:第二配置策略获取单元181以及第二类标识配置单元182;
第二配置策略获取单元181,用于第二类标识配置单元从窗口创建事件中获取业务窗口包含的多个业务控件,基于窗口创建事件确定业务窗口相关联的控件标识配置策略;多个业务控件至少包括第二类业务控件;
第二类标识配置单元182,用于基于控件标识配置策略,配置第二类业务控件对应的第二类控件标识,并配置第二类控件标识与第二类渲染引擎接口之间的第二映射绑定关系。
其中,第二配置策略获取单元181以及第二类标识配置单元182的具体实现方式,可以参见上述图5所对应实施例的描述,这里将不再继续进行赘述。
进一步地,请参见图11,图11是本申请实施例提供的一种计算机设备的结构示意图。如图11所示,该计算机设备1000可以为终端设备,例如,上述图1所对应实施例中的终端设备10a,还可以为服务器,例如,上述图1所对应实施例中的服务器2000,这里将不对其进行限制。为便于理解,本申请以计算机设备为终端设备为例,该计算机设备1000可以包括:处理器1001,网络接口1004和存储器1005,此外,该计算机设备1000还可以包括:用户接口1003,和至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图11所示,作为一种计算机可读存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
其中,该计算机设备1000中的网络接口1004还可以提供网络通讯功能。在图11所示的计算机设备1000中,网络接口1004可提供网络通讯功能;而用户接口1003主要用于为用户提供输入的接口;而处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以执行前文图3所对应实施例中对窗口渲染方法的描述,也可执行前文图10所对应实施例中对窗口渲染装置的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
此外,这里需要指出的是:本申请实施例还提供了一种计算机可读存储介质,且计算机可读存储介质中存储有前文提及的窗口渲染装置所执行的计算机程序,且计算机程序包括计算机指令,当处理器执行计算机指令时,能够执行前文图3所对应实施例中对窗口渲染方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。
此外,需要说明的是:本申请实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或者计算机程序可以包括计算机指令,该计算机指令可以存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器可以执行该计算机指令,使得该计算机设备执行前文图3所对应实施例中对窗口渲染方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机程序产品或者计算机程序实施例中未披露的技术细节,请参照本申请方法实施例的描述。
需要说明的是,对于前述的各个方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某一些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
本申请实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。
本申请实施例装置中的模块可以根据实际需要进行合并、划分和删减。
本申请实施例中,术语“模块”或“单元”是指有预定功能的计算机程序或计算机程序的一部分,并与其他相关部分一起工作以实现预定目标,并且可以通过使用软件、硬件(如处理电路或存储器)或其组合来全部或部分实现。同样的,一个处理器(或多个处理器或存储器)可以用来实现一个或多个模块或单元。此外,每个模块或单元都可以是包含该模块或单元功能的整体模块或单元的一部分。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,存储介质可为磁碟、光盘、只读存储器(Read-Only Memory,ROM)或随机存储器(Random Access Memory,RAM)等。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
Claims (15)
1.一种窗口渲染方法,其特征在于,包括:
获取包含多个业务控件的业务窗口,将所述业务窗口所对应的内存区域确定为窗口内存区域;所述多个业务控件至少包括与第一类渲染引擎相关联的第一类业务控件和与第二类渲染引擎相关联的第二类业务控件;所述第一类渲染引擎所对应的渲染内存为第一渲染内存,所述第二类渲染引擎所对应的渲染内存为第二渲染内存;所述第一渲染内存和所述第二渲染内存均为所述窗口内存区域中的内存;
调用所述第一类渲染引擎对所述第一类业务控件进行业务渲染,将所述第一类业务控件所对应的第一渲染内容存储至所述第一渲染内存;
调用所述第二类渲染引擎对所述第二类业务控件进行业务渲染,将所述第二类业务控件所对应的第二渲染内容存储至所述第二渲染内存;
在渲染输出所述业务窗口所对应的窗口画面时,基于所述第一渲染内容和所述第二渲染内容,生成所述窗口画面,将所述窗口画面输出显示在所述业务窗口所对应的显示区域。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取针对所述业务窗口的窗口创建事件,基于所述窗口创建事件确定与所述业务窗口相关联的渲染策略;
若所述渲染策略为多引擎渲染策略,则获取所述多引擎渲染策略所指示的多个渲染引擎;所述多个渲染引擎至少包括所述第一类渲染引擎和所述第二类渲染引擎;
对所述第一类渲染引擎进行初始化,在所述窗口内存区域创建所述第一类渲染引擎所对应的渲染内存,并将所述第一类渲染引擎所对应的渲染内存作为所述第一渲染内存;
对所述第二类渲染引擎进行初始化,在所述窗口内存区域创建所述第二类渲染引擎所对应的渲染内存,并将所述第二类渲染引擎所对应的渲染内存作为所述第二渲染内存。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述业务窗口中的所述多个业务控件,从所述多个业务控件中获取目标业务控件,识别所述目标业务控件的控件标识,得到所述目标业务控件对应的标识识别结果;
若所述标识识别结果指示所述目标业务控件的控件标识属于第一类控件标识,则确定所述目标业务控件属于所述第一类控件标识对应的第一类业务控件。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
若所述标识识别结果指示所述目标业务控件的控件标识不属于所述第一类控件标识,则确定所述目标业务控件的控件标识属于第二类控件标识,将所述目标业务控件确定为所述第二类控件标识对应的第二类业务控件。
5.根据权利要求3所述的方法,其特征在于,所述业务窗口所在的显示终端的终端系统为第一业务系统,所述第一类渲染引擎为适配于多个业务系统的渲染引擎,所述多个业务系统包括所述第一业务系统,所述第一类渲染引擎所对应的接口为第一类渲染引擎接口;
所述调用所述第一类渲染引擎对所述第一类业务控件进行业务渲染,将所述第一类业务控件所对应的第一渲染内容存储至所述第一渲染内存,包括:
基于所述第一类业务控件对应的第一类控件标识,获取与所述第一类控件标识相关联的第一映射绑定关系,基于所述第一映射绑定关系确定所述第一类业务控件对应的所述第一类渲染引擎接口;
在所述第一业务系统中,通过所述第一类渲染引擎接口调用所述第一类渲染引擎对所述第一类业务控件所对应的控件内容进行业务渲染,得到所述第一类业务控件所对应的第一渲染内容;
将所述第一渲染内容存储至所述第一渲染内存。
6.根据权利要求5所述的方法,其特征在于,所述第一类业务控件包括第一业务控件和第二业务控件,所述第一类业务标识包括第一控件标识和第二控件标识,所述第一类渲染引擎接口包括第一类子渲染引擎接口和第二类子渲染引擎接口;
所述基于所述第一类业务控件对应的第一类控件标识,则获取与所述第一类控件标识相关联的第一映射绑定关系,基于所述第一映射绑定关系确定所述第一类业务控件对应的所述第一类渲染引擎接口,包括:
基于所述第一业务控件对应的所述第一控件标识,获取与所述第一控件标识相关联的第一子映射绑定关系,基于所述第一子映射绑定关系确定所述第一业务控件对应的所述第一类子渲染引擎接口;
基于所述第二业务控件对应的所述第二控件标识,获取与所述第二控件标识相关联的第二子映射绑定关系,基于所述第二子映射绑定关系确定所述第二业务控件对应的所述第二类子渲染引擎接口;
将所述第一类子渲染引擎接口和所述第二类子渲染引擎接口确定为所述第一类渲染引擎接口。
7.根据权利要求5所述的方法,其特征在于,所述第一类业务控件包括第一业务控件和第二业务控件,所述第一类渲染引擎包括第一类子渲染引擎和第二类子渲染引擎,所述第一类子渲染引擎所对应的接口为第一类子渲染引擎接口,所述第二类子渲染引擎所对应的接口为第二类子渲染引擎接口;
所述在所述第一业务系统中,通过所述第一类渲染引擎接口调用所述第一类渲染引擎对所述第一类业务控件所对应的控件内容进行业务渲染,得到所述第一类业务控件所对应的第一渲染内容,包括:
在所述第一业务系统中,通过所述第一类子渲染引擎接口调用所述第一类子渲染引擎对所述第一业务控件所对应的控件内容进行业务渲染,得到所述第一业务控件所对应的第一子渲染内容;
在所述第一业务系统中,通过所述第二类子渲染引擎接口调用所述第二类子渲染引擎对所述第二业务控件所对应的控件内容进行业务渲染,得到所述第二业务控件所对应的第二子渲染内容;
将所述第一子渲染内容和所述第二子渲染内容作为所述第一渲染内容。
8.根据权利要求5所述的方法,其特征在于,所述业务窗口是基于业务对象所触发的窗口创建事件所确定的;
所述方法还包括:
从所述窗口创建事件中获取所述业务窗口包含的所述多个业务控件,基于所述窗口创建事件确定所述业务窗口相关联的控件标识配置策略;所述多个业务控件至少包括所述第一类业务控件;
基于所述控件标识配置策略,配置所述第一类业务控件对应的第一类控件标识,并配置所述第一类控件标识与所述第一类渲染引擎接口之间的所述第一映射绑定关系。
9.根据权利要求8所述的方法,其特征在于,所述第一类业务控件包括第一业务控件和第二业务控件,所述第一类控件标识包括第一控件标识和第二控件标识,所述第一类渲染引擎接口包括第一类子渲染引擎接口和第二类子渲染引擎接口;
所述基于所述控件标识配置策略,配置所述第一类业务控件对应的第一类控件标识,并配置所述第一类控件标识与所述第一类渲染引擎接口之间的所述第一映射绑定关系,包括:
基于所述控件标识配置策略,配置所述第一业务控件对应的所述第一控件标识,并配置所述第一控件标识与所述第一类子渲染引擎接口之间的第一子映射绑定关系;
基于所述控件标识配置策略,配置所述第二业务控件对应的所述第二控件标识,并配置所述第二控件标识与所述第二类子渲染引擎接口之间的第二子映射绑定关系;
将所述第一子映射绑定关系和所述第二子映射绑定关系作为所述第一映射绑定关系。
10.根据权利要求3所述的方法,其特征在于,所述业务窗口所在的显示终端的终端系统为第一业务系统,所述第二类渲染引擎为所述第一业务系统所携带的渲染引擎,所述第二类渲染引擎所对应的接口为第二类渲染引擎接口;
调用所述第二类渲染引擎对所述第二类业务控件进行业务渲染,将所述第二类业务控件所对应的第二渲染内容存储至所述第二渲染内存,包括:
基于所述第二类业务控件对应的第二类控件标识,获取与所述第二类控件标识相关联的第二映射绑定关系,基于所述第二映射绑定关系确定所述第二类业务控件对应的所述第二类渲染引擎接口;
在所述第一业务系统中,通过所述第二类渲染引擎接口调用所述第二类渲染引擎对所述第二类业务控件所对应的控件内容进行业务渲染,得到所述第二类业务控件所对应的第二渲染内容;
将所述第二渲染内容存储至所述第二渲染内存。
11.根据权利要求10所述的方法,其特征在于,所述业务窗口是基于业务对象所触发的窗口创建事件所确定的;
所述方法还包括:
从所述窗口创建事件中获取所述业务窗口包含的所述多个业务控件,基于所述窗口创建事件确定所述业务窗口相关联的控件标识配置策略;所述多个业务控件至少包括所述第二类业务控件;
基于所述控件标识配置策略,配置所述第二类业务控件对应的第二类控件标识,并配置所述第二类控件标识与所述第二类渲染引擎接口之间的所述第二映射绑定关系。
12.一种窗口渲染装置,其特征在于,包括:
第一获取模块,用于获取包含多个业务控件的业务窗口,将所述业务窗口所对应的内存区域确定为窗口内存区域;所述多个业务控件至少包括与第一类渲染引擎相关联的第一类业务控件和与第二类渲染引擎相关联的第二类业务控件;所述第一类渲染引擎所对应的渲染内存为第一渲染内存,所述第二类渲染引擎所对应的渲染内存为第二渲染内存;所述第一渲染内存和所述第二渲染内存均为所述窗口内存区域中的内存;
第一渲染模块,用于调用所述第一类渲染引擎对所述第一类业务控件进行业务渲染,将所述第一类业务控件所对应的第一渲染内容存储至所述第一渲染内存;
第二渲染模块,用于调用所述第二类渲染引擎对所述第二类业务控件进行业务渲染,将所述第二类业务控件所对应的第二渲染内容存储至所述第二渲染内存;
输出显示模块,用于在渲染输出所述业务窗口所对应的窗口画面时,基于所述第一渲染内容和所述第二渲染内容,生成所述窗口画面,将所述窗口画面输出显示在所述业务窗口所对应的显示区域。
13.一种计算机设备,其特征在于,包括存储器和处理器;
所述存储器与所述处理器相连,所述存储器用于存储计算机程序,所述处理器用于调用所述计算机程序,以使得所述计算机设备执行权利要求1-11任一项所述的方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序适于由处理器加载并执行,以使得具有所述处理器的计算机设备执行权利要求1-11任一项所述的方法。
15.一种计算机程序产品,其特征在于,包括计算机程序/指令,所述计算机程序/指令被处理器执行时实现权利要求1-11任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410575255.4A CN118170284A (zh) | 2024-05-10 | 2024-05-10 | 窗口渲染方法、装置、设备以及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410575255.4A CN118170284A (zh) | 2024-05-10 | 2024-05-10 | 窗口渲染方法、装置、设备以及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118170284A true CN118170284A (zh) | 2024-06-11 |
Family
ID=91348835
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410575255.4A Pending CN118170284A (zh) | 2024-05-10 | 2024-05-10 | 窗口渲染方法、装置、设备以及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118170284A (zh) |
-
2024
- 2024-05-10 CN CN202410575255.4A patent/CN118170284A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210303108A1 (en) | System and method for on-screen graphical user interface encapsulation and reproduction | |
US7536645B2 (en) | System and method for customizing layer based themes | |
CN102221993B (zh) | 复杂用户界面状态变更的声明性定义 | |
US20210141523A1 (en) | Platform-independent user interface system | |
CN102591848B (zh) | 基于背景的前景特性选择 | |
US7818690B2 (en) | Framework for creating user interfaces containing interactive and dynamic 3-D objects | |
TWI603286B (zh) | 在螢幕上顯示3d場景圖的方法 | |
CN103092612B (zh) | 实现安卓操作系统3d桌面贴图的方法及电子装置 | |
CN105096368B (zh) | 三维对象处理方法和相关装置 | |
CN109445891B (zh) | 画面组态及展示方法、装置、计算机可读存储介质 | |
CN106846431B (zh) | 一种支持多表现形式的统一Web图形绘制系统 | |
CN111324381A (zh) | 开发系统、方法、装置、计算机设备及存储介质 | |
CN112783660B (zh) | 虚拟场景中的资源处理方法、装置及电子设备 | |
Kelly et al. | Basic introduction to pygame | |
Oberhauser et al. | Immersed in software structures: A virtual reality approach | |
CN118170284A (zh) | 窗口渲染方法、装置、设备以及介质 | |
CN114924712A (zh) | 一种基于域控制器平台的aui模块化实现方法及系统 | |
CN115617441A (zh) | 绑定模型和图元的方法、装置、存储介质及计算机设备 | |
Stenning | Direct3D Rendering Cookbook | |
CN110945478B (zh) | 管理用于软件应用开发的软件组件 | |
US9069905B2 (en) | Tool-based testing for composited systems | |
CN111813404B (zh) | 基于混合图形显示的应用方法、介质及客户端 | |
CN111352615B (zh) | 一种基于自带背景动画的饼图组件的数据显示方法和终端 | |
CN117290628A (zh) | 一种表单控件的统一定义方法及电子设备 | |
CN117055792A (zh) | 界面呈现方法、装置、设备、介质和程序产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination |