优化Canvas绘制性能的方法及装置制造方法及图纸

技术编号:12384202 阅读:98 留言:0更新日期:2015-11-25 15:29
本发明专利技术提供一种优化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上。其中,所述压缩纹理数据生成单元包括,压缩模块和生成模块,压缩模块用于压缩解码后的非压缩位图;生成模块用于生成与所述非压缩位图相对应的压缩纹理数据。进一步包括存储单元,用于将压缩纹理数据生成单元生成的与所述非压缩位图相对应的压缩纹理数据与非压缩位图的位图1D相对应的存储。其中,所述压缩纹理创建单元进一步包括:压缩纹理数据获取单元,用于查找所述存储单元中是否存在所述压缩纹理数据,当所述存储单元中存在所述压缩纹理数据时,从所述存储单元中获取所述压缩纹理数据,根据所获取的压缩纹理数据创建所述非压缩位图的压缩纹理。进一步包括还包括判断单元,用于根据预设条件判断所述非压缩位图是否能够进行纹理压缩,其中,所述预设条件为:非压缩位图为不可变、非压缩位图的宽度小于或者等于设备支持的最大纹理宽度并且大于或者等于128像素、所述非压缩位图的绘制次数超过设定的阈值;当所述非压缩位图满足上述预设条件中的一项或者多项组合时,即判断所述非压缩位图能够进行纹理压缩。根据本专利技术提供的优化Canvas绘制性能的方法及装置,首先对要绘制到Canvas上的图片进行解码,将解码后的位图实时进行压缩,之后创建一个压缩纹理,然后将压缩纹理绘制到Canvas上。由于本专利技术对要绘制到Canvas上的图片的解码后的位图数据进行了实时压缩,创建了一个压缩格式的纹理,从而能够减少纹理对内存的占用,进一步提高GPU对纹理进行贴图操作的性能。为了实现上述以及相关目的,本专利技术的一个或多个方面包括后面将详细说明并在权利要求中特别指出的特征。下面的说明以及附图详细说明了本专利技术的某些示例性方面。然而,这些方面指示的仅仅是可使用本专利技术的原理的各种方式中的一些方式。此外,本专利技术旨在包括所有这些方面以及它们的等同物。【附图说明】通过参考以下结合附图的说明及权利要求书的内容,并且随着对本专利技术的更全面理解,本专利技术的其它目的及结果将更加明白及易于理解。在附图中:图1为根据本专利技术实施例的优化Canvas绘制性能的方法的流程示意图;图2为根据本专利技术实施例的优化Canvas绘制性能的方法的详细流程示意图;图3为根据本专利技术实施例的优化Canvas绘制性能的装置逻辑结构框图。在所有附图中相同的标号指示相似或相应的特征或功能。【具体实施方式】以下将结合附图对本专利技术的具体实施例进行详细描述。针对前述现有的贴图操作存在纹理占用内存较大且贴图操作的性能也较差的问题。本专利技术首先对要绘制到Canvas上的图片进行解码,将解码后的位图实时进行压缩,之后创建一个压缩纹理,然后将压缩纹理绘制到Canvas上。通过本专利技术能够减少纹理对内存的占用,且能减少GPU对纹理进行贴图时访问内存的次数进一步提高GPU对纹理进行贴图操作的性能。需要说明的是,本专利技术中所提到的Canvas绘制性能指的是GPU通过贴图操作将纹理绘制到Canvas上的性能,也就指的是GPU对纹理进行贴图操作的性能。为了使本
的人员更好地理解本专利技术实施例中的技术方案,并使本专利技术实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本专利技术实施例中技术方案作进一步详细的说明。为了说明本专利技术提供的优化Canvas绘制性能的方法,图1示出了根据本专利技术实施例的优化Canvas绘制性能的方法的流程示意图。如图1所示,本专利技术提供的优化Canvas绘制性能的方法包括:[004当前第1页1 2 3 4 本文档来自技高网
...

【技术保护点】
一种优化Canvas绘制性能的方法,包括:压缩解码后的非压缩位图,生成与所述非压缩位图相对应的压缩纹理数据;根据所述压缩纹理数据创建所述非压缩位图的压缩纹理;将所述压缩纹理绘制到Canvas上。

【技术特征摘要】

【专利技术属性】
技术研发人员:梁捷易旭昕
申请(专利权)人:广州市动景计算机科技有限公司
类型:发明
国别省市:广东;44

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

1