轉自 暗の魔法使 博客:https://blog.csdn.net/jsntzsy/article/details/88564704 作者:ExDirectUI 諾諾
工作總結
今天已經把字體對象的代碼寫的差不多了,爲了節省資源,字體對象採用引用計數來操作,這樣多個相同字體就不會創建多次了。
字體對象支持在不改變句柄的情況下修改字體信息,引擎內部會直接通過算法增加引用計數或創建新字體,外部仍通過該字體句柄進行操作,但已經繪製出來的文字當然還會是老字體,不過修改字體反正要重畫控件的,應該不礙事。
工作成果
字體對象目前導出的函數有:
- ExFont_Create 創建默認字體
- ExFont_CreateFromFamily 創建自字體名稱
- ExFont_CreateFromLogFont 創建自邏輯字體
- ExFont_Destory 銷燬字體
- ExFont_GetFontAtom 獲取當前字體原子號(標識)(修改後會變)
- ExFont_Get/SetFontFace 獲取/設置當前字體名稱
- ExFont_Get/SetFontSize 獲取/設置當前字體尺寸
- ExFont_Get/SetFontStyle 獲取/設置當前字體風格(粗體、斜體、下劃線、刪除線)
- ExFont_GetLogFont 獲取當前字體的邏輯信息(修改後會變)
- ExFont_GetFontContext 獲取當前字體上下文(修改後會變)
- ExFont_Clone 複製字體(增加對應字體的引用計數)
- ExFont_Equal 比對兩個字體對象描述的字體是否一致
下一步的工作計劃
預計在本週內完成繪圖模塊中路徑對象、區域對象、矩陣對象的設計和實現。
作者的備忘錄
什麼時候要抽空研究一下如何加載內存字體,另外要測試類似FontAwesome的圖形字體庫是否完美支持。
另外被句柄表結構的參數類型坑了,以爲是DWORD可以塞32位,結果給句柄類型的只有4位,這句柄類型瞬間只能存16個了,有點不爽啊。。