CN103135973A - 一种界面引擎中的图形图像渲染方法和装置 - Google Patents
一种界面引擎中的图形图像渲染方法和装置 Download PDFInfo
- Publication number
- CN103135973A CN103135973A CN2011103893495A CN201110389349A CN103135973A CN 103135973 A CN103135973 A CN 103135973A CN 2011103893495 A CN2011103893495 A CN 2011103893495A CN 201110389349 A CN201110389349 A CN 201110389349A CN 103135973 A CN103135973 A CN 103135973A
- Authority
- CN
- China
- Prior art keywords
- instruction
- container
- module
- image data
- playing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Processing Or Creating Images (AREA)
- Image Generation (AREA)
Abstract
本发明实施例公开了一种界面引擎中的图形图像渲染方法和装置。该方法包括:创建渲染容器,所述渲染容器中封装了N种渲染能力,其中N>1;创建纹理,并向所述纹理中填充原始图像数据;将所述纹理中的原始图像数据,以预设的混合方式渲染到所述渲染容器中。应用本发明能够方便界面引擎的使用者进行图形图像渲染,提高图形图像渲染的效率。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种界面引擎中的图形图像渲染方法和装置。
背景技术
界面引擎,用于为软件产品开发提供服务,使软件界面的开发能够做到所见即所得。
目前,大部分界面引擎都是直接对操作系统内置的图形图像处理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通道混合,令界面引擎使用者可以实现逐像素透明的窗口界面。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (10)
1.一种界面引擎中的图形图像渲染方法,其特征在于,该方法包括:
创建渲染容器,所述渲染容器中封装了N种渲染能力,其中N>1;创建纹理,并向所述纹理中填充原始图像数据;
将所述纹理中的原始图像数据,以预设的混合方式渲染到所述渲染容器中。
2.根据权利要求1所述的方法,其特征在于,该方法还包括:
获取当前的中央处理器CPU信息,得到当前CPU所支持的能力;
所述以预设的混合方式渲染到所述渲染容器中包括:
获取当前的CPU信息,根据当前CPU所支持的能力,将所述纹理中的原始图像数据渲染到所述渲染容器中。
3.根据权利要求2所述的方法,其特征在于,所述根据当前CPU所支持的能力,将所述纹理中的原始图像数据渲染到所述渲染容器中包括:
判断当前CPU是否支持单指令多数据流扩展指令SSE指令的后续版本SSE2指令,如果支持SSE2指令,利用SSE2指令将所述纹理中的原始图像数据渲染到所述渲染容器中,如果不支持SSE2指令,判断当前CPU是否支持SSE指令,如果支持SSE指令,利用SSE指令将所述纹理中的原始图像数据渲染到所述渲染容器中,如果不支持SSE指令,判断当前CPU是否支持多媒体扩展指令MMX指令,如果支持MMX指令,利用MMX指令将所述纹理中的原始图像数据渲染到所述渲染容器中,如果不支持MMX指令,利用C语言指令将所述纹理中的原始图像数据渲染到所述渲染容器中。
4.根据权利要求1所述的方法,其特征在于,所述以特定的混合方式渲染到所述渲染容器中之后,该方法还包括:
将两个以上的渲染容器进行混合渲染。
5.根据权利要求1所述的方法,其特征在于,该方法还包括:
采用句柄的模式,对所述渲染容器和所述纹理作C接口封装。
6.一种界面引擎中的图形图像渲染装置,其特征在于,该装置包括渲染容器模块和纹理模块;
所述渲染容器模块,封装有N种渲染能力,从所述纹理模块读取原始图像数据,以预设的混合方式对所述原始图像数据进行渲染,其中,N>1;
所述纹理模块,存储有原始图像数据。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括信息获取模块;
所述信息获取模块,用于获取当前的CPU信息,得到当前CPU所支持的能力;
所述渲染容器模块,用于根据当前CPU所支持的能力,对所述纹理中的原始图像数据进行渲染。
8.根据权利要求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语言指令对所述纹理中的原始图像数据进行渲染。
9.根据权利要求6所述的装置,其特征在于,
所述渲染容器模块,包括两个以上的渲染容器,将该两个以上的渲染容器进行混合渲染。
10.根据权利要求6所述的装置,其特征在于,
所述渲染容器模块和所述纹理模块的对外接口均为句柄模式的C接口。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110389349.5A CN103135973B (zh) | 2011-11-30 | 2011-11-30 | 一种界面引擎中的图形图像渲染方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110389349.5A CN103135973B (zh) | 2011-11-30 | 2011-11-30 | 一种界面引擎中的图形图像渲染方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103135973A true CN103135973A (zh) | 2013-06-05 |
CN103135973B CN103135973B (zh) | 2018-05-01 |
Family
ID=48495849
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110389349.5A Active CN103135973B (zh) | 2011-11-30 | 2011-11-30 | 一种界面引擎中的图形图像渲染方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103135973B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105630467A (zh) * | 2014-10-31 | 2016-06-01 | 腾讯科技(武汉)有限公司 | 用户交互界面的渲染处理方法及处理装置 |
CN108022281A (zh) * | 2016-10-31 | 2018-05-11 | 龙芯中科技术有限公司 | 渲染三维图形的方法及装置 |
CN108876883A (zh) * | 2018-05-24 | 2018-11-23 | 武汉斗鱼网络科技有限公司 | 基于OpenGLES的纹理创建方法、装置、设备及存储介质 |
CN110620954A (zh) * | 2018-06-20 | 2019-12-27 | 北京优酷科技有限公司 | 用于硬解的视频处理方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101067827A (zh) * | 2007-06-14 | 2007-11-07 | 上海创图网络科技发展有限公司 | 一种基于浏览器的三维网页实现方法 |
CN101251958A (zh) * | 2007-07-06 | 2008-08-27 | 浙江大学 | 面向训练的汽车驾驶模拟机实现方法 |
CN101853162A (zh) * | 2010-06-01 | 2010-10-06 | 电子科技大学 | 一种可编辑的网页三维几何造型渲染方法 |
CN102169596A (zh) * | 2011-03-09 | 2011-08-31 | 深圳市酷开网络科技有限公司 | 一种在嵌入式设备上实现3d渲染的方法及装置 |
-
2011
- 2011-11-30 CN CN201110389349.5A patent/CN103135973B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101067827A (zh) * | 2007-06-14 | 2007-11-07 | 上海创图网络科技发展有限公司 | 一种基于浏览器的三维网页实现方法 |
CN101251958A (zh) * | 2007-07-06 | 2008-08-27 | 浙江大学 | 面向训练的汽车驾驶模拟机实现方法 |
CN101853162A (zh) * | 2010-06-01 | 2010-10-06 | 电子科技大学 | 一种可编辑的网页三维几何造型渲染方法 |
CN102169596A (zh) * | 2011-03-09 | 2011-08-31 | 深圳市酷开网络科技有限公司 | 一种在嵌入式设备上实现3d渲染的方法及装置 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105630467A (zh) * | 2014-10-31 | 2016-06-01 | 腾讯科技(武汉)有限公司 | 用户交互界面的渲染处理方法及处理装置 |
CN105630467B (zh) * | 2014-10-31 | 2020-07-14 | 腾讯科技(武汉)有限公司 | 用户交互界面的渲染处理方法及处理装置 |
CN108022281A (zh) * | 2016-10-31 | 2018-05-11 | 龙芯中科技术有限公司 | 渲染三维图形的方法及装置 |
CN108022281B (zh) * | 2016-10-31 | 2021-02-23 | 龙芯中科技术股份有限公司 | 渲染三维图形的方法及装置 |
CN108876883A (zh) * | 2018-05-24 | 2018-11-23 | 武汉斗鱼网络科技有限公司 | 基于OpenGLES的纹理创建方法、装置、设备及存储介质 |
CN110620954A (zh) * | 2018-06-20 | 2019-12-27 | 北京优酷科技有限公司 | 用于硬解的视频处理方法和装置 |
CN110620954B (zh) * | 2018-06-20 | 2021-11-26 | 阿里巴巴(中国)有限公司 | 用于硬解的视频处理方法、装置和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN103135973B (zh) | 2018-05-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106031172B (zh) | 用于视频编码和解码的自适应传递函数 | |
KR101076245B1 (ko) | 상대 주소 발생 | |
CN104102545A (zh) | 移动增强现实浏览器三维资源配置与加载的优化方法 | |
CN105321142B (zh) | 经由计算流水线进行的采样、错误管理和/或上下文切换 | |
CN110533755A (zh) | 一种场景渲染的方法以及相关装置 | |
CN101833542A (zh) | 一种用户界面字体渲染方法及装置 | |
CN101441773B (zh) | 一种动画实现方法、系统及移动终端 | |
US9251731B2 (en) | Multi-sampling anti-aliasing compression by use of unreachable bit combinations | |
CN101729753B (zh) | 一种java应用中加载图片的方法和装置 | |
CN103135973A (zh) | 一种界面引擎中的图形图像渲染方法和装置 | |
US20080122852A1 (en) | Shared graphics infrastructure | |
WO2023071482A1 (zh) | 视频编辑方法和电子设备 | |
CN109993817B (zh) | 一种动画的实现方法和终端 | |
CN107544805B (zh) | 基于Android系统可复用框架的手机游戏系统架构 | |
CN114968152B (zh) | 减少virtio-gpu额外性能损耗的方法 | |
CN103460292B (zh) | 定义立体视觉图形对象的场景图形 | |
CN102054051B (zh) | 记录显示屏幕的内容 | |
CN114205680A (zh) | 视频封面展示方法及其装置、设备、介质、产品 | |
US8817050B1 (en) | N-patch image resizing | |
CN105786449B (zh) | 基于图形处理的指令调度方法及装置 | |
US8203567B2 (en) | Graphics processing method and apparatus implementing window system | |
CN106326186A (zh) | 一种片上系统、图形绘制方法、中间层及嵌入式设备 | |
KR20100003518A (ko) | 게임기용 mpu 및 3d 그래픽 프로세서 | |
CN114780211A (zh) | 管理安全容器的方法及基于安全容器的系统 | |
US20130187931A1 (en) | System and method for multiple native software applications user interface composition |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |