[发明专利]一种图形绘制方法及装置有效
申请号: | 201710208461.1 | 申请日: | 2017-03-31 |
公开(公告)号: | CN107122176B | 公开(公告)日: | 2020-08-04 |
发明(设计)人: | 刘一琛;陈少杰;张文明 | 申请(专利权)人: | 武汉斗鱼网络科技有限公司 |
主分类号: | G06F8/38 | 分类号: | G06F8/38 |
代理公司: | 北京路浩知识产权代理有限公司 11002 | 代理人: | 汤财宝 |
地址: | 430000 湖北省武汉市武汉东湖*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 图形 绘制 方法 装置 | ||
本发明提供一种图形绘制方法及装置,其中,所述方法包括:步骤1,基于相同的帧图像界面元素,将图形划分为多个待绘制的逻辑层;步骤2,基于层切换的状态机,对所述多个待绘制的逻辑层分别进行独立的资源加载和绘制。本发明提供的一种图形绘制方法及装置,将动画效果或者游戏场景中的图形绘制时所需要的资源分开加载,以分层的方式去实现图形绘制,绘制完成后及时释放内存,内存占用率低、能有效避免因为一次加载所有资源造成的性能损耗。
技术领域
本发明涉及软件开发领域,更具体地,涉及一种图形绘制方法及装置。
背景技术
在软件开发过程中,开发人员经常会使用开发平台所提供的图形绘制接口来处理一些对性能要求较高的界面动画操作。目前使用图形绘制接口进行图形显示时,首先将所有需要显示的图片资源一次加载到内存中,然后等到需要显示该图片时就将内存中对应的资源进行显示。
现有技术存在如下问题:一次将所有的资源加载进内存,特别是遇到复杂的动画效果或游戏场景显示时,会导致加载时间过长,内存占用过多,不仅影响界面动画的初次显示效果,还可能导致应用的响应速度变慢和性能下降,用户体验较差。
发明内容
本发明提供一种图形绘制方法及装置,能够克服或者至少部分解决现有图形绘制技术中存在的一次将所有资源加载进内存,加载时间过长、内存占用过多、显示效果差,导致应用的性能下降和用户体验差的问题。
根据本发明的一个方面,提供一种图形绘制方法,包括:
步骤1,基于相同的帧图像界面元素,将图形划分为多个待绘制的逻辑层;
步骤2,基于层切换的状态机,对所述多个待绘制的逻辑层分别进行独立的资源加载和绘制。
其中,所述步骤1进一步包括:
将图形细化为多个帧图像,获取绘制所述多个帧图像中的每个帧图像所需要的界面元素;
将所有需要相同界面元素的帧图像设定为同一逻辑层,得到多个待绘制的逻辑层。
其中,所述步骤2进一步包括:
定义第一数组,且将所述第一数组中的各个变量分别初始化为所述多个待绘制的逻辑层中的各个逻辑层;
从所述第一数组中顺序读取所述各个逻辑层作为目标层。
其中,所述步骤2进一步包括:
调用所述目标层的加载函数,对绘制所述目标层所需要的资源进行加载;
基于所述资源,调用所述目标层的绘制函数对所述目标层进行绘制;
绘制完成后,调用所述目标层的释放函数,释放所述资源。
其中,所述状态机包括:枚举类、第二数组和层切换函数,其中,
所述枚举类的各个成员分别为所述多个待绘制的逻辑层中的各个逻辑层;
所述第二数组中的各个变量分别被初始化为所述多个待绘制的逻辑层中各个逻辑层的枚举;
所述层切换函数的形参的类型为所述枚举类,且所述层切换函数的内部包括一个用于保存当前逻辑层的全局变量。
其中,所述步骤2进一步包括:
将所述第二数组中的各个变量顺序作为所述层切换函数的实参,调用所述层切换函数对所述多个待绘制的逻辑层进行逐一绘制。
其中,所述调用所述层切换函数对所述多个待绘制的逻辑层进行逐一绘制包括:
判断所述全局变量是否为空,若不为空,则调用所述全局变量所对应的逻辑层的释放函数,释放绘制当前逻辑层所需要的资源;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉斗鱼网络科技有限公司,未经武汉斗鱼网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710208461.1/2.html,转载请声明来源钻瓜专利网。