針對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