• 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中使用),以及其他没有提到的东西。

  • 相关阅读:
    付出给人一种美好的感觉
    表连接查询 条件在On与Where后区别
    Json与实体类 转化
    算法的时间复杂度和空间复杂度详解
    真的理解同步和异步了吗?
    花生壳申请域名并进行内网穿透
    XML 反序列化
    .Net 发送邮件
    BootStrap DataTable 时间日期列排序
    SQL Server 动态SQL拼接
  • 原文地址:https://www.cnblogs.com/gamesky/p/2863228.html
Copyright © 2020-2023  润新知