一种界面引擎中的图形图像渲染方法和装置.pdf

上传人:1*** 文档编号:1568688 上传时间:2018-06-25 格式:PDF 页数:11 大小:459.13KB
返回 下载 相关 举报
摘要
申请专利号:

CN201110389349.5

申请日:

2011.11.30

公开号:

CN103135973A

公开日:

2013.06.05

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 9/44申请日:20111130|||公开

IPC分类号:

G06F9/44

主分类号:

G06F9/44

申请人:

腾讯科技(深圳)有限公司

发明人:

涂强; 翁粤东

地址:

518044 广东省深圳市福田区振兴路赛格科技园2栋东403室

优先权:

专利代理机构:

北京德琦知识产权代理有限公司 11018

代理人:

张玉波;宋志强

PDF下载: PDF下载
内容摘要

本发明实施例公开了一种界面引擎中的图形图像渲染方法和装置。该方法包括:创建渲染容器,所述渲染容器中封装了N种渲染能力,其中N>1;创建纹理,并向所述纹理中填充原始图像数据;将所述纹理中的原始图像数据,以预设的混合方式渲染到所述渲染容器中。应用本发明能够方便界面引擎的使用者进行图形图像渲染,提高图形图像渲染的效率。

权利要求书

权利要求书一种界面引擎中的图形图像渲染方法,其特征在于,该方法包括:
创建渲染容器,所述渲染容器中封装了N种渲染能力,其中N>1;创建纹理,并向所述纹理中填充原始图像数据;
将所述纹理中的原始图像数据,以预设的混合方式渲染到所述渲染容器中。
根据权利要求1所述的方法,其特征在于,该方法还包括:
获取当前的中央处理器CPU信息,得到当前CPU所支持的能力;
所述以预设的混合方式渲染到所述渲染容器中包括:
获取当前的CPU信息,根据当前CPU所支持的能力,将所述纹理中的原始图像数据渲染到所述渲染容器中。
根据权利要求2所述的方法,其特征在于,所述根据当前CPU所支持的能力,将所述纹理中的原始图像数据渲染到所述渲染容器中包括:
判断当前CPU是否支持单指令多数据流扩展指令SSE指令的后续版本SSE2指令,如果支持SSE2指令,利用SSE2指令将所述纹理中的原始图像数据渲染到所述渲染容器中,如果不支持SSE2指令,判断当前CPU是否支持SSE指令,如果支持SSE指令,利用SSE指令将所述纹理中的原始图像数据渲染到所述渲染容器中,如果不支持SSE指令,判断当前CPU是否支持多媒体扩展指令MMX指令,如果支持MMX指令,利用MMX指令将所述纹理中的原始图像数据渲染到所述渲染容器中,如果不支持MMX指令,利用C语言指令将所述纹理中的原始图像数据渲染到所述渲染容器中。
根据权利要求1所述的方法,其特征在于,所述以特定的混合方式渲染到所述渲染容器中之后,该方法还包括:
将两个以上的渲染容器进行混合渲染。
根据权利要求1所述的方法,其特征在于,该方法还包括:
采用句柄的模式,对所述渲染容器和所述纹理作C接口封装。
一种界面引擎中的图形图像渲染装置,其特征在于,该装置包括渲染容器模块和纹理模块;
所述渲染容器模块,封装有N种渲染能力,从所述纹理模块读取原始图像数据,以预设的混合方式对所述原始图像数据进行渲染,其中,N>1;
所述纹理模块,存储有原始图像数据。
根据权利要求6所述的装置,其特征在于,所述装置还包括信息获取模块;
所述信息获取模块,用于获取当前的CPU信息,得到当前CPU所支持的能力;
所述渲染容器模块,用于根据当前CPU所支持的能力,对所述纹理中的原始图像数据进行渲染。
根据权利要求7所述的装置,其特征在于,所述渲染容器模块包括优化模式选择模块、SSE2渲染模块、SSE渲染模块、MMX渲染模块和C语言渲染模块;
所述优化模式选择模块,用于判断当前CPU是否支持SSE2指令,如果支持SSE2指令,调用SSE2渲染模块进行渲染,如果不支持SSE2指令,判断当前CPU是否支持SSE指令,如果支持SSE指令,调用SSE渲染模块进行渲染,如果不支持SSE指令,判断当前CPU是否支持MMX指令,如果支持MMX指令,利用MMX渲染模块进行渲染,如果不支持MMX指令,调用C语言渲染模块进行渲染;
所述SSE2渲染模块,利用SSE2指令对所述纹理中的原始图像数据进行渲染;
所述SSE渲染模块,利用SSE指令对所述纹理中的原始图像数据进行渲染;
所述MMX渲染模块,利用MMX指令对所述纹理中的原始图像数据进行渲染;
所述C语言渲染模块,利用C语言指令对所述纹理中的原始图像数据进行渲染。
根据权利要求6所述的装置,其特征在于,
所述渲染容器模块,包括两个以上的渲染容器,将该两个以上的渲染容器进行混合渲染。
根据权利要求6所述的装置,其特征在于,
所述渲染容器模块和所述纹理模块的对外接口均为句柄模式的C接口。

说明书

说明书一种界面引擎中的图形图像渲染方法和装置
技术领域
本发明涉及计算机技术领域,尤其涉及一种界面引擎中的图形图像渲染方法和装置。
背景技术
界面引擎,用于为软件产品开发提供服务,使软件界面的开发能够做到所见即所得。
目前,大部分界面引擎都是直接对操作系统内置的图形图像处理API函数进行封装,来提供图形图像渲染的功能。用户在利用界面引擎进行图形图像渲染时,需要根据图形图像渲染内容和流程的需要,调用相应的图形图像处理API函数。
可见,目前的界面引擎对使用者来讲很不方便,需要使用者了解操作系统的绘图机制,学习成本较高,图形图像渲染效率较低。
另外,目前的界面引擎也无法利用系统的硬件性能,提高图形图像渲染的速度,即无法利用系统的硬件特性加速,渲染的性能较差。而且,目前的界面引擎仅能提供其所在的操作系统自带的绘图能力,无法适用于其他操作系统。
发明内容
有鉴于此,本发明提供了一种界面引擎中的图形图像渲染方法和装置,从而方便界面引擎的使用者进行图形图像渲染,提高图形图像渲染的效率。
本发明的技术方案具体是这样实现的:
一种界面引擎中的图形图像渲染方法,该方法包括:
创建渲染容器,所述渲染容器中封装了各种渲染能力;创建纹理,并向所述纹理中填充原始图像数据;
将所述纹理中的原始图像数据,以特定的混合方式渲染到所述渲染容器中。
一种界面引擎中的图形图像渲染装置,该装置包括渲染容器模块和纹理模块;
所述渲染容器模块,封装有各种渲染能力,从所述纹理模块读取原始图像数据,以特定的混合方式对所述原始图像数据进行渲染;
所述纹理模块,存储有原始图像数据。
由上述技术方案可见,本发明通过创建渲染容器和纹理,在所述渲染容器中封装各种渲染能力,在所述纹理中填充原始图像数据,将所述纹理中的原始图像数据,以特定的混合方式渲染到所述渲染容器中。
可见,由于将图形图像渲染的工作由渲染容器和纹理两个模块来完成,并且已将各种渲染能力都封装在图形图像渲染模块中了,因此,使用者只要创建渲染容器和纹理,在所述纹理中填充原始图像数据,并将所述纹理中的原始图像数据渲染到所述渲染容器中,即可实现图形图像的渲染,既方便了界面引擎的使用者进行图形图像渲染,也提高了图形图像渲染的效率。
附图说明
图1是本发明提供的界面引擎中的图形图像渲染方法流程图。
图2是本发明提供的根据当前CPU所支持的能力对纹理中的原始图像数据进行渲染的流程图。
图3是本发明提供的界面引擎中的图形图像渲染装置。
图4是本发明提供的渲染容器模块的结构图。
图5是渲染装置的内部结构示意图。
图6是界面引擎的使用者进行图形图像渲染的流程图。
具体实施方式
图1是本发明提供的界面引擎中的图形图像渲染方法流程图。
如图1所示,该方法包括:
步骤101,创建渲染容器,所述渲染容器中封装了N种渲染能力,其中N>1。
步骤102,创建纹理,并向所述纹理中填充原始图像数据。
步骤103,将所述纹理中的原始图像数据,以预设的混合方式渲染到所述渲染容器中。
本步骤中,所述预设的混合方式,例如可以是关键色过滤混合方式、Alpha混合方式、乘法混合方式等。
其中,在将纹理中的原始图像数据渲染到渲染容器中以后,还可以将两个以上的渲染容器进行混合渲染,即进行容器间的混合渲染,以达到相应的渲染效果。
为了使本发明的渲染方法和相应的渲染装置能够适用于多种操作系统,还可以采用句柄的模式,对所述渲染容器和所述纹理作C接口封装。
本发明中,界面引擎中的图形图像渲染装置可以调用获取中央处理器(CPU)信息的命令,获取当前的CPU信息,从而得到当前CPU所支持的能力,相应地,渲染容器可以根据当前CPU所支持的能力,对纹理中的原始图像数据进行渲染。
图2是本发明提供的根据当前CPU所支持的能力对纹理中的原始图像数据进行渲染的流程图。
如图2所示,该流程包括:
步骤201,判断当前CPU是否支持单指令多数据流扩展指令(StreamingSIMD Extensions,SSE)的后续版本SSE2指令,如果支持SSE2指令,执行步骤202,如果不支持SSE2指令,执行步骤203。
步骤202,利用SSE2指令将所述纹理中的原始图像数据渲染到所述渲染容器中,结束本流程。
步骤203,判断当前CPU是否支持SSE指令,如果支持SSE指令,执行步骤204,如果不支持SSE指令,执行步骤205。
步骤204,利用SSE指令将所述纹理中的原始图像数据渲染到所述渲染容器中,结束本流程。
步骤205,判断当前CPU是否支持多媒体扩展指令(MultiMedia Extensions,MMX),如果支持MMX指令,执行步骤206,如果不支持MMX指令,执行步骤207。
步骤206,利用MMX指令将所述纹理中的原始图像数据渲染到所述渲染容器中,结束本流程。
步骤207,利用C语言指令将所述纹理中的原始图像数据渲染到所述渲染容器中,结束本流程。
可见,通过图2所示方法,在将纹理中的原始图像数据渲染到渲染容器中时,即在到达底层渲染时,可以根据系统的CPU信息选择最优的渲染路径,利用系统的特性实现硬件加速优化,界面引擎的使用者无需关心系统的硬件细节,也能很好地发挥系统的最佳性能。
本发明中的渲染容器利用封装的渲染能力,能够实现多种混合渲染模式,例如alpha混合等,方便界面引擎的使用者实现各种渲染效果。
图3是本发明提供的界面引擎中的图形图像渲染装置。
如图3所示,该装置包括渲染容器模块301和纹理模块302。
渲染容器模块301,封装有N种渲染能力,从纹理模块302读取原始图像数据,以预设的混合方式对所述原始图像数据进行渲染,其中,N>1。
纹理模块302,存储有原始图像数据。
图3所示装置还可以包括信息获取模块。
所述信息获取模块,用于获取当前的CPU信息,得到当前CPU所支持的能力。
渲染容器模块301,用于根据当前CPU所支持的能力,对所述纹理中的原始图像数据进行渲染。关于渲染容器模块301的具体结构,可参见图4。
图4是本发明提供的渲染容器模块的结构图。
如图4所示,渲染容器模块包括优化模式选择模块401、SSE2渲染模块402、SSE渲染模块403、MMX渲染模块404和C语言渲染模块405。
优化模式选择模块401,用于判断当前CPU是否支持SSE2指令,如果支持SSE2指令,调用SSE2渲染模块进行渲染,如果不支持SSE2指令,判断当前CPU是否支持SSE指令,如果支持SSE指令,调用SSE渲染模块进行渲染,如果不支持SSE指令,判断当前CPU是否支持MMX指令,如果支持MMX指令,利用MMX渲染模块进行渲染,如果不支持MMX指令,调用C语言渲染模块进行渲染。
SSE2渲染模块402,利用SSE2指令对所述纹理中的原始图像数据进行渲染。
SSE渲染模块403,利用SSE指令对所述纹理中的原始图像数据进行渲染。
MMX渲染模块404,利用MMX指令对所述纹理中的原始图像数据进行渲染。
C语言渲染模块405,利用C语言指令对所述纹理中的原始图像数据进行渲染。
其中,渲染容器模块可以包括两个以上的渲染容器,每个渲染容器都可以采用图4所示的结构。
渲染容器模块可以将其中两个以上的渲染容器进行混合渲染。
为了便于移植到不同的操作系统中,渲染容器模块301和纹理模块302的对外接口可以采用句柄模式的C接口。
下面举一个具体的例子,对本发明提供的渲染方法和渲染装置进行示例性说明。在该例子中,渲染装置中的接口全部为C语言接口,采用句柄模式实现面向对象,具体请参见图5~图6。
图5是渲染装置的内部结构示意图。
如图5所示,渲染装置包括两个核心模块,其中,对象CxBitmapDevice是供使用者绘制的渲染容器,提供了与windows系统下的图形设备上下文(HDC)对等的能力,对象CxBitmap是存储原始图像数据的纹理模块,一般用来存储jpg,png等图片解码后的原始数据,用来绘制到对象CxBitmapDevice之上。其中,渲染容器也可以称为画布。
在对外接口上,采用句柄的模式,对两个核心对象做C接口的封装,其中,HGCANVAS对应CxBitmapDevice,HGTEXTURE则对应CxBitmap。
本发明的图形图像渲染方法和装置,主要用到以下几个API接口:创建渲染容器的API接口、创建纹理的API接口、纹理绘制的API接口和容器间混合渲染的API接口。
图6是界面引擎的使用者进行图形图像渲染的流程图。
如图6所示,该流程包括:
步骤601,创建渲染容器。
本步骤中,可以利用操作系统的渲染能力创建渲染容器,例如根据windows系统的HDC创建渲染容器。
步骤602,创建纹理。
步骤603,锁定纹理,向该纹理中填充原始图像数据。
步骤604,解锁纹理。
步骤605,将填充了原始图像数据的纹理以指定的混合模式渲染到渲染容器中。
本步骤中,将纹理以指定的混合模式渲染到渲染容器中的具体函数可以为:
可见,本发明中,将界面引擎中的各种渲染能力封装在一个图形图像渲染装置中,并且,该装置能够智能地根据系统的硬件配置选择最优化的渲染方式,并且在接口层面,由于是C接口,因此可以向其他操作系统移植。
本发明提供的图形图像渲染方法和装置能够支持多种渲染模式,其中,能够完美地支持alpha通道混合,令界面引擎使用者可以实现逐像素透明的窗口界面。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

一种界面引擎中的图形图像渲染方法和装置.pdf_第1页
第1页 / 共11页
一种界面引擎中的图形图像渲染方法和装置.pdf_第2页
第2页 / 共11页
一种界面引擎中的图形图像渲染方法和装置.pdf_第3页
第3页 / 共11页
点击查看更多>>
资源描述

《一种界面引擎中的图形图像渲染方法和装置.pdf》由会员分享,可在线阅读,更多相关《一种界面引擎中的图形图像渲染方法和装置.pdf(11页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 CN 103135973 A(43)申请公布日 2013.06.05CN103135973A*CN103135973A*(21)申请号 201110389349.5(22)申请日 2011.11.30G06F 9/44(2006.01)(71)申请人腾讯科技(深圳)有限公司地址 518044 广东省深圳市福田区振兴路赛格科技园2栋东403室(72)发明人涂强 翁粤东(74)专利代理机构北京德琦知识产权代理有限公司 11018代理人张玉波 宋志强(54) 发明名称一种界面引擎中的图形图像渲染方法和装置(57) 摘要本发明实施例公开了一种界面引擎中的图形图像渲染方法和装置。该方。

2、法包括:创建渲染容器,所述渲染容器中封装了N种渲染能力,其中 N1;创建纹理,并向所述纹理中填充原始图像数据;将所述纹理中的原始图像数据,以预设的混合方式渲染到所述渲染容器中。应用本发明能够方便界面引擎的使用者进行图形图像渲染,提高图形图像渲染的效率。(51)Int.Cl.权利要求书2页 说明书4页 附图4页(19)中华人民共和国国家知识产权局(12)发明专利申请权利要求书2页 说明书4页 附图4页(10)申请公布号 CN 103135973 ACN 103135973 A1/2页21.一种界面引擎中的图形图像渲染方法,其特征在于,该方法包括:创建渲染容器,所述渲染容器中封装了N种渲染能力,其。

3、中N1;创建纹理,并向所述纹理中填充原始图像数据;将所述纹理中的原始图像数据,以预设的混合方式渲染到所述渲染容器中。2.根据权利要求1所述的方法,其特征在于,该方法还包括:获取当前的中央处理器CPU信息,得到当前CPU所支持的能力;所述以预设的混合方式渲染到所述渲染容器中包括:获取当前的CPU信息,根据当前CPU所支持的能力,将所述纹理中的原始图像数据渲染到所述渲染容器中。3.根据权利要求2所述的方法,其特征在于,所述根据当前CPU所支持的能力,将所述纹理中的原始图像数据渲染到所述渲染容器中包括:判断当前CPU是否支持单指令多数据流扩展指令SSE指令的后续版本SSE2指令,如果支持SSE2指令。

4、,利用SSE2指令将所述纹理中的原始图像数据渲染到所述渲染容器中,如果不支持SSE2指令,判断当前CPU是否支持SSE指令,如果支持SSE指令,利用SSE指令将所述纹理中的原始图像数据渲染到所述渲染容器中,如果不支持SSE指令,判断当前CPU是否支持多媒体扩展指令MMX指令,如果支持MMX指令,利用MMX指令将所述纹理中的原始图像数据渲染到所述渲染容器中,如果不支持MMX指令,利用C语言指令将所述纹理中的原始图像数据渲染到所述渲染容器中。4.根据权利要求1所述的方法,其特征在于,所述以特定的混合方式渲染到所述渲染容器中之后,该方法还包括:将两个以上的渲染容器进行混合渲染。5.根据权利要求1所述。

5、的方法,其特征在于,该方法还包括:采用句柄的模式,对所述渲染容器和所述纹理作C接口封装。6.一种界面引擎中的图形图像渲染装置,其特征在于,该装置包括渲染容器模块和纹理模块;所述渲染容器模块,封装有N种渲染能力,从所述纹理模块读取原始图像数据,以预设的混合方式对所述原始图像数据进行渲染,其中,N1;所述纹理模块,存储有原始图像数据。7.根据权利要求6所述的装置,其特征在于,所述装置还包括信息获取模块;所述信息获取模块,用于获取当前的CPU信息,得到当前CPU所支持的能力;所述渲染容器模块,用于根据当前CPU所支持的能力,对所述纹理中的原始图像数据进行渲染。8.根据权利要求7所述的装置,其特征在于。

6、,所述渲染容器模块包括优化模式选择模块、SSE2渲染模块、SSE渲染模块、MMX渲染模块和C语言渲染模块;所述优化模式选择模块,用于判断当前CPU是否支持SSE2指令,如果支持SSE2指令,调用SSE2渲染模块进行渲染,如果不支持SSE2指令,判断当前CPU是否支持SSE指令,如果支持SSE指令,调用SSE渲染模块进行渲染,如果不支持SSE指令,判断当前CPU是否支持MMX指令,如果支持MMX指令,利用MMX渲染模块进行渲染,如果不支持MMX指令,调用C语言渲染模块进行渲染;权 利 要 求 书CN 103135973 A2/2页3所述SSE2渲染模块,利用SSE2指令对所述纹理中的原始图像数据。

7、进行渲染;所述SSE渲染模块,利用SSE指令对所述纹理中的原始图像数据进行渲染;所述MMX渲染模块,利用MMX指令对所述纹理中的原始图像数据进行渲染;所述C语言渲染模块,利用C语言指令对所述纹理中的原始图像数据进行渲染。9.根据权利要求6所述的装置,其特征在于,所述渲染容器模块,包括两个以上的渲染容器,将该两个以上的渲染容器进行混合渲染。10.根据权利要求6所述的装置,其特征在于,所述渲染容器模块和所述纹理模块的对外接口均为句柄模式的C接口。权 利 要 求 书CN 103135973 A1/4页4一种界面引擎中的图形图像渲染方法和装置技术领域0001 本发明涉及计算机技术领域,尤其涉及一种界面。

8、引擎中的图形图像渲染方法和装置。背景技术0002 界面引擎,用于为软件产品开发提供服务,使软件界面的开发能够做到所见即所得。0003 目前,大部分界面引擎都是直接对操作系统内置的图形图像处理API函数进行封装,来提供图形图像渲染的功能。用户在利用界面引擎进行图形图像渲染时,需要根据图形图像渲染内容和流程的需要,调用相应的图形图像处理API函数。0004 可见,目前的界面引擎对使用者来讲很不方便,需要使用者了解操作系统的绘图机制,学习成本较高,图形图像渲染效率较低。0005 另外,目前的界面引擎也无法利用系统的硬件性能,提高图形图像渲染的速度,即无法利用系统的硬件特性加速,渲染的性能较差。而且,。

9、目前的界面引擎仅能提供其所在的操作系统自带的绘图能力,无法适用于其他操作系统。发明内容0006 有鉴于此,本发明提供了一种界面引擎中的图形图像渲染方法和装置,从而方便界面引擎的使用者进行图形图像渲染,提高图形图像渲染的效率。0007 本发明的技术方案具体是这样实现的:0008 一种界面引擎中的图形图像渲染方法,该方法包括:0009 创建渲染容器,所述渲染容器中封装了各种渲染能力;创建纹理,并向所述纹理中填充原始图像数据;0010 将所述纹理中的原始图像数据,以特定的混合方式渲染到所述渲染容器中。0011 一种界面引擎中的图形图像渲染装置,该装置包括渲染容器模块和纹理模块;0012 所述渲染容器。

10、模块,封装有各种渲染能力,从所述纹理模块读取原始图像数据,以特定的混合方式对所述原始图像数据进行渲染;0013 所述纹理模块,存储有原始图像数据。0014 由上述技术方案可见,本发明通过创建渲染容器和纹理,在所述渲染容器中封装各种渲染能力,在所述纹理中填充原始图像数据,将所述纹理中的原始图像数据,以特定的混合方式渲染到所述渲染容器中。0015 可见,由于将图形图像渲染的工作由渲染容器和纹理两个模块来完成,并且已将各种渲染能力都封装在图形图像渲染模块中了,因此,使用者只要创建渲染容器和纹理,在所述纹理中填充原始图像数据,并将所述纹理中的原始图像数据渲染到所述渲染容器中,即可实现图形图像的渲染,既。

11、方便了界面引擎的使用者进行图形图像渲染,也提高了图形图像渲染的效率。说 明 书CN 103135973 A2/4页5附图说明0016 图1是本发明提供的界面引擎中的图形图像渲染方法流程图。0017 图2是本发明提供的根据当前CPU所支持的能力对纹理中的原始图像数据进行渲染的流程图。0018 图3是本发明提供的界面引擎中的图形图像渲染装置。0019 图4是本发明提供的渲染容器模块的结构图。0020 图5是渲染装置的内部结构示意图。0021 图6是界面引擎的使用者进行图形图像渲染的流程图。具体实施方式0022 图1是本发明提供的界面引擎中的图形图像渲染方法流程图。0023 如图1所示,该方法包括:。

12、0024 步骤101,创建渲染容器,所述渲染容器中封装了N种渲染能力,其中N1。0025 步骤102,创建纹理,并向所述纹理中填充原始图像数据。0026 步骤103,将所述纹理中的原始图像数据,以预设的混合方式渲染到所述渲染容器中。0027 本步骤中,所述预设的混合方式,例如可以是关键色过滤混合方式、Alpha混合方式、乘法混合方式等。0028 其中,在将纹理中的原始图像数据渲染到渲染容器中以后,还可以将两个以上的渲染容器进行混合渲染,即进行容器间的混合渲染,以达到相应的渲染效果。0029 为了使本发明的渲染方法和相应的渲染装置能够适用于多种操作系统,还可以采用句柄的模式,对所述渲染容器和所述。

13、纹理作C接口封装。0030 本发明中,界面引擎中的图形图像渲染装置可以调用获取中央处理器(CPU)信息的命令,获取当前的CPU信息,从而得到当前CPU所支持的能力,相应地,渲染容器可以根据当前CPU所支持的能力,对纹理中的原始图像数据进行渲染。0031 图2是本发明提供的根据当前CPU所支持的能力对纹理中的原始图像数据进行渲染的流程图。0032 如图2所示,该流程包括:0033 步骤201,判断当前CPU是否支持单指令多数据流扩展指令(StreamingSIMD Extensions,SSE)的后续版本SSE2指令,如果支持SSE2指令,执行步骤202,如果不支持SSE2指令,执行步骤203。。

14、0034 步骤202,利用SSE2指令将所述纹理中的原始图像数据渲染到所述渲染容器中,结束本流程。0035 步骤203,判断当前CPU是否支持SSE指令,如果支持SSE指令,执行步骤204,如果不支持SSE指令,执行步骤205。0036 步骤204,利用SSE指令将所述纹理中的原始图像数据渲染到所述渲染容器中,结束本流程。0037 步骤205,判断当前CPU是否支持多媒体扩展指令(MultiMedia Extensions,说 明 书CN 103135973 A3/4页6MMX),如果支持MMX指令,执行步骤206,如果不支持MMX指令,执行步骤207。0038 步骤206,利用MMX指令将所。

15、述纹理中的原始图像数据渲染到所述渲染容器中,结束本流程。0039 步骤207,利用C语言指令将所述纹理中的原始图像数据渲染到所述渲染容器中,结束本流程。0040 可见,通过图2所示方法,在将纹理中的原始图像数据渲染到渲染容器中时,即在到达底层渲染时,可以根据系统的CPU信息选择最优的渲染路径,利用系统的特性实现硬件加速优化,界面引擎的使用者无需关心系统的硬件细节,也能很好地发挥系统的最佳性能。0041 本发明中的渲染容器利用封装的渲染能力,能够实现多种混合渲染模式,例如alpha混合等,方便界面引擎的使用者实现各种渲染效果。0042 图3是本发明提供的界面引擎中的图形图像渲染装置。0043 如。

16、图3所示,该装置包括渲染容器模块301和纹理模块302。0044 渲染容器模块301,封装有N种渲染能力,从纹理模块302读取原始图像数据,以预设的混合方式对所述原始图像数据进行渲染,其中,N1。0045 纹理模块302,存储有原始图像数据。0046 图3所示装置还可以包括信息获取模块。0047 所述信息获取模块,用于获取当前的CPU信息,得到当前CPU所支持的能力。0048 渲染容器模块301,用于根据当前CPU所支持的能力,对所述纹理中的原始图像数据进行渲染。关于渲染容器模块301的具体结构,可参见图4。0049 图4是本发明提供的渲染容器模块的结构图。0050 如图4所示,渲染容器模块包。

17、括优化模式选择模块401、SSE2渲染模块402、SSE渲染模块403、MMX渲染模块404和C语言渲染模块405。0051 优化模式选择模块401,用于判断当前CPU是否支持SSE2指令,如果支持SSE2指令,调用SSE2渲染模块进行渲染,如果不支持SSE2指令,判断当前CPU是否支持SSE指令,如果支持SSE指令,调用SSE渲染模块进行渲染,如果不支持SSE指令,判断当前CPU是否支持MMX指令,如果支持MMX指令,利用MMX渲染模块进行渲染,如果不支持MMX指令,调用C语言渲染模块进行渲染。0052 SSE2渲染模块402,利用SSE2指令对所述纹理中的原始图像数据进行渲染。0053 S。

18、SE渲染模块403,利用SSE指令对所述纹理中的原始图像数据进行渲染。0054 MMX渲染模块404,利用MMX指令对所述纹理中的原始图像数据进行渲染。0055 C语言渲染模块405,利用C语言指令对所述纹理中的原始图像数据进行渲染。0056 其中,渲染容器模块可以包括两个以上的渲染容器,每个渲染容器都可以采用图4所示的结构。0057 渲染容器模块可以将其中两个以上的渲染容器进行混合渲染。0058 为了便于移植到不同的操作系统中,渲染容器模块301和纹理模块302的对外接口可以采用句柄模式的C接口。0059 下面举一个具体的例子,对本发明提供的渲染方法和渲染装置进行示例性说明。在该例子中,渲染。

19、装置中的接口全部为C语言接口,采用句柄模式实现面向对象,具体请参说 明 书CN 103135973 A4/4页7见图5图6。0060 图5是渲染装置的内部结构示意图。0061 如图5所示,渲染装置包括两个核心模块,其中,对象CxBitmapDevice是供使用者绘制的渲染容器,提供了与windows系统下的图形设备上下文(HDC)对等的能力,对象CxBitmap是存储原始图像数据的纹理模块,一般用来存储jpg,png等图片解码后的原始数据,用来绘制到对象CxBitmapDevice之上。其中,渲染容器也可以称为画布。0062 在对外接口上,采用句柄的模式,对两个核心对象做C接口的封装,其中,H。

20、GCANVAS对应CxBitmapDevice,HGTEXTURE则对应CxBitmap。0063 本发明的图形图像渲染方法和装置,主要用到以下几个API接口:创建渲染容器的API接口、创建纹理的API接口、纹理绘制的API接口和容器间混合渲染的API接口。0064 图6是界面引擎的使用者进行图形图像渲染的流程图。0065 如图6所示,该流程包括:0066 步骤601,创建渲染容器。0067 本步骤中,可以利用操作系统的渲染能力创建渲染容器,例如根据windows系统的HDC创建渲染容器。0068 步骤602,创建纹理。0069 步骤603,锁定纹理,向该纹理中填充原始图像数据。0070 步骤。

21、604,解锁纹理。0071 步骤605,将填充了原始图像数据的纹理以指定的混合模式渲染到渲染容器中。0072 本步骤中,将纹理以指定的混合模式渲染到渲染容器中的具体函数可以为:0073 可见,本发明中,将界面引擎中的各种渲染能力封装在一个图形图像渲染装置中,并且,该装置能够智能地根据系统的硬件配置选择最优化的渲染方式,并且在接口层面,由于是C接口,因此可以向其他操作系统移植。0074 本发明提供的图形图像渲染方法和装置能够支持多种渲染模式,其中,能够完美地支持alpha通道混合,令界面引擎使用者可以实现逐像素透明的窗口界面。0075 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。说 明 书CN 103135973 A1/4页8图1图2说 明 书 附 图CN 103135973 A2/4页9图3图4说 明 书 附 图CN 103135973 A3/4页10图5说 明 书 附 图CN 103135973 A10。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1