CN113970334A - 地图渲染方法、架构、设备及存储介质 - Google Patents
地图渲染方法、架构、设备及存储介质 Download PDFInfo
- Publication number
- CN113970334A CN113970334A CN202010717577.XA CN202010717577A CN113970334A CN 113970334 A CN113970334 A CN 113970334A CN 202010717577 A CN202010717577 A CN 202010717577A CN 113970334 A CN113970334 A CN 113970334A
- Authority
- CN
- China
- Prior art keywords
- rendering
- window handle
- window
- map
- bound
- 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
Images
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/26—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
- G01C21/28—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network with correlation of data from several navigational instruments
- G01C21/30—Map- or contour-matching
- G01C21/32—Structuring or formatting of map data
Landscapes
- Engineering & Computer Science (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Automation & Control Theory (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Navigation (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本申请实施例提供一种地图渲染方法、架构、设备及存储介质。在本申请实施例中,对于多屏幕地图渲染场景,导航软件中的人机交互接口为窗口句柄设置在渲染引擎中。窗口句柄与屏幕一一对应。渲染引擎可为窗口句柄创建各自对应的地图实例以及渲染线程,将窗口句柄与各自对应的地图实例及渲染线程进行绑定。这样,渲染引擎在对多个屏幕的电子地图进行渲染时,可基于每个窗口句柄绑定的渲染线程,在该窗口句柄对应的屏幕上渲染该窗口句柄绑定的地图实例,实现多个屏幕的电子地图的独立渲染,有助于满足多屏幕地图渲染的多样性的要求。
Description
技术领域
本申请涉及地图渲染技术领域,尤其涉及一种地图渲染方法、架构、设备及存储介质。
背景技术
随着汽车上搭载的屏幕(简称车载屏幕)由一块增加到多块(两块及以上)屏幕,比如,两块屏幕(仪表盘处搭载一块屏幕,中控台处搭载一块屏幕),或者,三块屏幕(中控台搭载一块屏幕,两块前排座椅的后背上分别搭载一块屏幕)。但在车载屏幕有多块的情况下,汽车上搭载的可以运行车载软件的车机只有一个,也就是说,用户在不同车载屏幕上使用的车载软件功能实际上是由车机运行同一个车载软件支持的,而不是一块车载屏幕对应一个独立的车载软件。而发明人发现,同一辆车中不同车载屏幕的使用者存在看到不同地图的需求,因此,如何使车载软件能够支持每块车载屏幕使用者的独立使用需求,是本领域技术人员需要解决的问题。
发明内容
本申请的多个方面提供一种地图渲染方法、架构、设备及存储介质,用以对多个屏幕的电子地图进行独立渲染,有助于满足多屏幕地图渲染的多样性的要求。
本申请实施例提供一种渲染架构,其中,包括:人机交互接口和渲染引擎;
所述人机交互接口,用于设置窗口句柄到所述渲染引擎中,所述窗口句柄与屏幕一一对应;
所述渲染引擎,用于为所述窗口句柄创建对应的地图实例及渲染线程,将所述窗口句柄与对应的地图实例及渲染线程进行绑定;并基于所述窗口句柄绑定的渲染线程,在所述窗口句柄对应的屏幕上渲染所述窗口句柄绑定的地图实例。
本申请实施例还提供一种地图渲染方法,包括:设置窗口句柄到渲染引擎中;所述窗口句柄与屏幕一一对应;为所述窗口句柄创建对应的地图实例及渲染线程;将所述窗口句柄与对应的地图实例及渲染线程进行绑定;基于所述窗口句柄绑定的渲染线程,在所述窗口句柄对应的屏幕上渲染所述窗口句柄绑定的地图实例。
本申请实施例还提供一种地图渲染方法,包括:根据多个屏幕各自对应的窗口句柄,确定所述窗口句柄各自绑定的渲染线程及地图实例;利用所述窗口句柄各自绑定的渲染线程,在所述多个屏幕上渲染各自对应的窗口句柄绑定的地图实例,得到所述多个屏幕各自对应的电子地图。
本申请实施例还提供一种电子设备,包括:存储器、处理器和通信组件;其中,所述存储器,用于存储计算机程序;
所述处理器耦合至所述存储器,用于执行所述计算机程序以用于执行上述各地图渲染方法中的步骤。
本申请实施例还提供一种可移动设备,包括:机械本体以及设置于所述机械本体上的导航终端和多个屏幕;
所述导航设备可用于执行上述各地图渲染方法中的步骤。
本申请实施例还提供一种存储有计算机指令的计算机可读存储介质,当所述计算机指令被一个或多个处理器执行时,致使所述一个或多个处理器执行上述各地图渲染方法中的步骤。
在本申请实施例中,对于多屏幕地图渲染场景,导航软件中的人机交互接口为窗口句柄设置在渲染引擎中。窗口句柄与屏幕一一对应。渲染引擎可为窗口句柄创建各自对应的地图实例以及渲染线程,将窗口句柄与各自对应的地图实例及渲染线程进行绑定。这样,渲染引擎在对多个屏幕的电子地图进行渲染时,可基于每个窗口句柄绑定的渲染线程,在该窗口句柄对应的屏幕上渲染该窗口句柄绑定的地图实例,实现多个屏幕的电子地图的独立渲染,不仅有助于满足多屏幕地图渲染的多样性的要求;而且利用多个渲染线程对多个屏幕各自对应的地图实例分别进行渲染,有助于提高渲染效率。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1a为本申请实施例提供的一种渲染架构示意图;
图1b为本申请实施例提供的一种导航系统的结构示意图;
图1c和图1d为本申请实施例提供的地图渲染方法的流程示意图;
图2a为本申请实施例提供的另一种地图渲染方法的流程示意图;
图2b为本申请实施例提供的屏幕的窗口句柄与渲染环境之间的对应关系的建立过程示意图;
图3为本申请实施例提供的一种电子设备的结构示意图;
图4为本申请实施例提供的一种可移动设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
现有的系统渲染方式采用单一渲染帧率对各屏幕对应的电子地图进行渲染,无法满足多屏幕导航对地图刷新率多样性的要求,针对该技术问题,在本申请一些实施例中,对于多屏幕地图渲染场景,导航系统中的人机交互接口为多个屏幕分辩设置窗口句柄;并将多个窗口句柄设置在渲染引擎中。渲染引擎可为多个窗口句柄创建各自对应的地图实例以及各自对应的渲染线程,将多个窗口句柄各自对应的地图实例与各自对应的渲染线程进行绑定。这样,渲染引擎在对多个屏幕的电子地图进行渲染时,可调用多个窗口句柄各自对应的渲染线程,渲染多个屏幕各自对应的地图实例,实现多个屏幕的电子地图的独立渲染,不仅有助于满足多屏幕地图渲染的多样性的要求;而且利用多个渲染线程对多个屏幕各自对应的地图实例分别进行渲染,有助于提高渲染效率。
以下结合附图,详细说明本申请各实施例提供的技术方案。
应注意到:相同的标号在下面的附图以及实施例中表示同一物体,因此,一旦某一物体在一个附图或实施例中被定义,则在随后的附图和实施例中不需要对其进行进一步讨论。
图1a为本申请实施例提供的渲染架构示意图。该渲染架构可实现为应用程序软件产品的渲染架构,渲染架构中各模块的功能可实现为一种渲染方法,该渲染方法可应用于应用程序类软件产品中。应用程序软件可安装于计算机设备中。计算机设备所搭载的对象具有多个屏幕。多个是指2个或2个以上。多个屏幕可固定安装于计算机设备所搭载的对象上,也可为即插即用的屏幕。相应地,计算机设备所搭载的对象设置有安插屏幕的接口。例如,计算机设备可搭载于机动车辆上,机动车辆可设置屏幕的安插接口,通过该安插接口可将智能手机或平板电脑等终端设备安装在机动车辆上,作为机动车辆上的一块屏幕。
对于渲染架构,如图1a所示,该渲染架构包括:人机交互接口(Human MachineInteraction,HMI)10a和渲染引擎10b。在本实施例中,人机交互接口10a是指可实现用户与计算机设备交互的接口程序模块。在本实施例中,人机交互接口10a可为屏幕分别设置窗口句柄,并将每个屏幕对应的窗口句柄设置到渲染引擎10b中。窗口句柄与屏幕一一对应。对于多个屏幕来说,则对应多个窗口句柄。多个是指2个或2个以上。
对于渲染引擎10b来说,可为多个窗口句柄创建各自对应的地图实例。可选地,渲染引擎10b可根据屏幕的标识以及电子地图的标识,确定各屏幕对应的窗口句柄的地图实例,并将窗口句柄与地图实例进行绑定。
进一步,渲染引擎10b还可为多个窗口句柄创建各自对应的渲染线程。之后,渲染引擎可每个窗口句柄与该窗口句柄对应的地图实例及渲染线程进行绑定,即将每个窗口句柄对应的地图实例与该窗口句柄对应的渲染线程进行绑定。这样,渲染引擎10b在后续对多个屏幕的电子地图进行渲染时,可基于窗口句柄绑定的渲染线程在窗口句柄对于的屏幕上,渲染该窗口句柄绑定的地图实例,实现多个屏幕的电子地图的独立渲染,不仅有助于满足多屏幕地图渲染的多样性的要求;而且利用多个渲染线程对多个屏幕各自对应的地图实例分别进行渲染,有助于提高渲染效率。
相应地,渲染引擎10b在对渲染窗口句柄绑定的地图实例时,可调用窗口句柄绑定的渲染线程,对该窗口句柄绑定的地图实例进行渲染,得到窗口句柄对应的屏幕的电子地图。进一步,渲染引擎10b可将窗口句柄对应的屏幕的电子地图通过人机交互接口10a提供给该屏幕。多个屏幕可展示各自对应的电子地图。
可选地,渲染引擎10b可预先创建多个窗口句柄各自对应的渲染环境(Context)。其中,渲染环境可理解为内部数据结构,包含渲染操作所需要的状态信息。渲染环境可包含对顶点着色器和片元着色器数据的引用,以及窗口句柄、窗口句柄对应的屏幕的RGB值和颜色位数等。可选地,人机交互接口10a可将多个窗口句柄设置到渲染引擎10b中。渲染引擎11b可为多个窗口句柄创建渲染环境,并将窗口句柄与渲染环境进行绑定,即建立窗口句柄与渲染环境之间的对应关系。在本申请实施例中,不限定屏幕的窗口句柄与渲染环境关系之间的对应关系的存储格式。可选地,窗口句柄与渲染环境之间的对应关系可存储至设备(Device)信息列表中,可由渲染引擎10b进行管理。
相应地,渲染引擎10b在渲染窗口句柄对应的地图实例时,可利用窗口句柄在设备信息列表中进行查询,以得到每个窗口句柄对应的渲染环境。进一步,渲染引擎10b可将每个窗口句柄绑定的渲染线程与该窗口句柄对应的渲染环境进行绑定。之后,调用每个窗口句柄绑定的渲染线程,并在该渲染线程中,利用该渲染线程绑定的渲染环境,对窗口句柄绑定的地图实例进行渲染,以得到窗口句柄对应的屏幕的电子地图。
可选地,渲染引擎10b可调用渲染函数为多个窗口句柄创建渲染环境。其中,渲染函数可以为嵌入式系统图形库(Embedded-System Graphics Library,EGL)函数。其中,EGL函数包括:egl Initializeegl函数(对屏幕的EGL进行初始化)、Create Window Surface函数(创建屏上渲染表面函数)、egl Create Context函数(创建上下文函数)以及egl MakeCurrent函数等等,其中,egl Make Current函数可将创建的上下文绑定到当前渲染线程,并绑定创建的上下文(Context)与表面(Surface)。
在本实施例中,多个屏幕展示的电子地图的作用不同,相应地,多个屏幕对其展示的电子地图的刷新率也就不同。例如,对于多屏幕车载导航系统来说,中控台对应的屏幕展示的电子地图主要为机动车辆的用户提供导航功能,需要电子地图随着机动车辆的移动进行实时更新,对电子地图的刷新率要求较高。对于后座椅上的屏幕可为乘客提供定位和导航服务,有助于乘客了解机动车辆当前移动到的位置。由于乘客无需实时了解当前所处的位置,对电子地图更新的实时性要求较低,相应地,后座椅上的屏幕对电子地图的刷新率要求也就较低。
在本实施例中,为了满足多个屏幕对电子地图的刷新率的多样性的要求,即为了满足每个屏幕对电子地图的刷新率的要求,渲染引擎中设置多个渲染线程。多个是指2个或2个以上。在本实施例中,不限定渲染线程的具体数量。可选地,渲染线程的数量小于或等于屏幕的数量。优选地,渲染线程的数量等于屏幕的数量,即一个屏幕对应一个渲染线程。可选地,若多个屏幕对电子地图的刷新率的要求各不相同,即多个屏幕对渲染速率的要求各不相同,则渲染线程的数量可等于屏幕的数量,即一个渲染线程对应一个屏幕,并为其对应的屏幕渲染电子地图。相应地,若多个屏幕中存在对电子地图的刷新率的要求相同的屏幕,即多个屏幕对渲染速率的要求部分或全部相同,则可为对电子地图的刷新率要求相同的屏幕配置同一渲染线程,当然,也可为每个屏幕配置不同的渲染线程。
为了满足屏幕对电子地图刷新率的要求,在本实施例中,开发人员可根据窗口句柄对应的屏幕对渲染速率的要求,为窗口句柄绑定的渲染线程配置相应的渲染帧率。相应地,渲染引擎10b可响应于针对渲染帧率的配置操作,为窗口句柄绑定的渲染线程配置渲染帧率。其中,渲染帧率是指渲染线程渲染以帧为单位的电子地图的频率,可理解为单位时间内渲染电子地图的帧数。其中,屏幕对渲染速率的要求越高,其窗口句柄绑定的渲染线程的渲染帧率越大。例如,屏幕对渲染速率的要求为每0.05s刷新一帧电子地图,则渲染帧率可以大于或等于1/0.05s=20Hz。
其中,每个渲染线程对应的渲染帧率,可由导航系统的技术人员根据每个渲染线程对应的屏幕对渲染速率的要求进行配置,并存储至渲染引擎10b中。或者,也可由渲染引擎10b根据每个渲染线程对应的屏幕对渲染速率的要求进行配置,并存储至渲染引擎10b中。
可选地,渲染引擎10b可为窗口句柄创建渲染线程,得到上述多个渲染线程;并根据响应于针对渲染帧率的配置操作,为窗口句柄绑定的渲染线程配置渲染帧率。
可选地,渲染引擎10b可为每个窗口句柄创建一个渲染线程,并根据该窗口句柄对应的屏幕对渲染速率的要求,为该窗口句柄绑定的渲染线程配置渲染帧率。这样,在渲染引擎10b调用渲染线程来渲染窗口句柄绑定的地图实例时,便可在窗口句柄绑定的渲染线程中,按照窗口句柄绑定的渲染线程所配置的渲染帧率,对窗口句柄绑定的地图实例进行渲染,得到该窗口句柄对应的屏幕的电子地图。
在本实施例中,多个屏幕对渲染速率的要求可以相同,也可不同。对于多个屏幕对渲染速率的要求相同的情况,多个屏幕对应的渲染帧率可以相同。对于多个屏幕对渲染速率的要求不同的情况,对于多个渲染线程来说,可配置有至少两种渲染帧率。可选地,每个渲染线程的渲染帧率各不相同。其中,多个渲染线程的渲染帧率以及渲染帧率的种类数,可由多个渲染线程各自对应的屏幕对渲染速率的要求决定。
在本实施例中,渲染引擎10b可调用各窗口句柄绑定的渲染线程,按照该渲染线程对应的渲染帧率,对窗口句柄对应的地图实例进行渲染,得到窗口句柄对应的屏幕的电子地图。具体地,渲染引擎10b可调用窗口句柄绑定的渲染线程,利用渲染线程绑定的渲染环境和渲染帧率,对窗口句柄对应的地图实例进行渲染,得到窗口句柄对应的屏幕的电子地图;并通过人机交互接口10a将窗口句柄对应的屏幕的电子地图提供给该屏幕进行展示。由于渲染线程根据其对应的屏幕对渲染速率的要求,对电子地图进行渲染,因此,可满足各屏幕对电子地图刷新率的要求,进而提高了地图渲染速率的多样性,有助于满足多屏幕对地图刷新率的多样性要求。
另一方面,由多个渲染线程对多个屏幕的地图实例并行进行渲染,还有助于提高地图渲染效率。
在本实施例中,人机交互接口10a可将待渲染的屏幕的窗口句柄提供给渲染引擎10b。渲染引擎10b可从多个渲染线程中确定待渲染的屏幕的窗口句柄绑定的目标渲染线程。确定地说,渲染引擎10b可将待渲染的屏幕的窗口句柄,在窗口句柄与渲染线程之间的对应关系中进行匹配,来确定待渲染的屏幕对应的目标渲染线程。其中,渲染引擎10b可查询上述设备信息列表,获取窗口句柄与渲染线程之间的对应关系。
进一步,渲染引擎10b可调用目标渲染线程按照该目标渲染线程对应的渲染帧率,对待渲染的屏幕的地图实例进行渲染,以得到待渲染的屏幕对应的电子地图。进一步,渲染引擎10b可将待渲染的屏幕对应的电子地图通过人机交互接口10a提供给该屏幕,由该屏幕进行展示。
可选地,渲染引擎10b可根据所述待渲染的屏幕的窗口句柄,查询上述设备信息列表,获取与待渲染的屏幕的窗户句柄绑定的目标渲染环境;并调用目标渲染线程。在目标渲染线程中,按照目标渲染线程对应的渲染帧率,并利用目标渲染环境对待渲染的屏幕对应的地图实例进行渲染,以得到待渲染的屏幕的电子地图。
图1b为本申请实施例提供的导航系统的结构示意图。如图1b所示,该系统包括:导航终端11和多个屏幕12。多个是指2个或2个以上,其具体取值由导航系统的实际应用场景决定。图1b中仅以屏幕12的数量为4个进行图示,但不构成限定。其中,导航终端11和多个屏幕12可搭载于移动对象上。移动对象是指配置有驱动组件,可以移动的任何设备。例如,移动对象可为机动车辆,如汽车、出租车、货车、摩托车、电动车等。相应地,多个屏幕12可为车载屏幕等。如屏幕12可为中控台的屏幕12a、仪表盘的屏幕12b、后座椅上的屏幕12c等。又例如,移动对象也可为自主移动设备,例如机器人、无人驾驶车辆或无人机等。又例如,移动对象也可为飞行器,如飞机等。
在本实施例中,导航终端11和屏幕12之间可以是无线或有线连接。可选地,导航终端11可以通过移动网络和屏幕12通信连接,相应地,移动网络的网络制式可以为2G(GSM)、2.5G(GPRS)、3G(WCDMA、TD-SCDMA、CDMA2000、UTMS)、4G(LTE)、4G+(LTE+)、5G、WiMax等中的任意一种。可选地,导航终端11也可以通过蓝牙、WiFi、红外线等方式和屏幕12通信连接。
或者,导航终端11和屏幕12之间可以是有线连接时,导航终端11和屏幕12之间可通过网线、光纤等通信连接,也可通过人机交互接口连接。其中,人机交互接口可为串行总线接口。串行总线接口可为PCIE接口、USB接口、RS485总线接口或RS-232总线接口等。
在本实施例中,导航系统为多屏幕导航系统。在本实施例中,导航终端11是可响应屏幕12的服务请求,为屏幕12提供地图渲染服务的软件模块、应用程序、服务或一台实体设备。若导航终端11为软件模块、应用程序或服务,则导航终端11可部署于任一屏幕12所在的实体设备中,也可部署于多个屏幕12所搭载的移动对象中其它任一具有数据处理功能的实体模块中。
相应地,导航终端11可部署于机动车辆上的任一显示设备上,或者,也可部署于机动车辆其它具有数据功能的实体模块中,如机动车辆的中心控制系统中等等。
可选地,导航终端11也可为部署于移动对象的本地的实体设备,也可为部署于云端的服务端设备。例如,服务端设备可以为单一服务器设备,也可以云化的服务器阵列,或者为云化的服务器阵列中运行的虚拟机(Virtual Machine,VM)。另外,服务端设备也可以指具备相应服务能力的其他计算设备,例如电脑等终端设备(运行服务程序)等。
在本实施例中,屏幕12为部署于移动对象本地的电子设备,且具有显示功能以及与导航终端11进行通信的功能。可选地,屏幕12也可具有一定的数据处理功能。多个屏幕可固定安装于移动对象上,也可为即插即用的屏幕。相应地,计算机设备所搭载的对象设置有安插屏幕的接口。
其中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。
在本实施例中,屏幕12可展示电子地图,为移动对象的用户提供导航功能。可选地,屏幕12可安装有导航相关的应用(Application,APP)等软件,该软件可向用户提供电子地图。多个屏幕12展示的电子地图可以相同,也可不同。可选地,多个屏幕12展示的电子地图可由移动对象的用户进行自主设置,预先存储至屏幕12中。或者,也可由屏幕12向导航终端11请求相关的电子地图。可选地,屏幕12可响应于用户针对电子地图的标识的相关操作,将用户选中的电子地图的标识以及屏幕12的标识提供给导航终端11。相应地,导航终端11可根据电子地图的标识以及屏幕12的标识,确定屏幕12对应的电子地图。
在本实施例中,导航终端11可安装有导航软件。该导航软件包括:人机交互接口11a和渲染引擎11b。其中,人机交互接口11a可为多个屏幕12分别设置窗口句柄,以得到多个窗口句柄。每个屏幕12对应一个窗口句柄。进一步,人机交互接口11a可将多个窗口句柄设置在渲染引擎11b中。
对于渲染引擎11b来说,可为多个窗口句柄创建各自对应的地图实例。可选地,渲染引擎11b可根据电子地图的标识以及屏幕12的标识,确定屏幕12对应的地图实例,并将屏幕12对应的地图实例,作为该屏幕对应的窗口句柄的地图实例。
进一步,渲染引擎11b还可为多个窗口句柄创建各自对应的渲染线程。之后,将每个窗口句柄与其对应的地图实例及渲染线程进行绑定,即将每个窗口句柄对应的地图实例与该窗口句柄对应的渲染线程进行绑定。这样,渲染引擎11b在后续对多个屏幕的电子地图进行渲染时,可基于每个屏幕对应的窗口句柄绑定的渲染线程,在该屏幕上渲染该窗口句柄绑定对应的地图实例,实现多个屏幕的电子地图的独立渲染,不仅有助于满足多屏幕地图渲染的多样性的要求;而且利用多个渲染线程对多个屏幕各自对应的地图实例分别进行渲染,有助于提高渲染效率。
相应地,渲染引擎11b在对渲染该窗口句柄绑定对应的地图实例时,可调用多个屏幕11b的窗口句柄各自对应的渲染线程,对多个窗口句柄分别对应的地图实例进行渲染,得到多个屏幕12分别对应的电子地图。进一步,渲染引擎11b可将多个屏幕12分别对应的电子地图通过人机交互接口11a提供给多个屏幕12。多个屏幕12可展示各自对应的电子地图。
可选地,渲染引擎11b可预先创建多个窗口句柄各自对应的渲染环境(Context)。其中,关于渲染环境的描述,可参见上述实施例的相关内容,在此不再赘述。可选地,人机交互接口11a可将多个窗口句柄设置到渲染引擎11b。渲染引擎11b可为多个窗口句柄创建渲染环境,并绑定多个屏幕12的窗口句柄与多个屏幕12对应的渲染环境,即建立窗口句柄与渲染环境之间的对应关系。在本申请实施例中,不限定屏幕的窗口句柄与渲染环境关系之间的对应关系的存储格式。可选地,窗口句柄与渲染环境之间的对应关系可存储至设备(Device)信息列表中,可由渲染引擎11b中的渲染引擎进行管理。
相应地,渲染引擎11b在对多个窗口句柄分别对应的地图实例进行渲染时,可利用多个窗口句柄在设备信息列表中进行查询,以得到每个窗口句柄绑定的渲染环境。确切地说,渲染引擎11b将多个窗口句柄分别在窗口句柄与渲染环境之间的对应关系中进行匹配,以得到每个窗口句柄绑定的渲染环境。进一步,渲染引擎11b可将每个窗口句柄对应的渲染线程与该窗口句柄对应的渲染环境进行绑定。之后,调用多个窗口句柄绑定对应的渲染线程,并在每个渲染线程中,利用该渲染线程绑定的渲染环境,对该渲染线程绑定的地图实例进行渲染,以得到窗口句柄对应的屏幕的电子地图。
可选地,渲染引擎11b可调用渲染函数为多个窗口句柄创建渲染环境。其中,关于渲染函数的描述可参见上述实施例的相关内容,在此不再赘述。
在本实施例中,多个屏幕12展示的电子地图的作用不同,相应地,多个屏幕12对其展示的电子地图的刷新率也就不同。为了满足多个屏幕12对电子地图的刷新率的多样性的要求,即为了满足每个屏幕12对电子地图的刷新率的要求,渲染引擎11b中设置多个渲染线程。多个是指2个或2个以上。在本实施例中,不限定渲染线程的具体数量。可选地,渲染线程的数量小于或等于屏幕12的数量。优选地,渲染线程的数量等于屏幕12的数量,即一个屏幕12对应一个渲染线程。可选地,若多个屏幕12对电子地图的刷新率的要求各不相同,即多个屏幕12对渲染速率的要求各不相同,则渲染线程的数量可等于屏幕12的数量,即一个渲染线程对应一个屏幕,并为其对应的屏幕渲染电子地图。相应地,若多个屏幕12中存在对电子地图的刷新率的要求相同的屏幕,即多个屏幕12对渲染速率的要求部分或全部相同,则可为对电子地图的刷新率要求相同的屏幕12配置同一渲染线程,当然,也可为每个屏幕12配置不同的渲染线程。
为了满足屏幕12对电子地图刷新率的要求,在本实施例中,可根据屏幕12对渲染速率的要求,为屏幕12对应窗口句柄绑定的渲染线程配置相应的渲染帧率。相应地,渲染引擎11b可响应于针对渲染帧率的配置操作,为多个渲染线程配置渲染帧率。
其中,每个渲染线程对应的渲染帧率,可由导航系统的技术人员根据每个渲染线程对应的屏幕对渲染速率的要求进行配置,并存储至渲染引擎11b中。或者,也可由渲染引擎11b根据每个渲染线程对应的屏幕对渲染速率的要求进行配置,并存储至渲染引擎11b中。
可选地,渲染引擎11b可为多个窗口句柄分别创建渲染线程,得到上述多个渲染线程;并根据多个窗口句柄对应的屏幕12对渲染速率的要求,为多个屏幕12对应的渲染线程配置渲染帧率。窗口句柄与屏幕一一对应。
可选地,渲染引擎11b可为每个窗口句柄创建一个渲染线程,并根据该窗口句柄对应屏幕12对渲染速率的要求,为该窗口句柄绑定的渲染线程配置渲染帧率。这样,在渲染引擎11b调用渲染线程来渲染该窗口句柄绑定的地图实例时,便可按照窗口句柄绑定的的渲染线程所配置的渲染帧率,对该窗口句柄绑定的地图实例进行渲染。
在本实施例中,渲染引擎11b可调用每个窗口句柄绑定的渲染线程,按照该渲染线程配置的渲染帧率,对该窗口句柄绑定的地图实例进行渲染,得到窗口句柄对应的屏幕的电子地图。具体地,渲染引擎11b可调用窗口句柄绑定的渲染线程,利用渲染线程绑定的渲染环境和渲染帧率,对窗口句柄对应的地图实例进行渲染,得到窗口句柄对应的屏幕的电子地图;并通过人机交互接口10a将窗口句柄对应的屏幕的电子地图提供给该屏幕进行展示。由于渲染线程根据其对应的屏幕对渲染速率的要求,对电子地图进行渲染,因此,可满足各屏幕对电子地图刷新率的要求,进而提高了地图渲染速率的多样性,有助于满足多屏幕对地图刷新率的多样性要求。
另一方面,由多个渲染线程对多个屏幕的地图实例并行进行渲染,还有助于提高地图渲染效率。
相应地,屏幕12在需要电子地图展示的情况下,可向导航终端12提供渲染请求。该渲染请求包含待渲染的屏幕的窗口句柄。可选地,屏幕12可在监测到开机操作时,确定需要展示电子地图,并向导航终端12提供渲染请求。或者,屏幕12的屏幕上可展示电子地图使用控件,并在监测到针对电子地图使用控件的触发操作时,确定需要展示电子地图,并向导航终端12提供渲染请求。
相应地,导航终端12可获取渲染请求,并从中解析出待渲染的屏幕的窗口句柄。进一步,导航终端12可根据待渲染的屏幕的窗口句柄,从多个渲染线程中确定待渲染的屏幕对应的目标渲染线程。确定地说,导航终端12可将待渲染的屏幕的窗口句柄,在窗口句柄与渲染线程之间的对应关系中进行匹配,来确定待渲染的屏幕对应的目标渲染线程。其中,渲染引擎11b可查询上述设备信息列表,获取屏幕的窗口句柄与渲染线程之间的对应关系。
进一步,渲染引擎11b可调用目标渲染线程,在目标渲染线程中,按照该目标渲染线程配置的渲染帧率,对目标渲染线程绑定的地图实例进行渲染,以得到待渲染的屏幕对应的电子地图。进一步,渲染引擎11b可将待渲染的屏幕对应的电子地图通过人机交互接口11a提供给该屏幕,由该屏幕进行展示。
可选地,导航终端12可根据所述待渲染的屏幕的窗口句柄,查询上述设备信息列表,获取与待渲染的屏幕的窗户句柄绑定的目标渲染环境;并调用目标渲染线程,在目标渲染线程中,按照目标渲染线程对应的渲染帧率,并利用目标渲染环境对待渲染的屏幕对应的地图实例进行渲染,以得到待渲染的屏幕对应的电子地图。
除了上述实施例提供的导航系统之外,本申请实施例还提供地图渲染方法,该地图渲染方法适用于上述导航终端。下面对本实施例提供的地图渲染方法进行示例性说明。
图1c为本申请实施例提供的一种地图渲染方法的流程示意图。如图1c所示,该方法包括:
101a、设置窗口句柄到渲染引擎中,窗口句柄与屏幕一一对应。
102a、为窗口句柄创建对应的地图实例及渲染线程。
103a、将窗口句柄与其对应的地图实例及渲染线程进行绑定。
104a、基于窗口句柄绑定的渲染线程,在窗口句柄对应的屏幕上渲染该窗口句柄绑定的地图实例。
在本实施例中,屏幕可展示电子地图,为移动对象的用户提供导航功能。可选地,屏幕所在的电子设备可安装有导航相关的应用(Application,APP)等软件,该软件可向用户提供电子地图。多个屏幕展示的电子地图可以相同,也可不同。可选地,多个屏幕展示的电子地图可由移动对象的用户进行自主设置,预先存储至屏幕中。或者,也可由屏幕向导航终端请求相关的电子地图。可选地,屏幕可响应于用户针对电子地图的标识的相关操作,将用户选中的电子地图的标识以及屏幕的标识提供给导航终端。相应地,导航终端可根据电子地图的标识以及屏幕的标识,确定屏幕对应的电子地图。
在本实施例中,导航终端安装有导航软件,导航软件包括人机交互接口和渲染引擎。对于导航终端来说,可为多个屏幕分别设置窗口句柄,以得到多个窗口句柄。每个屏幕对应一个窗口句柄。进一步,可将多个窗口句柄设置在渲染引擎中。窗口句柄与屏幕一一对应。
进一步,导航终端可为窗口句柄创建对应的地图实例。可选地,渲染引擎可根据电子地图的标识以及屏幕的标识,确定屏幕对应的地图实例。
进一步,还可为窗口句柄创建对应的渲染线程。之后,将窗口句柄与其对应的地图实例及渲染线程进行绑定,即将每个窗口句柄对应的地图实例与该窗口句柄对应的渲染线程进行绑定。这样,在后续对多个屏幕的电子地图进行渲染使,可基于每个屏幕对应的窗口句柄绑定的的渲染线程,渲染各自对应的地图实例,在该屏幕上渲染窗口句柄绑定的地图实例,实现多个屏幕的电子地图的独立渲染,不仅有助于满足多屏幕地图渲染的多样性的要求;而且利用多个渲染线程对多个屏幕各自对应的地图实例分别进行渲染,有助于提高渲染效率。
相应地,本申请实施例还提供一种地图渲染方法,下面结合图1d进行示例性说明。如图1d所示,该地图渲染方法包括:
101b、根据多个屏幕各自对应的窗口句柄,确定窗口句柄各自绑定的渲染线程及地图实例。
102b、调用窗口句柄各自绑定的渲染线程,在多个屏幕上渲染各自对应的窗口句柄绑定的地图实例,得到多个屏幕各自对应的电子地图。
在本实施例中,导航终端在对多个屏幕的电子地图进行渲染时,可根据多个屏幕的窗口句柄,确定多个屏幕的窗口句柄各自绑定的渲染线程及地图实例;并利用窗口句柄各自绑定的渲染线程,在多个屏幕上渲染各自对应的窗口句柄绑定的地图实例,进而得到多个屏幕分别对应的电子地图。多个屏幕可展示各自对应的电子地图。
可选地,导航终端可预先创建多个窗口句柄各自对应的渲染环境(Context)。可选地,导航终端可为多个窗口句柄创建渲染环境,并绑定多个屏幕的窗口句柄与对应的渲染环境,即建立窗口句柄与渲染环境之间的对应关系。在本申请实施例中,不限定屏幕的窗口句柄与渲染环境关系之间的对应关系的存储格式。可选地,窗口句柄与渲染环境之间的对应关系可存储至设备(Device)信息列表中,可由渲染引擎中的渲染引擎进行管理。
相应地,导航终端在对在多个屏幕上渲染各自对应的窗口句柄绑定的地图实例时,可利用每个屏幕的窗口句柄在设备信息列表中进行查询,以得到每个窗口句柄绑定的渲染环境。确切地说,渲染引擎将多个窗口句柄分别在窗口句柄与渲染环境之间的对应关系中进行匹配,以得到每个窗口句柄绑定的渲染环境。进一步,渲染引擎可将每个窗口句柄绑定的渲染线程与该窗口句柄对应的渲染环境进行绑定。之后,调用每个窗口句柄各自对应的渲染线程,在每个渲染线程中,利用该渲染线程绑定的渲染环境,对该渲染线程绑定的地图实例进行渲染,以得到该渲染线程对应的屏幕的电子地图。
可选地,渲染引擎可调用渲染函数为多个窗口句柄创建渲染环境。其中,关于渲染函数的描述,可参见上述实施例的相关内容,在此不再赘述。
在本实施例中,多个屏幕展示的电子地图的作用不同,相应地,多个屏幕对其展示的电子地图的刷新率也就不同。基于此,本申请实施例还提供一种地图渲染方法。如图2a所示,该方法主要包括:
201、根据多个屏幕各自对应的窗口句柄,调用窗口句柄各自绑定的渲染线程。
202、在每个渲染线程中,按照该渲染线程配置的渲染帧率,在窗口句柄对应的屏幕上渲染该窗口句柄绑定的地图实例,以得到多个屏幕各自对应的电子地图。
在本实施例中,为了满足多个屏幕对电子地图的刷新率的多样性的要求,即为了满足每个屏幕对电子地图的刷新率的要求,导航终端中设置多个渲染线程。多个是指2个或2个以上。在本实施例中,不限定渲染线程的具体数量。可选地,渲染线程的数量小于或等于屏幕的数量。优选地,渲染线程的数量等于屏幕的数量,即一个屏幕对应一个渲染线程。可选地,若多个屏幕对电子地图的刷新率的要求各不相同,即多个屏幕对渲染速率的要求各不相同,则渲染线程的数量可等于屏幕的数量,即一个渲染线程对应一个屏幕,并为其对应的屏幕渲染电子地图。相应地,若多个屏幕中存在对电子地图的刷新率的要求相同的屏幕,即多个屏幕对渲染速率的要求部分或全部相同,则可为对电子地图的刷新率要求相同的屏幕配置同一渲染线程,当然,也可为每个屏幕配置不同的渲染线程。
为了满足屏幕对电子地图刷新率的要求,在本实施例中,可根据屏幕对渲染速率的要求,为屏幕对应的渲染线程配置相应的渲染帧率。其中,渲染帧率是指渲染线程渲染以帧为单位的电子地图的频率,可理解为单位时间内渲染电子地图的帧数。其中,屏幕对渲染速率的要求越高,其对应的渲染线程的渲染帧率越大。
其中,每个渲染线程对应的渲染帧率,可由导航系统的技术人员根据每个渲染线程对应的屏幕对渲染速率的要求进行配置,并存储至导航终端中。或者,也可由导航终端根据每个渲染线程对应的屏幕对渲染速率的要求进行配置,并存储至导航终端中。
可选地,在步骤201之前,可为多个屏幕分别创建渲染线程,得到上述多个渲染线程;并响应于渲染帧率配置操作,为多个屏幕对应的渲染线程配置渲染帧率。可选地,该过程可在屏幕所搭载的移动对象出厂之前完成。
可选地,可为每个屏幕创建一个渲染线程,并根据该屏幕对渲染速率的要求,为该屏幕对应的渲染线程配置渲染帧率。这样,在调用渲染线程来渲染该屏幕对应的地图实例时,便可按照屏幕对应的渲染线程所配置的渲染帧率,对屏幕对应的地图实例进行渲染。其中,获取屏幕对应的地图实例的过程可参见上述导航终端确定屏幕对应的电子地图的相关内容,在此不再赘述。
在本实施例中,多个屏幕对渲染速率的要求可以相同,也可不同。对于多个屏幕对渲染速率的要求相同的情况,多个屏幕对应的渲染帧率可以相同。对于多个屏幕对渲染速率的要求不同的情况,对于多个渲染线程来说,可配置有至少两种渲染帧率。可选地,每个渲染线程的渲染帧率各不相同。其中,多个渲染线程的渲染帧率以及渲染帧率的种类数,可由多个渲染线程各自对应的屏幕对渲染速率的要求决定。
在本实施例中,在步骤201中,可根据多个屏幕各自对应的窗口句柄,调用窗口句柄各自绑定的渲染线程;并在步骤202中,在每个渲染线程中,按照该渲染线程配置的渲染帧率,在窗口句柄对应的屏幕上渲染该窗口句柄绑定的地图实例。具体地,调用窗口句柄绑定的渲染线程,利用渲染线程绑定的渲染环境和渲染帧率,对窗口句柄对应的地图实例进行渲染,得到窗口句柄对应的屏幕的电子地图。由于渲染线程根据其对应的屏幕对渲染速率的要求,对电子地图进行渲染,因此,可满足各屏幕对电子地图刷新率的要求,进而提高了地图渲染速率的多样性,有助于满足多屏幕对地图刷新率的多样性要求。
在本申请实施例中,在为多个屏幕对应的窗口句柄创建渲染线程后,还可建立窗口句柄与渲染线程之间的对应关系,并维护该对应关系。相应地,可建立屏幕的窗口句柄与渲染线程之间的对应关系。在本申请实施例中,不限定屏幕的窗口句柄与渲染线程之间的对应关系的存储格式。可选地,窗口句柄与渲染线程之间的对应关系存储至列表中。该列表可称为设备(Device)信息列表,可由渲染引擎进行管理。
相应地,屏幕在需要电子地图展示的情况下,可向导航终端提供渲染请求。该渲染请求包含待渲染的屏幕的标识。其中,关于导航终端确定需要展示电子地图的实施方式,可参见上述系统实施例的相关内容,在此不再赘述。
相应地,步骤201的一种可选实施方式为:获取渲染请求,并从中解析出待渲染的屏幕的标识;根据待渲染的屏幕的标识,从多个渲染线程中确定待渲染的屏幕对应的目标渲染线程;进一步,调用目标渲染线程按照该目标渲染线程对应的渲染帧率,对待渲染的屏幕的地图实例进行渲染,以得到待渲染的屏幕对应的电子地图。进一步,可将待渲染的屏幕对应的电子地图提供给该屏幕,由该屏幕进行展示。
可选地,可根据所述待渲染的屏幕的标识,获取与待渲染的屏幕的标识绑定的目标渲染环境;并调用目标渲染线程按照目标渲染线程对应的渲染帧率,并利用目标渲染环境对待渲染的屏幕对应的地图实例进行渲染,以得到待渲染的屏幕对应的电子地图。
可选地,可利用渲染引擎调用渲染函数为多个屏幕创建渲染环境。其中,渲染函数可以为EGL函数。关于EGL函数的描述,可参见上述系统实施例的相关内容,在此不再赘述。
为了更清楚地说明上述屏幕的标识(屏幕的窗口句柄标识)与渲染线程之间的对应关系以及屏幕的窗口句柄标识与渲染环境之间的对应关系的建立过程,下面结合图2b所示的创建过程示意图进行示例性说明。如图2b所示,屏幕的窗口句柄标识与渲染环境之间的对应关系的建立过程,主要包括:
S1:人机交互接口将多个屏幕的窗口句柄标识设置到渲染引擎。
S2:渲染引擎为多个窗口句柄创建渲染环境。
S3:绑定每个屏幕的窗口句柄与各自对应的渲染环境,并将窗口句柄与多个屏幕对应的渲染环境之间的对应关系存储至渲染引擎管理的设备信息列表中。
S4:渲染引擎为每个屏幕的窗口句柄创建一个地图实例。
S5:渲染引擎为每个地图实例创建独立的渲染线程,并绑定渲染线程与地图实例。
S6:将渲染线程与各渲染线程绑定的地图实例存储至设备信息列表中。
需要说明的是,上述实施例所提供方法的各步骤的执行主体均可以是同一设备,或者,该方法也由不同设备作为执行主体。比如,步骤202和203的执行主体可以为设备A;又比如,步骤201的执行主体可以为设备A,步骤203的执行主体可以为设备B;等等。例如,上述实施例中,步骤201-203可由导航终端或服务端设备单独执行;也可由导航终端和服务端设备配合完成,例如,步骤201和202可由服务端设备执行,步骤203可由导航终端执行;等等。
另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如201、202等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。
相应地,本申请实施例还提供一种存储有计算机指令的计算机可读存储介质,当计算机指令被一个或多个处理器执行时,致使一个或多个处理器执行上述地图渲染方法中的步骤。
图3为本申请实施例提供的一种电子设备的结构示意图。如图3所示,该终端设备包括:存储器30a、处理器30b和通信组件30c。其中,存储器30a,用于存储计算机程序。
处理器30b耦合至存储器30c,用于执行计算机程序以用于:设置窗口句柄到渲染引擎中;窗口句柄与屏幕一一对应;为窗口句柄创建对应的地图实例及渲染线程;将窗口句柄与对应的地图实例及渲染线程进行绑定;基于窗口句柄绑定的渲染线程,在窗口句柄对应的屏幕上渲染窗口句柄绑定的地图实例。
相应地,处理器30b在在窗口句柄对应的屏幕上渲染窗口句柄绑定的地图实例时,具体用于:调用窗口句柄对应的渲染线程,对窗口句柄绑定的地图实例进行渲染,得到窗口句柄对应屏幕的电子地图;调用窗口句柄对应的渲染线程;在窗口句柄对应的渲染线程中,将对窗口句柄绑定的地图实例渲染至窗口句柄对应的屏幕上。
进一步,处理器30b在对多个窗口句柄分别对应的地图实例进行渲染时,具体用于:利用窗口句柄在渲染引擎管理的设备信息列表中进行查询,以得到窗口句柄对应的渲染环境;所述设备信息列表存储有窗口句柄与渲染环境的对应关系;将窗口句柄绑定的渲染线程与该窗口句柄对应的渲染环境进行绑定;调用窗口句柄绑定的渲染线程,并在窗口句柄绑定的渲染线程中,利用该渲染线程绑定的渲染环境,将对窗口句柄绑定的地图实例渲染至窗口句柄对应的屏幕上。
在一些实施例中,处理器30b还用于:为窗口句柄创建渲染环境;渲染环境与窗口句柄一一对应;将窗口句柄与渲染环境的对应关系存储至设备信息列表中。
可选地,处理器30b在为多个窗口句柄分别创建渲染环境时,具体用于:调用渲染函数为窗口句柄创建渲染环境。可选地,渲染函数可为EGL函数。
可选地,处理器30b还用于:响应于针对渲染帧率的配置操作,为窗口句柄绑定的渲染线程配置渲染帧率。
相应地,处理器30b在对多个窗口句柄分别对应的地图实例进行渲染时,具体用于:调用窗口句柄绑定的渲染线程,按照窗口句柄绑定的渲染线程所配置的渲染帧率,对窗口句柄绑定的地图实例进行渲染,以得到窗口句柄对应的屏幕的电子地图。具体地,调用窗口句柄绑定的渲染线程,利用窗口句柄绑定的渲染线程和渲染帧率,对窗口句柄绑定的地图实例进行渲染,以得到窗口句柄对应的屏幕的电子地图。
在其它一些实施例中,处理器30b还用于:根据多个屏幕各自对应的窗口句柄,确定窗口句柄各自绑定的渲染线程及地图实例;利用窗口句柄各自绑定的渲染线程,在多个屏幕上渲染各自对应的窗口句柄绑定的地图实例,得到多个屏幕各自对应的电子地图。
可选地,多个渲染线程各自配置有渲染帧率。处理器30b在调用多个渲染线程,对多个屏幕各自对应的地图实例进行渲染时,具体用于:在每个窗口句柄各自绑定的渲染线程中,按照渲染线程所配置的渲染帧率,将该窗口句柄绑定的地图实例渲染至该窗口句柄对应的屏幕上,以得到所述窗口句柄对应的屏幕的电子地图。
在一些可选实施方式中,如图3所示,电子设备可为屏幕,还可包括:屏幕30d、电源组件30e以及音频组件30f等组件。电子设备也可为服务端设备,服务端设备还可包括:电源组件30e等组件。图3中仅示意性给出部分组件,并不意味着电子设备必须包含图3所示全部组件,也不意味着电子设备只能包括图3所示组件。
在本申请实施例中,存储器用于存储计算机程序,并可被配置为存储其它各种数据以支持在存储器所在设备上的操作。其中,处理器可执行存储器中存储的计算机程序,以实现相应控制逻辑。存储器可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
在本申请实施例中,处理器可以为任意可执行上述方法逻辑的硬件处理设备。可选地,处理器可以为中央处理器(Central Processing Unit,CPU)、图形处理器(GraphicsProcessing Unit,GPU)或微控制单元(Microcontroller Unit,MCU);也可以为现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程阵列逻辑器件(ProgrammableArray Logic,PAL)、通用阵列逻辑器件(General Array Logic,GAL)、复杂可编程逻辑器件(Complex Programmable Logic Device,CPLD)等可编程器件;或者为先进精简指令集(RISC)处理器(Advanced RISC Machines,ARM)或系统芯片(System on Chip,SOC)等等,但不限于此。
在本申请实施例中,通信组件被配置为便于其所在设备和其他设备之间有线或无线方式的通信。通信组件所在设备可以接入基于通信标准的无线网络,如WiFi,2G或3G,4G,5G或它们的组合。在一个示例性实施例中,通信组件经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,通信组件还可基于近场通信(NFC)技术、射频识别(RFID)技术、红外数据协会(IrDA)技术、超宽带(UWB)技术、蓝牙(BT)技术或其他技术来实现。通信组件也可为串行通信总线。其中,串行总线接口可为PCIE接口、USB接口、RS485总线接口或RS-232总线接口等。
在本申请实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与触摸或滑动操作相关的持续时间和压力。
在本申请实施例中,电源组件被配置为其所在设备的各种组件提供电力。电源组件可以包括电源管理系统,一个或多个电源,及其他与为电源组件所在设备生成、管理和分配电力相关联的组件。
在本申请实施例中,音频组件可被配置为输出和/或输入音频信号。例如,音频组件包括一个麦克风(MIC),当音频组件所在设备处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器或经由通信组件发送。在一些实施例中,音频组件还包括一个扬声器,用于输出音频信号。例如,对于具有语言交互功能的电子设备,可通过音频组件实现与用户的语音交互等。
本实施例提供的电子设备,对于多屏幕地图渲染场景,导航系统中的人机交互接口为多个屏幕分辩设置窗口句柄;并将多个窗口句柄设置在渲染引擎中。渲染引擎可为多个窗口句柄创建各自对应的地图实例以及渲染线程,将窗口句柄与其对应的地图实例及渲染线程进行绑定。这样,渲染引擎在对多个屏幕的电子地图进行渲染时,可调用每个窗口句柄绑定的渲染线程,在窗口句柄对应的屏幕上渲染该窗口句柄绑定的地图实例,实现多个屏幕的电子地图的独立渲染,不仅有助于满足多屏幕地图渲染的多样性的要求;而且利用多个渲染线程对多个屏幕各自对应的地图实例分别进行渲染,有助于提高渲染效率。
图4为本申请实施例提供的可移动设备的结构示意图。如图4所示,可移动设备包括:机械本体40以及设置于机械本体40上的导航终端41和多个屏幕42。其中,关于导航终端41和屏幕42的实现形态可参见上述系统实施例的相关内容,在此不再赘述。
值得说明的是,导航终端41和多个屏幕42可设置于机械本体40内部,也可以设置于机械本体40的表面。
机械本体40是可移动设备的执行机构,可以在确定的环境中执行可移动设备指定的操作。其中,机械本体40一定程度上体现了可移动设备的外观形态。在本实施例中,并不限定可移动设备的外观形态。机械本体的形态,由可移动设备的实现形态决定。机械本体40主要是指可移动设备的机身以及机身内部的机械结构。例如,可移动设备为机动车辆,则机械本体40主要为机动车辆的机身;又可移动设备为飞行器(如飞机等),则机械本体40主要是指飞行器的机身以及机身内部的机械结构;又例如,可移动设备可为自主移动设备,则机械本体40主要是指自主移动设备的机身以及机身内部的机械结构。
值得说明的是,机械本体40上还设置有可移动设备的一些基本组件,例如驱动组件、里程计、电源组件、音频组件等等。可选地,驱动组件可以包括驱动轮、驱动电机、万向轮等。不同可移动设备所包含的这些基本组件以及基本组件的构成均会有所不同,本申请实施例列举的仅是部分示例。
在本实施例中,导航终端41包括:人机交互接口和渲染引擎。
其中,人机交互接口,用于设置窗口句柄到渲染引擎中,窗口句柄与屏幕一一对应。渲染引擎,用于为窗口句柄创建对应的地图实例及渲染线程,将窗口句柄与对应的地图实例及渲染线程进行绑定;并基于窗口句柄绑定的渲染线程,在窗口句柄对应的屏幕上渲染窗口句柄绑定的地图实例。
在一些实施例中,渲染引擎,还用于:为窗口句柄创建渲染环境,渲染环境与窗口句柄一一对应;将窗口句柄与渲染环境的对应关系存储至设备信息列表中。
可选地,渲染引擎为窗口句柄创建渲染环境时,具体用于:调用渲染函数为窗口句柄创建渲染环境。可选地,渲染函数为EGL函数。
在一些实施例中,渲染引擎在渲染窗口句柄绑定的地图实例时,具体用于:调用窗口句柄绑定的渲染线程,对窗口句柄绑定的地图实例进行渲染,得到窗口句柄对应的屏幕的电子地图;并将窗口句柄对应的屏幕的电子地图通过人机交互接口提供给窗口句柄对应的屏幕进行展示。
可选地,渲染引擎在对多个窗口句柄分别对应的地图实例进行渲染时,具体用于:利用多个窗口句柄在设备信息列表中进行查询,以得到每个窗口句柄对应的渲染环境;将每个窗口句柄对应的渲染线程与该窗口句柄对应的渲染环境进行绑定;调用多个窗口句柄各自对应的渲染线程,并在每个渲染线程中,利用该渲染线程绑定的渲染环境,对该渲染线程绑定的地图实例进行渲染,以得到该渲染线程对应的屏幕的电子地图。
进一步,渲染引擎在渲染窗口句柄绑定的地图实例,具体用于:利用窗口句柄在设备信息列表中进行查询,以得到窗口句柄对应的渲染环境;将窗口句柄绑定的渲染线程与窗口句柄对应的渲染环境进行绑定;调用窗口句柄绑定的渲染线程,并在窗口句柄绑定的渲染线程中,利用该渲染线程绑定的渲染环境,对该渲染线程绑定的地图实例进行渲染,以得到窗口句柄对应的屏幕的电子地图。
在另一些实施例中,渲染引擎,还用于:响应于针对渲染帧率的配置操作,为窗口句柄绑定的渲染线程配置渲染帧率。
可选地,渲染引擎在调用多个窗口句柄各自对应的渲染线程,对多个窗口句柄分别对应的地图实例进行渲染时,具体用于:调用窗口句柄绑定的渲染线程,并按照窗口句柄绑定的渲染线程所配置的渲染帧率,对窗口句柄绑定的地图实例进行渲染,得到窗口句柄对应的屏幕的电子地图。
在其它一些实施例中,渲染引擎还用于:根据多个屏幕各自对应的窗口句柄,确定窗口句柄各自绑定的渲染线程及地图实例;利用窗口句柄各自绑定的渲染线程,在多个屏幕上渲染各自对应的窗口句柄绑定的地图实例,得到多个屏幕各自对应的电子地图。
可选地,多个渲染线程各自配置有渲染帧率。渲染引擎在在多个屏幕上渲染各自对应的窗口句柄绑定的地图实例时,具体用于:在每个窗口句柄各自绑定的渲染线程中,按照渲染线程所配置的渲染帧率,将该窗口句柄绑定的地图实例渲染至该窗口句柄对应的屏幕上,以得到所述窗口句柄对应的屏幕的电子地图。
本实施例提供的可移动设备,安装有导航终端和多个屏幕。其中,导航终端安装有导航软件。对于多屏幕地图渲染场景,导航软件中的人机交互接口为多个屏幕对应的窗口句柄设置在渲染引擎中。渲染引擎可为窗口句柄创建各自对应的地图实例及渲染线程,将窗口句柄与其对应的地图实例及渲染线程进行绑定。这样,渲染引擎在对多个屏幕的电子地图进行渲染时,可调用每个窗口句柄绑定的渲染线程,在该窗口句柄对应的屏幕上渲染该窗口句柄绑定的地图实例,实现多个屏幕的电子地图的独立渲染,不仅有助于满足多屏幕地图渲染的多样性的要求;而且利用多个渲染线程对多个屏幕各自对应的地图实例分别进行渲染,有助于提高渲染效率。
需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (17)
1.一种渲染架构,其中,包括:人机交互接口和渲染引擎;
所述人机交互接口,用于设置窗口句柄到所述渲染引擎中,所述窗口句柄与屏幕一一对应;
所述渲染引擎,用于为所述窗口句柄创建对应的地图实例及渲染线程,将所述窗口句柄与对应的地图实例及渲染线程进行绑定;并基于所述窗口句柄绑定的渲染线程,在所述窗口句柄对应的屏幕上渲染所述窗口句柄绑定的地图实例。
2.根据权利要求1所述的架构,其中,所述渲染引擎基于所述窗口句柄绑定的渲染线程,在所述窗口句柄对应的屏幕上渲染所述窗口句柄绑定的地图实例,具体包括:
调用所述窗口句柄绑定的渲染线程,对所述窗口句柄绑定的地图实例进行渲染,以得到所述窗口句柄对应的屏幕的电子地图;
将所述电子地图通过所述人机交互接口提供给所述窗口句柄对应的屏幕进行展示。
3.根据权利要求2所述的架构,其中,所述渲染引擎,还用于:
为窗口句柄创建渲染环境,渲染环境与窗口句柄一一对应;
将窗口句柄与渲染环境的对应关系存储至所述渲染引擎管理的设备信息列表中;
所述调用所述窗口句柄绑定的渲染线程,对所述窗口句柄绑定的地图实例进行渲染,以得到所述窗口句柄对应的屏幕的电子地图,具体为:
利用所述窗口句柄在所述渲染引擎管理的设备信息列表中进行查询,以得到所述窗口句柄对应的渲染环境;所述设备信息列表存储有窗口句柄与渲染环境的对应关系;
将所述窗口句柄绑定的渲染线程与所述窗口句柄对应的渲染环境进行绑定;
调用所述窗口句柄绑定的渲染线程,利用该渲染线程绑定的渲染环境,对该渲染线程绑定的地图实例进行渲染,以得到所述窗口句柄对应的屏幕的电子地图。
4.根据权利要求3所述的架构,其中,所述为窗口句柄创建渲染环境具体包括:
调用渲染函数为所述窗口句柄创建渲染环境。
5.根据权利要求3所述的架构,其中,所述渲染引擎,还用于:
响应于针对渲染帧率的配置操作,为所述窗口句柄绑定的渲染线程配置渲染帧率;
调用所述窗口句柄绑定的渲染线程,利用该渲染线程绑定的渲染环境,对该渲染线程绑定的地图实例进行渲染,以得到所述窗口句柄对应的屏幕的电子地图,具体包括:
调用所述窗口句柄绑定的渲染线程,利用该渲染线程绑定的渲染环境和渲染帧率,对所述窗口句柄绑定的地图实例进行渲染,以得到所述窗口句柄对应的屏幕的电子地图。
6.一种地图渲染方法,其中,包括:
设置窗口句柄到渲染引擎中;所述窗口句柄与屏幕一一对应;
为所述窗口句柄创建对应的地图实例及渲染线程;
将所述窗口句柄与对应的地图实例及渲染线程进行绑定;
基于所述窗口句柄绑定的渲染线程,在所述窗口句柄对应的屏幕上渲染所述窗口句柄绑定的地图实例。
7.根据权利要求6所述的方法,其中,所述将对所述窗口句柄绑定的地图实例渲染至所述窗口句柄对应的屏幕上,包括:
利用所述窗口句柄在所述渲染引擎管理的设备信息列表中进行查询,以得到所述窗口句柄对应的渲染环境;所述设备信息列表存储有窗口句柄与渲染环境的对应关系;
将窗口句柄绑定的渲染线程与该窗口句柄对应的渲染环境进行绑定;
调用所述窗口句柄绑定的渲染线程,并在所述窗口句柄绑定的渲染线程中,利用该渲染线程绑定的渲染环境,将对所述窗口句柄绑定的地图实例渲染至所述窗口句柄对应的屏幕上。
8.根据权利要求7所述的方法,其中,还包括:
为所述窗口句柄创建渲染环境;渲染环境与窗口句柄一一对应;
将窗口句柄与渲染环境的对应关系存储至设备信息列表中。
9.根据权利要求8所述的方法,其中,所述为所述窗口句柄创建渲染环境,包括:
调用渲染函数为所述窗口句柄创建渲染环境。
10.根据权利要求7所述的方法,其中,所述调用所述窗口句柄绑定的渲染线程,利用该渲染线程绑定的渲染环境,对该渲染线程绑定的地图实例进行渲染,包括:
调用所述窗口句柄绑定的渲染线程,利用所述窗口句柄绑定的渲染线程和渲染帧率,对所述窗口句柄绑定的地图实例进行渲染,以得到所述窗口句柄对应的屏幕的电子地图。
11.根据权利要求10所述的方法,其中,还包括:
响应于针对渲染帧率的配置操作,为所述窗口句柄绑定的渲染线程配置渲染帧率。
12.一种地图渲染方法,其中,包括:
根据多个屏幕各自对应的窗口句柄,确定所述窗口句柄各自绑定的渲染线程及地图实例;
利用所述窗口句柄各自绑定的渲染线程,在所述多个屏幕上渲染各自对应的窗口句柄绑定的地图实例,得到所述多个屏幕各自对应的电子地图。
13.根据权利要求12所述的方法,其中,所述多个渲染线程各自配置有渲染帧率;所述利用所述窗口句柄各自绑定的渲染线程,在所述多个屏幕上渲染各自对应的窗口句柄绑定的地图实例,包括:
在每个窗口句柄各自绑定的渲染线程中,按照渲染线程所配置的渲染帧率,将该窗口句柄绑定的地图实例渲染至该窗口句柄对应的屏幕上,以得到所述窗口句柄对应的屏幕的电子地图。
14.一种电子设备,包括:存储器、处理器和通信组件;其中,所述存储器,用于存储计算机程序;
所述处理器耦合至所述存储器,用于执行所述计算机程序以用于执行权利要求6-13任一项所述方法中的步骤。
15.一种可移动设备,包括:机械本体以及设置于所述机械本体上的导航设备和多个屏幕;所述导航设备可用于执行权利要求6-13任一项所述方法中的步骤。
16.根据权利要求15所述的设备,所述可移动设备为机动车辆、自主移动设备或飞行器。
17.一种存储有计算机指令的计算机可读存储介质,当所述计算机指令被一个或多个处理器执行时,致使所述一个或多个处理器执行权利要求6-13任一项所述方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010717577.XA CN113970334A (zh) | 2020-07-23 | 2020-07-23 | 地图渲染方法、架构、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010717577.XA CN113970334A (zh) | 2020-07-23 | 2020-07-23 | 地图渲染方法、架构、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113970334A true CN113970334A (zh) | 2022-01-25 |
Family
ID=79585436
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010717577.XA Pending CN113970334A (zh) | 2020-07-23 | 2020-07-23 | 地图渲染方法、架构、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113970334A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115086755A (zh) * | 2022-06-08 | 2022-09-20 | 亿咖通(湖北)技术有限公司 | 一种投屏方法、装置、设备和介质 |
WO2023207194A1 (zh) * | 2022-04-25 | 2023-11-02 | Oppo广东移动通信有限公司 | 画面显示方法、装置、设备、存储介质及程序产品 |
-
2020
- 2020-07-23 CN CN202010717577.XA patent/CN113970334A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023207194A1 (zh) * | 2022-04-25 | 2023-11-02 | Oppo广东移动通信有限公司 | 画面显示方法、装置、设备、存储介质及程序产品 |
CN115086755A (zh) * | 2022-06-08 | 2022-09-20 | 亿咖通(湖北)技术有限公司 | 一种投屏方法、装置、设备和介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109388467B (zh) | 地图信息显示方法、装置、计算机设备及存储介质 | |
CN106802794B (zh) | 主题切换方法、装置、车辆及系统 | |
CN107415691B (zh) | 集中式车载显示控制系统 | |
CN104050992B (zh) | 具有虚拟仪表和信息娱乐终端的车载智能系统 | |
JP6567642B2 (ja) | オペレーティングシステム起動加速 | |
CN113970334A (zh) | 地图渲染方法、架构、设备及存储介质 | |
CN103442927A (zh) | 具有可定制用户界面的车辆信息系统 | |
JP7223895B2 (ja) | 車両のための拡張可能なコンピューティングアーキテクチャ | |
US10957099B2 (en) | System and method for display of visual representations of vehicle associated information based on three dimensional model | |
CN104598124A (zh) | 一种调节抬头显示设备视场角的方法和系统 | |
US20200294414A1 (en) | Driving simulator | |
WO2022062491A1 (zh) | 一种基于智能座舱的车载智能硬件管控方法和智能座舱 | |
JP6564845B2 (ja) | オペレーティングシステム起動加速 | |
JP6577566B2 (ja) | オペレーティングシステム起動加速 | |
EP4369186A1 (en) | Control method and apparatus, device, and storage medium | |
CN115422417A (zh) | 数据处理方法、设备及存储介质 | |
CN111038259A (zh) | 车机一体屏的显示控制方法、装置、车辆及存储介质 | |
CN114527923A (zh) | 一种车内信息显示方法、装置及电子设备 | |
CN115712372A (zh) | 内容显示方法、装置、设备、介质和车辆 | |
CN113791843A (zh) | 一种执行方法、装置、设备及存储介质 | |
CN109976884A (zh) | 智能终端及应用程序之间的切换方法 | |
CN114546570B (zh) | 窗口的显示方法、窗口的显示装置、存储介质和车载终端 | |
US20230391190A1 (en) | Synchronized rendering | |
CN113709706B (zh) | 一种车辆座舱的显示控制方法、装置、系统及终端 | |
CN112817677B (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 |