CEGUI数据文件
CEGUI所用的数据文件除了少数的特殊情况外都是XML格式的。但是,为了清晰的说明数据文件代表什么类型的资源,数据文件并不是以“.xml”作为后缀,而是用更有意义的后缀名。比如,Imageset的后缀名是.imageset,Font的后缀名是.font,等等。下面将对每种文件类型做个简要的说明,以后将对它们进行更深入的讨论。
Imageset
这么说吧,通常,为了提到效率,我们需要把材质等图片组合成一个大的材质图片。在使用的时候就需要在它上面截取得到各个小材质。而这个Imageset就是保存各个小材质在整张源图片上的区域信息(源图片同样在Imageset中指定了)。每个区域信息都有一个独一无二的名字,当提到它们的名字的时候,系统就把它们当作图片处理。所以,也可以说Imageset中定义了一系列的图片。通过修改Imageset中的源图片名、各个小区域的位置和大小,就可以很轻松的改变所画GUI的外观。
Font
显而易见,Font文件定义了CEGUI使用的字体。所能定义的字体类型有两种:
l FreeType Font
这是一种基于true-type(.ttf)的字体文件。从CEGUI 0.5.0开始,在.font文件中用Type="FreeType"指定这种字体类型。在更早的版本中,用"Dynamic"指定。
l Pixmap Font
这种字体就是众所周知的位图字体,这种字体基于一个定义了文字图片的Imageset。从CEGUI 0.5.0开始,在.font文件中用Type="Pixmap"指定此字体。在更早的版本中,用"Static"指定。
Scheme
Scheme文件是把其他数据文件联系到一起的主要手段,同时它也是装载和定义各种控件最方便的方法。一个Scheme文件可以包含下面的一种或多种文件(当Scheme被载入的时候,它所包含的文件也将被载入并初始化):
* Imageset (either a full Imageset via XML, or a single image via an image file)
* Font
* WindowSet
* LookNFell
* WindowRendererSet
* WindowAlias
* FalagardMapping
1)Imageset and Font
它们已经被提到过了。这里列出来仅仅为了说明scheme可以包含它们。
2)WindowSet
主要用来指明一个可载入模块(.dll,.so等)的名字,并列出它所使用的控件中你想注册的控件的名字。如果没有列出任何控件名,那么模块中所有的控件都将被注册。
3)LookNFell:
皮肤,这里定义的就是我们的控件外观了。
4)WindowRendererSet
指明一个可载入模块(.dll等)的名字,并列出它所使用的窗口渲染器(window renderer)中你想注册的窗口渲染器的名字。如果没有列出任何窗口渲染器名,那么模块中所有的窗口渲染器都将被注册。“窗口渲染器”是一个可以控制基本窗口类型渲染的东西。所有的窗口渲染器都是利用'Falagard'蒙皮系统进行渲染的(尽管这不是非常必须的)。
5)WindowAlias
提供通过别名指定一个窗口/控件类型的方法。用此方法,也可以用另一个控件类型来“替代”一个已经注册的控件类型,这样就达到隐藏已注册控件的效果。
6)FalagardMapping
用来创建一个可用的WindowType类型。包含三个部分:TargetType --- 指定基类(具有相关功能);Renderer --- 指定窗口渲染器(可以控制渲染指定的TargetType);LookNFeel --- 指定要使用的皮肤(一般这个它们是通过XML格式的looknfeel文件指定)。
Layout
Layout文件用XML格式描述一个窗口的布局。每个镶嵌的“Window”元素定义一个要创建的窗口或控件,“Property”元素为每个定义的窗口设置相关属性。
Config
CEGUI支持使用配置文件。这个文件允许你定义一些默认参数,比如:默认载入的Scheme,默认载入的Layout,初始化和终止脚本文件(ScriptModule中使用),以及其他没有提到的东西。