发布时间:2025-12-10 19:37:50 浏览次数:20
【CEGUI】概念简介CEGUI背景CrazyEddie’sGUI(MITLicense),一款开源的GUI(图形用户界面)库。使用C++实现,遵循OOP,其宗旨:gamesdeveloperswhoshouldbespendingtheirtimecreatinggreatgames,notbuildingGUIsub-systems.目前最新版为0.8.7,官网(http://cegui.org.uk/)下文以0.8.7版本进行介绍。架构图ImageCode:图形解
Crazy Eddie’s GUI(MIT License),一款开源的GUI(图形用户界面)库。使用C++实现,遵循OOP,其宗旨:
games developers who should be spending their time creating great games, not building GUI sub-systems.
目前最新版为0.8.7,官网(http://cegui.org.uk/)
下文以0.8.7版本进行介绍。
属性系统(Property)
CEGUI中的属性,其实就是一组数据。这些数据可以影响窗口的外观、行为等等。
不仅Window,所有对象,都可以有属性。
属性系统的诞生,是为了可以通过脚本,利用xml动态配置窗口的相关数据。
<Property Name="UnifiedMaxSize" Value="{ {1,0},{1,0}}" /> 是否还在为Ide开发工具频繁失效而烦恼,来吧关注以下公众号获取最新激活方式。亲测可用!
【正版授权,激活自己账号】:Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】:官方授权 正版激活 自己使用,支持Jetbrains家族下所有IDE…
事件系统(Event)
事件是窗口通知外部自身状态改变的机制或者方法。当某个时间发生时,调用某些函数处理通知事件。
CEGUI中的事件系统通过事件标识+一组处理函数组成。
对于Callback函数,CEGUI封装了下面几种类型:
事件和属性系统,主要是为了在XML中设置窗口事件和窗口逻辑。
CEGUI中主要有以下几种资源:
.scheme文件:CEGUI系统用到的各种数据的定义,如字体信息、图像集信息、窗口外观信息。<?xml version="1.0" ?> <GUIScheme Name="TaharezLook">// 表示scheme <Imageset Name="TaharezLook" Filename="TaharezLook.imageset" />// 图像集 <Font Name="Commonwealth-10" Filename="Commonwealth-10.font" />// 字体 <LookNFeel Filename="TaharezLook.looknfeel" />//外观文件(falagard系统) <WindowRendererSet Filename="CEGUICoreWindowRenderSet" />// 窗口渲染模块 <FalagardMapping WindowType="TaharezLook/Tree" TargetType="CEGUI/Tree" Renderer="Falagard/Tree" LookNFeel="TaharezLook/Tree" />// 外部名称、内部名称、渲染窗口、外观</GUIScheme> .looknfeel文件:外观系统,可以提供 XML 文件指定窗口的图像布局,子窗口的布局,默认属性,属性定义等. .imageset文件:图像集文件。将一副图像看成若干小图像的集合。图片位置信息,区分各个小图像。(图像集的大小,需为2的幂尺寸,此时显卡处理效率**) .layout文件:布局文件,包含了一个窗口的布局信息。 <?xml version="1.0" encoding="UTF-8"?><GUILayout version="4"><Window type="TaharezLook/FrameWindow" name="Frame" ><Property name="Text" value="Console" /><Property name="TitlebarFont" value="DejaVuSans-10" /><Property name="MaxSize" value="{ {1,0},{1,0}}" /><Property name="TitlebarEnabled" value="True" /><Property name="Area" value="{ {0.208832,0},{0.650387,0},{0.80736,0},{0.998062,0}}" /><Window type="TaharezLook/MultiLineEditbox" name="ConsoleText" ><Property name="Text" value=""/><Property name="ReadOnly" value="True" /><Property name="MaxTextLength" value="1073741823" /><Property name="MaxSize" value="{ {1,0},{1,0}}" /><Property name="Area" value="{ {0.019238,0},{0.030633,0},{0.973721,0},{0.769186,0}}" /></Window><Window type="TaharezLook/Editbox" name="Input" ><Property name="MaxTextLength" value="1073741823" /><Property name="MaxSize" value="{ {1,0},{1,0}}" /><Property name="Area" value="{ {0.019238,0},{0.772141,0},{0.973721,0},{0.980658,0}}" /></Window></Window></GUILayout>