【技术实现步骤摘要】
图像渲染的方法和装置
本专利技术涉及图像显示
,特别是涉及一种图像渲染的方法和装置。
技术介绍
目前渲染显示图像的过程大致有2种:(1)开启垂直同步,并且使用双缓冲模式:响应用户的图像操作,渲染图像到BBuffer(BackBuffer,后缓冲),然后Swapbuffer,将图像复制到FBuffer(FrontBuffer)使用户看到图像,如此循环。(2)不开启垂直同步,并且使用双缓冲模式:渲染图像到BBuffer,然后Swapbuffer,将图像复制到FBuffer使用户看到图像,如此循环。在这2种方式中,过程似乎一样,但在(2)中,由于未开启垂直同步,将会引起图像水平撕裂;在(1)中,由于开启了垂直同步,将会引起Swapbuffer阻塞。如果显示器刷新帧率为60FPS(FramesPerSecond),最坏情况下,Swapbuffer将阻塞16ms,这足以引起下一个渲染循环阻塞,导致响应用户操作迟缓。再加上所有的循环是串行的,一旦前一个循环卡的时间较常,后面渲染也就相应被延后,加剧了响应操作迟缓的问题,不能保证图像渲染的帧率。
技术实现思路
基于此,有必要针 ...
【技术保护点】
一种图像渲染的方法,其特征在于,包括步骤:创建至少两个帧缓冲区对象;创建图像渲染线程,将图像数据渲染到所述帧缓冲区对象;创建swap线程,将后缓冲所存储的图像数据交换到前缓冲,将渲染后的所述图像数据从所述帧缓冲区对象复制到所述后缓冲。
【技术特征摘要】
1.一种图像渲染的方法,其特征在于,包括步骤:创建至少两个帧缓冲区对象;创建图像渲染线程,将图像数据渲染到所述帧缓冲区对象;创建swap线程,将后缓冲所存储的图像数据交换到前缓冲,将渲染后的所述图像数据从所述帧缓冲区对象复制到所述后缓冲;所述帧缓冲区对象包含当前状态信息、就绪时间、锁定标识,所述当前状态信息包括可读状态、可写状态;所述就绪时间设置为图像数据渲染完成时间;所述锁定标识包括加锁或解锁;将图像数据渲染到所述帧缓冲区对象的步骤包括:初始化,绑定目标显示窗口绘图上下文;获取图像渲染指令;判断各帧缓冲区对象的当前状态信息,若至少有两个帧缓冲区对象的当前状态信息为可写状态,则将第一个帧缓冲区对象的锁定标识设置为加锁;若各帧缓冲区对象的当前状态信息为可读状态,则将就绪时间较早的帧缓冲区对象的锁定标识设置为加锁,当前状态信息设置为可写状态;若只有一个帧缓冲区对象的当前状态信息为可写状态,则将该帧缓冲区对象的锁定标识设置为加锁;将图像数据渲染到当前状态信息为可写状态且锁定标识为加锁的帧缓冲区对象;在所述图像数据渲染完成时刻,将所述帧缓冲区对象的当前状态信息设置为可读状态,锁定标识设置为解锁,返回获取图像渲染指令的步骤。2.根据权利要求1所述的图像渲染的方法,其特征在于,所述帧缓冲区对象包含当前状态信息、就绪时间、锁定标识,所述当前状态信息包括可读状态、可写状态;所述就绪时间设置为图像数据渲染完成时间;所述锁定标识包括加锁或解锁;将后缓冲所存储的图像数据交换到前缓冲,将渲染后的所述图像数据从所述帧缓冲区对象复制到所述后缓冲的步骤包括:初始化,绑定目标显示窗口绘图上下文;将后缓冲所存储的图像数据交换到前缓冲;判断各帧缓冲区对象的当前状态信息,若至少有两个帧缓冲区对象的当前状态信息为可读状态,则将就绪时间较晚的帧缓冲区对象的锁定标识设置为加锁;若只有一个帧缓冲区对象的当前状态信息为可读状态,则将该帧缓冲区对象的锁定标识设置为加锁;若各帧缓冲区对象的当前状态信息为可写状态,则返回将后缓冲所存储的图像数据交换到前缓冲的步骤;将渲染后的图像数据从当前状态信息为可读状态且锁定标识为加锁的帧缓冲区对象复制到后缓冲;在渲染后的图像数据复制到后缓冲完成时刻,将所述帧缓冲区对象的当前状态信息设置为可写状态,锁定标识设置为解锁,返回将后缓冲所存储的图像数据交换到前缓冲的步骤。3.根据权利要求1或2所述的图像渲染的方法,其特征在于,创建swap线程的步骤之后,还包括开启垂直同步的步骤。4.一种图像渲染的装置,其特征在于,包括:帧缓冲区对象模块,所述帧缓冲区对象模块创建至少两个帧缓冲区对象;与帧缓冲区对象模块相连的图像渲染线程模块,所述图像渲染线程模块创建图像渲染线程,将图像数据渲染到所述帧缓冲区对象;与帧缓冲区对象模块相连的swap线程模块,所述swap线程模块创建swap线...
【专利技术属性】
技术研发人员:荆建营,
申请(专利权)人:广东威创视讯科技股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。