[发明专利]优化Canvas绘制性能的方法及装置有效
申请号: | 201410183109.3 | 申请日: | 2014-04-30 |
公开(公告)号: | CN105096367B | 公开(公告)日: | 2018-07-13 |
发明(设计)人: | 梁捷;易旭昕 | 申请(专利权)人: | 广州市动景计算机科技有限公司 |
主分类号: | G06T15/00 | 分类号: | G06T15/00;G06T1/20 |
代理公司: | 北京超凡志成知识产权代理事务所(普通合伙) 11371 | 代理人: | 吴开磊 |
地址: | 510665 广东省广州市天河区*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 纹理 压缩纹理数据 非压缩 压缩 绘制 解码 纹理绘制 压缩位图 占用量 贴图 与非 优化 创建 | ||
本发明提供一种优化Canvas绘制性能的方法及装置,其中的方法包括:压缩解码后的非压缩位图,获得与非压缩位图相对应的压缩纹理数据;根据压缩纹理数据创建非压缩位图的压缩纹理;将压缩纹理绘制到Canvas上。通过本发明能够减少纹理对内存的占用量,同时提高GPU对纹理进行贴图操作的性能。
技术领域
本发明涉及移动通信技术领域,更为具体地,涉及一种优化Canvas绘制性能的方法及装置。
背景技术
随着HTML5的兴起,尤其是Canvas的引入,使得Web页面的开发者完全不需要借助Flash或者Silverlight之类的插件,便可以实现直接在网页中创建并操作动画,网页游戏便是最好的应用之一。
通常一些HTML5Canvas网页游戏需要在Canvas上绘制大量的图片,例如背景、人物、前景修饰等等。这些图片一般使用PNG或者JPEG图像压缩格式进行编码,GPU(显卡处理器)在绘制这些图片时,需要先将图片进行解码得到一个非压缩的位图,然后再将这个非压缩的位图上传到纹理缓存区创建一个非压缩的纹理,最后通过贴图操作将这个非压缩的纹理绘制到Canvas上面。
由于绘制到Canvas上面的纹理是非压缩的,因此占用的移动终端的内存较大,同时GPU在对非压缩的纹理进行贴图操作时,还需要多次访问内存,如此便造成GPU对纹理进行贴图操作的性能较差。
发明内容
鉴于上述问题,本发明的目的是提供一种优化Canvas绘制性能的方法及装置,以减少纹理对内存的占用,且能减少GPU对纹理进行贴图时访问内存的次数,进而提高GPU对纹理进行贴图操作的性能。
根据本发明的一个方面,提供一种优化Canvas绘制性能的方法,包括:
压缩解码后的非压缩位图,生成与所述非压缩位图相对应的压缩纹理数据;
根据所述压缩纹理数据创建所述非压缩位图的压缩纹理;
将所述压缩纹理绘制到Canvas上。
其中,在压缩解码后的非压缩位图生成与所述非压缩位图相对应的压缩纹理数据的过程中,通过在后台运行的纹理压缩线程将所述非压缩位图进行压缩生成与所述非压缩位图相对应的压缩纹理数据。
其中,在生成与所述非压缩位图相对应的压缩纹理数据后,将所述压缩纹理数据存储于缓存区。
其中,根据所述压缩纹理数据创建所述非压缩位图的压缩纹理前包括:
查找所述缓存区中是否存在所述压缩纹理数据,
当所述缓存区中存在所述压缩纹理数据时,从所述缓存区中获取所述压缩纹理数据。
其中,压缩解码后的非压缩位图,生成与所述非压缩位图相对应的压缩纹理数据前包括:
根据预设条件判断所述非压缩位图是否能够进行纹理压缩,其中,
所述预设条件为:非压缩位图为不可变、非压缩位图的宽度小于或者等于设备支持的最大纹理宽度并且大于或者等于128像素、所述非压缩位图的绘制次数超过设定的阈值;
当所述非压缩位图满足上述预设条件中的一项或者多项组合时,即判断所述非压缩位图能够进行纹理压缩。
另一方面,本发明还提供一种优化Canvas绘制性能的装置,包括:
压缩纹理数据生成单元,用于压缩解码后的非压缩位图,生成与所述非压缩位图相对应的压缩纹理数据;
压缩纹理创建单元,用于根据所述压缩纹理数据生成单元所生成的压缩纹理数据创建所述非压缩位图的压缩纹理;
绘制单元,用于将所述压缩纹理创建单元所创建的压缩纹理绘制到Canvas上。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广州市动景计算机科技有限公司,未经广州市动景计算机科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410183109.3/2.html,转载请声明来源钻瓜专利网。