[发明专利]一种图形绘制方法和装置有效
申请号: | 201810014707.6 | 申请日: | 2018-01-08 |
公开(公告)号: | CN110018812B | 公开(公告)日: | 2022-09-09 |
发明(设计)人: | 谢成鸿;王亚伟 | 申请(专利权)人: | 北京蓝亚盒子科技有限公司 |
主分类号: | G06F8/20 | 分类号: | G06F8/20;G06F9/451 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 王学强 |
地址: | 100094 北京市海*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 图形 绘制 方法 装置 | ||
本申请公开了一种图形绘制方法和装置,该方法包括:接收对目标图形的绘制请求,所述绘制请求中包含所述目标图形的图形标识;根据所述绘制请求中包含的所述图形标识,确定与所述图形标识对应的指令集,所述指令集中包含对所述目标图形进行绘制的多条指令;根据所述指令集中包含的多条指令,对所述目标图形进行绘制。这样,通过将多条指令整合为一个指令集,运行器中的JS引擎可以直接调用指令集进行图形绘制,相较于现有技术而言,由于JS引擎由调用多次指令进行图形绘制改为调用一次指令集进行图形绘制,因此,可以减少JS到C++代码的调用次数,提高运行器的运行效率。
技术领域
本申请涉及计算机技术领域,尤其涉及一种图形绘制方法和装置。
背景技术
在2D图形或3D图形的绘制中,为了提高运行效率,在不依赖于浏览器为载体的情况下,可以使用运行器(runtime)进行图形绘制。运行器可以基于原生应用开发(例如iOS、android原生框架)对JavaScript(以下简称JS)引擎进行封装,实现JS语言与C++语言的相互调用,并通过OpenGLES(OpenGL for Embedded Systems)进行画面显示。
通常,运行器中可以包含JS引擎和C++引擎框架,运行器在实现JS语言与C++语言的相互调用时,JS引擎可以对JS语言进行解析,将解析后的JS语言通过JS引擎中的引擎接口调用至C++引擎框架中以实现C++语言对JS语言的调用,同时,JS引擎也可以通过该引擎接口将C++语言调用至JS语言中,以实现JS语言与C++语言的相互调用。在实现JS语言与C++语言的相互调用后,可以通过OpenGLES进行渲染处理并显示画面。
在实际应用中,运行器在绘制图形时,JS引擎可以将用于绘制图形的WebGL指令(使用JS语言编写)进行解析并调用至C++的引擎框架来完成图形的绘制。然而,由于webGL指令特别底层,JS引擎往往需要调用多次WebGL指令才可以完成一次图形绘制。这样,由于JS引擎需要频繁调用WebGL指令才能完成一次图形绘制,导致JS引擎的效率比较低,运行器的运行效率比较低。
发明内容
本申请实施例提供一种图形绘制方法和装置,用于解决现有技术中运行器在绘制图形时,其内部的JS引擎的引擎接口需要频繁调用WebGL指令才能完成一次图形绘制,导致运行器的运行效率比较低的问题。
第一方面,提供了一种图形绘制方法,包括:
接收对目标图形的绘制请求,所述绘制请求中包含所述目标图形的图形标识;
根据所述绘制请求中包含的所述图形标识,确定与所述图形标识对应的指令集,所述指令集中包含对所述目标图形进行绘制的多条指令;
根据所述指令集中包含的多条指令,对所述目标图形进行绘制。
第二方面,提供了一种图形绘制装置,包括:
接收单元,接收对目标图形的绘制请求,所述绘制请求中包含所述目标图形的图形标识;
确定单元,根据所述绘制请求中包含的所述图形标识,确定与所述图形标识对应的指令集,所述指令集中包含对所述目标图形进行绘制的多条指令;
绘制单元,根据所述指令集中包含的多条指令,对所述目标图形进行绘制。
第三方面,提供了一种运行器,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如第一方面所述的方法的步骤。
第四方面,提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面所述的方法的步骤。
本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京蓝亚盒子科技有限公司,未经北京蓝亚盒子科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810014707.6/2.html,转载请声明来源钻瓜专利网。