一种界面库架构方法技术

技术编号:2828105 阅读:260 留言:0更新日期:2012-04-11 18:40
本发明专利技术属于软件开发库领域,公开了一种界面库架构方法,其特征在于,自上而下依次包括了用户层,控件层,场景幻灯片层和引擎层;用户层通过创建控件层对象和调用控件层接口操纵界面元素;控件层包括了所有独立控件或组合控件,控件操作场景幻灯片层的场景对象和图层;场景幻灯片层包括了场景对象和图层,场景对象管理控件图层的绘制及更新,图层调用引擎层的绘制引擎接口将图层绘制在控件的画布上;绘制引擎层包括了绘制引擎接口,接受来自场景幻灯片层的图层的调用,实现图像和文字的绘制。实施本发明专利技术的界面库架构方法,能很好地满足桌面网络游戏软件的界面需求,组件维护也非常方便。

【技术实现步骤摘要】

本专利技术涉及软件开发库,具体的说,是涉及一种界面库的架构方法。技术背景软件的UI界面是应用软件与应用软件的用户之间进行交互活动的载体。不同应用软件的界面可以是千变万化的,但其中会有许多交互 逻辑相对独立的元素,它们有相同的交互逻辑和相似的显示,简单的例如用于显示一行文字的静态文本框、按钮、用于接收输入文本的编辑框等等;复杂的比如一组互斥按钮、Tab等组合控件。这一类各个界面都 能通用的元素,我们称之为UI界面控件或UI界面组件。应用软件的每一个界面都可以看作是数个UI界面控件的组合。而这 些UI界面控件的实现完全可以放在一个通用的库中。界面库实际上就 是提供给应用软件开发人员的一个工具包,提供已封装好的UI界面控 件给软件开发人员使用,使得使用者无需关心每一个UI界面控件内部的逻辑实现,而只需要关心和管理控件与控件之间的业务逻辑关联和数 据传递即可。通常一个完整的界面库大致应包含了以下几个方面的设计(A) —组UI界面控件类及它们的对外操作接口;(B) 控件管理器或界面库管理器;(C) 用于调用不同绘制引擎的绘制接口。其中,(A)是每个界面库必须包含的内容,应用软件开发者在使用 界面库时,必须通过每个控件的接口操作这些控件以改变控件的状态、表现等。(B)的控件管理器是指用于管理所有属于同一界面库体系的UI控 件之间的隐式联系的一个或一组对象。这种隐式联系与业务逻辑无关, 仅与界面表现与交互响应相关,例如控件与控件之间由于某种关系(最 常用的就是树型结构)而形成的位置遮挡、显示顺序、消息分发与传递、界面更新策略等等。并不是所有的界面库都会有这类对象。在windows 系统中,如果界面库的每个控件都拥有一个windows窗口句柄,那么它 即隐式地使用了操作系统作为它的控件管理器,操作系统会替它完成上 述所有的管理工作。而对于在游戏中使用的的界面库,由于所有控件共 用一个windows窗口 ,势必需要一个控件管理器来管理这种关系。有时, 游戏要求的高刷新率使得界面库管理器抛弃更新区域处理功能,而采用 定时(或在空闲时)更新整个界面的方式。 一些界面库的控件管理器不 仅实现这种控件之间关系的管理,还管理界面库的一些全局信息,如使 用绘制引擎的类型,界面库风格等等,以提高其通用性,适应不同应用 软件的需求。在设计UI库时,如果让UI控件在绘制时调用另 一个对象做绘制工 作,这个对象就叫作绘制引擎或对绘制引擎的一个封装。调用接口即称 为绘制接口,它通常在游戏界面使用的界面库中出现。游戏界面由于需 要较高的刷新率和更丰富的界面表现, 一般不会使用微软公司的 windows GDI绘制引擎,而使用第三方开发的各种专门绘制引擎。而3D 游戏则必须要使用这种绘制接口方便地更换专用的3D绘制引擎。桌面 应用软件由于对用户界面的显示要求不高,使用的界面库通常在控件内 部使用windowsGDI进行绘制即可,并不把这种操作独立出来,应此也 没有绘制接口的设计。这种界面库的架构设计,对于想更换绘制引擎的 需求将十分不利。目前界面库的架构设计根据应用场景可以分为两大类 一类应用于桌面软件,即使用微软公司的windowsGDI绘制界面,不需要控件管理 器和绘制接口设计,这类界面库的缺点是由于绘制引擎(GDI)功能和 结构的局限,无法方便地实现更丰富的用户界面表现(如控件半透明 等)。另一类应用于2D或3D游戏,采用了绘制引擎接口设计,可以使 用第三方专用绘制引擎表现更丰富的用户界面。但由于控件管理器是在 一个windows窗口句柄的基础上管理所有控件,使得界面库的使用者无 法在这种控件体系中使用带有windows窗口句柄的子控件,即开发桌面 应用软件如果想使用这种界面库,那么在其中加一个有windows窗口句 柄的控件会十分麻烦,这样就大大局限了桌面应用软件使用控件的种 类;同时,当应用软件每次更新整个界面时,将会占用大量的CPU资源, 从而导致电脑的操作反应速度变慢,直接影响用户的使用感受。以上的这些问题,是在某些特殊的应用软件开发场景,例如开发桌 面网络游戏软件(比如腾讯一^司的qq宠物软件)时产生的。这种应用 软件的特点是,既有多窗口桌面软件界面的需求,某些界面又要达到游 戏引擎的绘制水准,目前软件设计界尚没有出现能够同时满足这种需求 的单一界面库。进一步的,基于上述的这些问题,软件开发界面库的设计者自然的 会想到一种解决方案,即对于上述的这种桌面网络游戏软件的界面库需 求,可以采用两套界面库和两种绘制引擎同时使用的方案对于界面表 现要求不高的界面,使用基于windowsGDI的桌面软件界面库,对于界 面表现要求高的界面,使用游戏专用界面库。但是,这种解决方案的缺 点是(1)需要同时维护两套界面库,工作量大,成本较高;(2)在桌 面软件界面库实现的界面上还是无法实现较丰富的界面效果。
技术实现思路
本专利技术所要解决的技术问题是,提供一种能够满足桌面游戏软件界面开发需求,组件维护又非常简单的界面库架构方法。本专利技术的界面库架构方法是这样实现的,其特征在于,自上而下依次包括了用户层, 控件层,场景幻灯片层和引擎层;所述用户层通过创建控件层对象和调用控件层接口操纵界面元素;所述控件层包括了所有独立控件或组合控件,控件操作场景幻灯片 层的场景对象和图层;所述场景幻灯片层包括了场景对象和图层,场景对象管理控件图层 的绘制及更新,图层调用引擎层的绘制引擎接口将图层绘制在控件的画 布上;所述绘制引擎层包括了绘制引擎接口 ,接受来自场景幻灯片层的图 层的调用,实现图像和文字的绘制。优选实施方式是,控件层以 一个顶层窗口体系为 一个基本管理单位, 在体系中以一棵树描述体系中所有控件的父子关系,树上的每一个结点 为一个控件。优选实施方式是,所述控件包括了有窗口句柄的控件和无窗口句柄 的控件;所述有窗口句柄的控件由用户层的用户创建后,生成窗口画布 并创建相应的场景对象;所述无窗口句柄的控件由用户层的用户创建 后,使用父控件的画布和场景对象,或者由用户层的用户设置该控件的 画布和场景对象;所述场景对象管理该控件图层以及该控件的无窗口句 柄子控件图层的绘制及更新。优选实施方式是,所述控件包括了可见控件和不可见控件;所述不 可见控件用于控制多个逻辑相关的控件;所述可见控件包含一个多状态背景层,所述背景层由一个背景层工厂才艮据背景图片的身并接方式创建。优选实施方式是,所述场景幻灯片层中的场景对象使用线性列表结 构保存每个图层在此场景上的位置信息。优选实施方式是,所述控件层的状态发生改变时,通知场景幻灯片层;场景对象将该图层所在区域收集入更新区域列表,并通知画布进行 更新。优选实施方式是,所述控件层的状态发生改变时,通知场景幻灯片 层;场景对象将该图层所在区域收集入更新区域列表;场景对象利用 CPU空闲或定时器定时更新画布。优选实施方式是,所述绘制引擎层绘制图像时,先使用图像工厂创 建图像对象,并根据图像对象的格式、画布对象的格式、混和模式创建 混和器,混和器根据设定的混和参数将图像对象绘制到画布对象上。优选实施方式是,所述绘制引擎层绘制文字时,先使用文本工厂生 成文字对象,并根据文字对象格式、画布对象格式、混和模式生成混和 器对象,混和器对象将文本文档来自技高网
...

【技术保护点】
一种界面库架构方法,其特征在于,自上而下依次包括了用户层,控件层,场景幻灯片层和引擎层;    所述用户层通过创建控件层对象和调用控件层接口操纵界面元素;    所述控件层包括了所有独立控件或组合控件,控件操作场景幻灯片层的场景对象和图层;    所述场景幻灯片层包括了场景对象和图层,场景对象管理控件图层的绘制及更新,图层调用引擎层的绘制引擎接口将图层绘制在控件的画布上;    所述绘制引擎层包括了绘制引擎接口,接受来自场景幻灯片层的图层的调用,实现图像和文字的绘制。

【技术特征摘要】
1、一种界面库架构方法,其特征在于,自上而下依次包括了用户层,控件层,场景幻灯片层和引擎层;所述用户层通过创建控件层对象和调用控件层接口操纵界面元素;所述控件层包括了所有独立控件或组合控件,控件操作场景幻灯片层的场景对象和图层;所述场景幻灯片层包括了场景对象和图层,场景对象管理控件图层的绘制及更新,图层调用引擎层的绘制引擎接口将图层绘制在控件的画布上;所述绘制引擎层包括了绘制引擎接口,接受来自场景幻灯片层的图层的调用,实现图像和文字的绘制。2、 根据权利要求1所述的界面库架构方法,其特征在于,所述的控件 层以 一个顶层窗口体系为 一个基本管理单位,在体系中以 一棵树描述体 系中所有控件的父子关系,树上的每一个结点为一个控件。3、 根据权利要求2所述的界面库架构方法,其特征在于,所述控件包 括了有窗口句柄的控件和无窗口句柄的控件;所述有窗口句柄的控件由 用户层的用户创建后,生成窗口画布并创建相应的场景对象;所述无窗 口句柄的控件由用户层的用户创建后,使用父控件的画布和场景对象, 或者由用户层的用户^:置该控件的画布和场景对象;所述场景对象管理 该控件图层以及该控件的无窗口句柄子控件图层的绘制及更新。4、 根据权利要求2所述的界面库架构方法,其特征在于,所述控件包括了可见控件和不可见控件;所述不可见控件用于控制多个逻辑相关的 控件;所述可见控件包含一个多状态背景层,所述背景层由一个...

【专利技术属性】
技术研发人员:杭燕
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:94[中国|深圳]

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

1
相关领域技术
  • 暂无相关专利