一种渲染方法和装置制造方法及图纸

技术编号:9034413 阅读:270 留言:0更新日期:2013-08-15 01:14
本发明专利技术公开了一种渲染方法、装置和移动设备。渲染方法包括:初始化画图模块,创建至少两个缓存;确定所有可视视图与至少两个缓存的对应关系,根据对应关系将所有可视视图一一渲染至对应的缓存,并将所有缓存进行合成后输出显示;判断是否有可视视图发生变化,若有可视视图发生变化,则找出变化的可视视图所在的缓存;对找出的缓存中需要进行渲染的可视视图重新进行渲染,并将重新进行渲染后的缓存与未重新进行渲染的缓存进行合成后输出显示。通过上述方式,本发明专利技术能够减少因为某个上层应用刷新而受到影响需要重新渲染的视图的个数,优化渲染性能,提高整个系统效率。

【技术实现步骤摘要】

本专利技术涉及一种渲染方法和装置
技术介绍
一般的画图模块(Surface Flinger)的渲染方法都是单缓存的,就是所有上层应用的视图(Surface)都被渲染到一个缓存中。在渲染时通常是某个上层应用向SurfaceFlinger发出渲染请求,Surface Flinger响应请求并获得该应用的Surface渲染至硬件缓存(Frame Buffer),最终显示给用户。单缓存的渲染在实际应用时,往往一个系统存在多个上层应用,一个上层应用发生变化,有可能导致其他上层应用的Surface都发生变化,比如多个上层应用相互覆盖的情况。这种渲染方法在某个上层应用频繁刷新的时,会大大影响整个系统效率。
技术实现思路
本专利技术主要解决的技术问题是提供一种渲染方法和装置,能够减少因为某个上层应用刷新而受到影响需要重新渲染的视图的个数,优化渲染性能,提高整个系统效率。为解决上述技术问题,本专利技术采用的一个技术方案是:提供一种渲染的方法,包括:初始化画图模块(Surface Flinger),创建至少两个缓存;确定所有可视视图(Surface)与所述至少两个缓存的对应关系,根据所述对应关系将所述所有可视视图一一渲染至对应的缓存,并将所有缓存进行合成后输出显示;判断是否有可视视图发生变化,若有可视视图发生变化,则找出变化的可视视图所在的缓存;对所述找出的缓存中需要进行渲染的可视视图重新进行渲染,并将所述重新进行渲染后的缓存与未重新进行渲染的缓存进行合成后输出显示。其中,所述确定所有可视视图与所述至少两个缓存的对应关系的步骤包括:获取所有可视视图,从所述所有可视视图中找出第一可视视图,所述第一可视视图为所有可视视图中刷新频率最高的可视视图;将所述第一可视视图及在所述第一可视视图之上的所有可视视图对应到所述至少两个缓存的其中一个缓存中;判断将可视视图对应到缓存中的次数是否到达阈值,所述阈值为所述至少两个缓存的个数与I之间的差值;若所述将可视视图对应到缓存中的次数未到达阈值,则继续获取剩下的所有所述可视视图,从剩下的所述所有可视视图中找出第二可视视图,所述第二可视视图为所述剩下的所有所述可视视图中刷新频率最高的可视视图,将所述第二可视视图及在所述第二可视视图之上的所有可视视图对应到所述至少两个缓存中的另外一个缓存中,然后返回所述判断将可视视图对应到缓存中的次数是否到达阈值的步骤 ;若所述将可视视图对应到缓存中的次数到达所述阈值,则将剩下的所有所述可视视图对应到所述至少两个缓存的剩余一个缓存中,直到确定所述所有可视视图与所述至少两个缓存的一一对应关系。其中,所述初始化画图模块,创建至少两个缓存的步骤包括为:初始化画图模块,创建显示硬设备(Display Hardware);使所述显示硬设备创建至少两个缓存,所述至少两个缓存的分辨率均与当前操作系统的分辨率相同。其中,所述对找出的缓存中需要进行渲染的可视视图进行渲染的步骤包括:从找出的缓存中找到所述变化的可视视图以及在所述变化的可视视图之上的所有可视视图作为需要进行渲染的可视视图;获取所述需要进行渲染的所有可视视图中最底层的可视视图;对当前的所述最底层的可视视图进行脏区域(Dirty Region)计算,根据脏区域计算结果将当前的所述最底层的可视视图渲染至当前的缓存;获取剩下的所述需要进行渲染的可视视图,重复以上步骤,直至完成将所有所述需要进行渲染的可视视图渲染到对应的缓存的步骤。其中,所述根据所述对应关系将所述所有可视视图一一渲染至对应的缓存的步骤包括:根据所述对应关系,从所述所有可视视图的最底层可视视图依次往上将所有可视视图一一渲染至对应的缓存。为解决上述技术问题,本专利技术采用的另一个技术方案是:提供一种渲染的装置,包括:包括缓存创建模块、第一渲染模块、判断模块、第二渲染模块以及显示模块:所述缓存创建模块用于初始化画图模块,创建至少两个缓存;所述第一渲染模块用于确定所有可视视图与所述缓存创建模块创建的至少两个缓存的对应关系,根据所述对应关系将所述所有可视视图一一渲染至对应的缓存;所述判断模块用于判断是否有可视视图发生变化;所述第二渲染模块用于当有可视视图发生变化时,找出所述变化的可视视图所在的缓存,对所述找出的缓存中需要进行渲染的可视视图进行渲染;所述显示模块用于在所述第一渲染模块或所述第二渲染模块完成渲染后,将所有缓存进行合成后输出显示。其中,所述缓存创建模块包括第一创建单元和第二创建单元,其中:所述第一创建单元用于初始化画图模块,创建显示硬设备;所述第二创建单元用于利用所述第一创建单元创建的显示硬设备,创建至少两个缓存。其中,所述 第二渲染模块包括获取单元和渲染单元,其中:所述获取单元用于在其中一个所述可视视图发生变化时,找出所述变化的可视视图所在的缓存,从找出的缓存中找到所述变化的可视视图以及在所述变化的可视视图之上的所有可视视图作为需要进行渲染的可视视图;所述渲染单元用于对需要进行渲染的可视视图进行脏区域计算,根据脏区域计算结果将需要进行渲染的可视视图渲染到当前的缓存中。其中,所述第一渲染模块具体用于确定所有可视视图与所述缓存创建模块创建的至少两个缓存的对应关系,根据所述对应关系,从所述所有可视视图的最底层可视视图依次往上将所有可视视图一一渲染至对应的缓存。本专利技术的有益效果是:区别于现有技术的情况,本专利技术采用多个缓存渲染,每个缓存的渲染是独立的。这样当一个缓存中的Surface发生变化时,只需要考虑其所在的缓存中的Surface是否会受到其影响,极大的减少了因为某个上层应用需要渲染而受到影响的Surface个数,优化渲染性能,提高系统效率。附图说明图1是本专利技术渲染方法一实施方式的流程图;图2是本专利技术渲染方法一实施方式中确定所有可视视图与至少两个缓存的对应关系的流程图3是本专利技术渲染方法一实施方式中对找出的缓存中需要进行渲染的可视视图进行渲染的流程图;图4是本专利技术渲染方法的具体应用一实施方式的流程图;图5是本专利技术渲染装置一实施方式的结构示意图;图6是本专利技术渲染装置一实施方式缓存创建模块的结构示意图;图7是本专利技术渲染装置一实施方式中第二渲染模块的结构示意图。具体实施例方式参阅图1,本专利技术渲染方法一实施方式包括:步骤SlOl:初始化画图模块,创建至少两个缓存;在一般的操作系统中,每一个应用打开前都需要进行渲染才能得到最终显示给用户的显示效果。渲染是指将用户设置的数据综合计算,生成单帧图像或一系列动画图像,并以用户指定的方式输出。在本专利技术实施方式中,渲染是指将应用程序可视化的过程。比如安卓系统中,如果要打开某一个应用,会向安卓系统内部的画图模块(Surface Flinger)发送刷新请求,系统根据请求获得该应用的视图(Surface),将该视图渲染到帧缓冲区,最终显示给用户。画图模块是系统用于画图的一个工具,而缓存是画图模块本身产生的,应用的视图最终渲染到缓存中。在画图模块中,一个缓存相当一个帧缓冲区的本地窗口(FrameBuffer Native Window)。因此,巾贞缓冲简称巾贞缓存或显存,它是屏幕所显示画面的一个直接映象,又称为位映射图(Bit Map)或光栅。帧缓存的每一存储单元对应屏幕上的一个像素,整个帧缓存对应一帧图像。在初始化画图模块的时候会创建一个显示硬本文档来自技高网...

【技术保护点】
一种渲染的方法,其特征在于,包括:初始化画图模块,创建至少两个缓存;确定所有可视视图与所述至少两个缓存的对应关系,根据所述对应关系将所有可视视图一一渲染至对应的缓存,并将所有缓存进行合成后输出显示;判断是否有可视视图发生变化,若有可视视图发生变化,则找出变化的可视视图所在的缓存;对所述找出的缓存中需要进行渲染的可视视图重新进行渲染,并将所述重新进行渲染后的缓存与未重新进行渲染的缓存进行合成后输出显示。

【技术特征摘要】

【专利技术属性】
技术研发人员:邹健强
申请(专利权)人:上海晨思电子科技有限公司晨星半导体股份有限公司
类型:发明
国别省市:

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

1