针对CGUI库功能强,但使用问题颇多的现象,决定重构。

重构总则:
1〉去除冗余部分,精简优化代码。
2〉删除String类,其采用了兼容差的utf变长字符编码。
3〉去除多余组名规范,文件名具备GUID特性。
4〉给底层模块代码解耦,松耦合组织底层,禁止在基层使用全局对象和单体对象。
5〉修补异常处理,其大部分属于错误处理范畴。屏蔽了错误调试,使断言不能精确定位。改为try{}catch()

{assert(0);}
6〉规范命名空间,将所有对象放入 namespace DCH{ namespace GUI2D{}}。
7〉删除Script模块
8〉删除动态库载入模块
9〉实现GUIRenderer子类嵌入自家的3D引擎支持
10〉删除Editbox类正则式模块,这也符合类功能单一原则;同时也消除正则式PCRE库隐患。

 

重构细则:
1〉核心管理模块文件放在根目录。
2〉Image装载采用FreeImage模块。
3〉Utlit模块负责基础结构和功能。
4〉Xml解析采用TinyXML模块,修正缺省字符编码为Unknown(即 ascii)。
5〉图形原点规定在左上角,TopLeftToBottomRight坐标系。
6〉删除工厂别名Alias成员。
7〉调整在System类初始化时注册所有控件及其渲染的工厂类,静态创建注册渲染窗工厂。
8〉修改图形GUIRenderer的Quad_mode为贴图图层混合模式。
9〉删除工厂类遍历器的对外暴露。
10〉对混合中英字符统一为Unicode编码,由FreeTypeFont类处理中文显示。
11〉取消窗体前缀名
12〉修正FalagardComponentBase类,对窗体图形的Alpha运算错误。
13〉删除PCRE库,有字符类缓冲区溢出漏洞,对堆有隐含的不稳定操作。


/////////////////////////////////////////////////////////////////////////////
重构结果:(part source open !)
http://blog.csdn.net/beidoustudio/archive/2009/02/07/3867995.aspx