一种基于浏览器的目标对象绘制方法、装置和浏览器制造方法及图纸

技术编号:22363709 阅读:30 留言:0更新日期:2019-10-23 04:34
本申请公开了一种基于浏览器的目标对象绘制方法、装置和浏览器,其中,该方法包括:浏览器中的Web引擎接收对目标对象进行绘制的绘制请求,所述绘制请求中包含与所述目标对象对应的指令集标识;根据所述绘制请求中包含的所述指令集标识,确定与所述指令集标识对应的指令集,所述指令集中包含对所述目标对象进行绘制的多条指令;根据所述指令集中包含的多条指令,对所述目标对象进行绘制。这样,通过将多条指令整合为一个指令集,浏览器中的Web引擎可以直接调用指令集进行图形的目标对象绘制,相较于现有技术而言,由于Web引擎由调用多次指令进行目标对象绘制改为调用一次指令集进行目标对象绘制。因此,可以减少JS到WebAssembly之间的调用次数,提高了JS项目的运行效率。

A browser based object drawing method, device and browser

【技术实现步骤摘要】
一种基于浏览器的目标对象绘制方法、装置和浏览器
本申请涉及计算机
,尤其涉及一种基于浏览器的目标对象绘制方法、装置和浏览器。
技术介绍
在2D图形或3D图形的绘制中,为了提高运行效率,除采用运行器(runtime)进行图形绘制外,还可以采用浏览器作为载体执行JavaScript(以下简称JS)项目以实现图形绘制。由于JS项目采用JavaScript语言编写,而JavaScript语言是解释性脚本语言,依托于JavaScript语言实现的Web引擎进行解析执行,其运行效率较慢。为提高在浏览器中运行JS项目的效率,现有技术提出了新的“Web引擎”的方案。该方案的做法是将运行在浏览器中的Web引擎划分为上层的JS接口层和底层的核心算法层两部分,JS接口层仍然采用JS语言开发,保持与JS项目的“平滑”承接,进而继续保留了JS项目开发效率高的优势,而底层核心算法层则采用WebAssembly构建,WebAssembly是JavaScript的增强版本,它可将JS语言编译成二进制结构,提供直接运行二进制机器代码的能力,因而运行效率远高于JS语言,进而能够有效提高JS项目的整体运行效率。正是基于此,可以将由WebAssembly实现部分称为“Web加速器”。然而,尽管Web加速器能够提高Web引擎的扩展性和高效性,但是,这种方案中存在JavaScript语言与WebAssembly之间的调用,而这种调用较为频繁和低效,严重影响浏览器运行JS项目的效率。
技术实现思路
本申请实施例提供一种基于浏览器的目标对象绘制方法、装置和浏览器等,用于解决现有技术中浏览器在绘制目标对象时,其JS与WebAssembly之间的调用频繁、低效,导致JS项目运行效率低的问题。第一方面,本申请实施例提供了一种基于浏览器的目标对象绘制方法,该方法包括:浏览器中的Web引擎接收对目标对象进行绘制的绘制请求,所述绘制请求中包含与所述目标对象对应的指令集标识;Web引擎根据所述绘制请求中包含的所述指令集标识,确定与所述指令集标识对应的指令集,所述指令集中包含对所述目标对象进行绘制的多条指令;Web引擎根据所述指令集中包含的多条指令,对所述目标对象进行绘制。第二方面,本申请实施例提供了一种基于浏览器的目标对象绘制装置,所述浏览器包括具有Web引擎的所述装置,该装置包括:接收单元,用于使Web引擎接收对目标对象进行绘制的绘制请求,所述绘制请求中包含与所述目标对象对应的指令集标识;确定单元,用于使Web引擎根据所述绘制请求中包含的所述指令集标识,确定与所述指令集标识对应的指令集,所述指令集中包含对所述目标对象进行绘制的多条指令;所述绘制单元,用于使Web引擎根据所述指令集中包含的多条指令,对所述目标对象进行绘制。第三方面,本申请实施例提供了一种运行器,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如第一方面所述的方法的步骤。第四方面,本申请实施例提供了一种浏览器,该浏览器包括Web引擎,所述Web引擎执行如第一方面所述的方法的步骤。第五方面,本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面所述的方法的步骤。本申请实施例提供的技术方案,在接收的目标对象绘制请求中包含指令集标识,Web引擎可以根据所述绘制请求中包含的指令集标识,确定与指令集标识对应的指令集,进而根据所述指令集中包含的多条指令,对所述目标对象进行绘制。这样,通过将多条指令整合为一个指令集,浏览器中的Web引擎可以直接调用指令集进行图形绘制,相较于现有技术而言,由于Web引擎由调用多次指令进行目标对象绘制改为调用一次指令集进行目标对象绘制,因此,可以减少JS到WebAssembly之间的调用次数,提高JS项目的运行效率。附图说明此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:图1为本申请的基于浏览器的目标对象绘制方法实施例的流程示意图;图2为本申请项目层与Web加速器与指令集之间的关系示意图;图3为本申请项目层、Web加速器与指令集、绘制数据之间的关系示意图;图4为本申请中单个指令集与多个数据区之间对应关系示意图;图5为本申请涉及的节点树结构示意图;图6为本申请涉及的本帧数据与前一帧数据之间关系的示意图;图7为本申请的基于浏览器的目标对象绘制装置实施例的结构示意图;图8为本申请的运行器实施例的结构示意图。具体实施方式如前所述,JS到WebAssembly之间调用次数较多,而JS语言为解释性脚本语言、WebAssembly为编译型语言,这种差异导致相互调用越多、越频繁,JS项目运行的效率将越低。为了解决该技术问题,本申请实施例提供了一种基于浏览器的目标对象绘制方法,该方法适用时其执行主体可以是浏览器中的Web引擎,该方法包括如下步骤:S101:Web引擎接收对目标对象进行绘制的绘制请求,所述绘制请求中包含与所述目标对象对应的指令集标识;S102:Web引擎根据所述绘制请求中包含的所述指令集标识,确定与所述指令集标识对应的指令集,所述指令集中包含对所述目标对象进行绘制的多条指令;S103:Web引擎根据所述指令集中包含的多条指令,对所述目标对象进行绘制。在理解上述实施例的技术方案及其延伸方案时,有几点值得说明:一是关于本实施例方法的执行主体。本实施例是基于浏览器进行的目标对象绘制,浏览器是作为绘制目标对象的载体,但并不意味着全部的执行工作是由浏览器来完成的。通常,浏览器包括很多组件,不同的组件由不同的功能。本实施例在浏览器中包括Web引擎,如前述介绍,Web引擎的基本功能是要完成JS项目的解析,但在本实施例中不排除还进行一些其他工作,比如,依据指令集标识符确定其对应的指令集,因而不能简单地将本实施例的Web引擎和现有技术中的引擎等同起来。在另一些情况下,Web引擎也仅仅是一种指示代称,实际上只要能够完成本实施例所述的方法步骤,均可以称为Web引擎。由于本申请实施例将要解决JS与WebAssembly之前的调用问题,执行上述步骤的主体可以主要是Web引擎中JS接口层部分和WebAssembly底层算法部分,这并不意味着将Web引擎仅仅限定在此两部分之内,本领域技术人员知道,根据实际需要Web引擎可以包含其他相应的部分。二是关于本实施例提到的“目标对象”。目标对象是将要通过本实施例进行绘制的“对象”,其可“小”,亦可“大”。所谓“小”,是指其可以通过一套指令集能够绘制的具有一定独立性的最小单元,比如,由三条指令组成的一个指令集,能够绘制一个三角形,如果是两个底边重叠的三角形,则被认为是两个目标对象,但是,对三角形的某个边的绘制,则不能认为是一个待绘制的目标对象。所谓“大”,是指其可以是通过一套或多套指令集能够绘制的包含多个图形的一个整体。比如,一副复杂的画,在该画中包含了三角形、四边形、圆形等等基本的组成要素,那么对该副画的绘制,也可以称为是对“一个”目标对象的绘制。实际上,“目标对象”的外延可以取决于指令集的外延,如果预先设定的指令集是绘制一个“本文档来自技高网...

【技术保护点】
1.一种基于浏览器的目标对象绘制方法,其特征在于,所述浏览器包括Web引擎,所述方法包括:Web引擎接收对目标对象进行绘制的绘制请求,所述绘制请求中包含与所述目标对象对应的指令集标识;Web引擎根据所述绘制请求中包含的所述指令集标识,确定与所述指令集标识对应的指令集,所述指令集中包含对所述目标对象进行绘制的多条指令;Web引擎根据所述指令集中包含的多条指令,对所述目标对象进行绘制。

【技术特征摘要】
1.一种基于浏览器的目标对象绘制方法,其特征在于,所述浏览器包括Web引擎,所述方法包括:Web引擎接收对目标对象进行绘制的绘制请求,所述绘制请求中包含与所述目标对象对应的指令集标识;Web引擎根据所述绘制请求中包含的所述指令集标识,确定与所述指令集标识对应的指令集,所述指令集中包含对所述目标对象进行绘制的多条指令;Web引擎根据所述指令集中包含的多条指令,对所述目标对象进行绘制。2.如权利要求1所述的方法,其特征在于,根据所述绘制请求中包含的所述指令集标识,确定与所述指令集标识对应的指令集,具体包括:根据所述绘制请求中包含的所述指令集标识,从第一存储区中查找与所述指令集标识对应的指令集,所述第一存储区中存储有不同的指令集标识以及与指令集标识对应的指令集。3.如权利要求2所述的方法,其特征在于,所述指令集包含子指令集,则根据所述绘制请求中包含的所述指令集标识,确定与所述指令集标识对应的指令集,具体包括:根据所述绘制请求中包含的所述指令集标识,从第一存储区中查找与所述指令集标识对应的指令集;从所述指令集中确定所述指令集包含的子指令集标识;根据所述子指令集标识,从第二存储区中查找与所述子指令集标识对应的子指令集。4.如权利要求2所述的方法,其特征在于,所述指令集中包含绘制目标对象的绘制数据,则根据所述指令集中包含的多条指令,对所述目标对象进行绘制,具体包括:根据所述指令集中包含的多条指令以及所述绘制目标对象的绘制数据,对所述目标对象进行绘制。5.如权利要求2所述的方法,其特征在于,所述指令集中包含绘制目标对象的绘制数据的数据索引,则根据所述指令集中包含的多条指令,对所述目标对象进行绘制,具体包括:根据所述指令集中数据索引从第三存储区中获取所述数据索引对应的绘制数据,所述第三存储区中存储有用于对目标对象进行绘制的绘制数据;根据所述指令集中包含的多条指令以及所述数据索引对应的绘制数据,对所述目标对象进行绘制。6.如权利要求5所述的方法,其特征在于,所述第三存储区中包括多个数据区,不同的数据区存储有不同的绘制数据,则根据所述指令集中包含的多条指令,对所述目标对象进行绘制,具体包括:根据所述指令集中数据索引从第三存储区中的一个数据区中获取所述数据索引对应的第一绘制数据,根据所述指令集中包含的多条指令以及所述数据索引对应的第一绘制数据,对所述目标对象进行绘制;和/或,根据所述指令集中数据索引从第三存储区中的另一个数据区中获取所述数据索引对应的第二绘制数据,根据所述指令集中包含的多条指令以及所述数据索引对应的第二绘制数据,对目标对象进行绘制。7.如权利要求2所述的方法,其特征在于,所述第一存储区中存储有不同类型的所述指令集,不同类型的所述指令集对应所述目标对象的不同状态,则...

【专利技术属性】
技术研发人员:谢成鸿
申请(专利权)人:搜游网络科技北京有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1