ucgui 字型相關實現
ucgui支援等寬字型和變寬字型,支援不同編碼格式字符集如ascii,unicode,shift-jis
字型定義為
typedef struct { GUI_DISPCHAR* pfDispChar; GUI_GETCHARDISTX* pfGetCharDistX; GUI_GETFONTINFO* pfGetFontInfo; GUI_ISINFONT* pfIsInFont; tGUI_ENC_APIList* pafEncode; U8 YSize; U8 YDist; U8 XMag; U8 YMag; union { void *pFontData; const GUI_FONT_MONO* pMono; const GUI_FONT_PROP* pProp; } p; U8 Baseline; } GUI_FONT;不同字型對應的顯示方式可能有差異,如顯示Mono、顯示多位元組字元、AntiAlias顯示等
體現為結構體中的pfDispChar,pfGetCharDistX,pfGetFontInfo,pfIsInFont四個函式
當然除了顯示方式,等寬不等寬字型在儲存上也有差異,這就是union p中pMono,pProp的由來。
等寬字型用結構GUI_FONT_MONO表示,裡面有U8 XSize表示字元寬度。而不等寬字型用結構GUI_FONT_PROP表示。即 GUI_FONT中的pProp,為一個單向連結串列。其中每項中有一個GUI_CHARINFO陣列。而每一個GUI_CHARINFO存有單個字元的寬度、圖形等資訊。
而不同的編碼是透過結構體指標pafEncode實現,該結構的定義如下
typedef struct { tGUI_GetLineDistX* pfGetLineDistX; tGUI_GetLineLen* pfGetLineLen; tGL_DispLine* pfDispLine; } tGUI_ENC_APIList;兩個有意思的特性:
1 GUI_FONT_MONO 字型支援將兩個字元疊加生成新的字元,具體是透過結構體
GUI_FONT_TRANSLIST,GUI_FONT_TRANSINFO實現
2 對unicode的支援不是透過pafEncode實現,透過GUI_UC_STARTCHAR 0x1a,GUI_UC_ENDCHAR 0xe2來標誌UNICODE的開始結束[@more@]
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/116625/viewspace-966795/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 公文相關字型下載
- 字串相關函式的實現字串函式
- php實現七牛雲相關操作PHP
- CSS 實現搜尋相關互動CSS
- html 列印相關操作與實現詳解HTML
- css實現炫彩字型CSS
- 純CSS實現液晶字型效果CSS
- Node相關實操
- 關於圖文識別功能相關技術的大致實現
- TypeScript實現陣列相關簡單演算法TypeScript陣列演算法
- DB2中如何實現Oracle的相關功能DB2Oracle
- CSS 實現字型顏色漸變CSS
- mysql load 相關實驗MySql
- 深入淺出換膚相關技術以及如何實現
- Vue專案中路由動態傳參功能相關實現Vue路由
- python 計算兩個列表的相關係數的實現Python
- 實驗七 檔案相關
- C#中介面的顯式實現與隱式實現及其相關應用案例C#
- 關於字型適配
- mysql load 相關實驗記錄MySql
- Flutter實戰之非同步相關Flutter非同步
- nodejs實現微信小程式支付功能及相關問題總結NodeJS微信小程式
- 深入理解PHP+Redis實現分散式鎖的相關問題PHPRedis分散式
- c語言與字串相關的庫函式的模擬實現C語言字串函式
- java實現有理數分數相關計算(淺度拷貝)案例Java
- BMJ:研究發現環境與肥胖相關
- QQ瀏覽器Date相關函式實現不符合ECMA規範瀏覽器函式
- oauth2.0實現sso單點登入的方式和相關程式碼OAuth
- 6-C/C++實現資料結構連結串列相關操作C++資料結構
- 求助,現在有什麼 AI 相關的比較實用測試工具嗎?AI
- 【C語言】常用的字串函式及相關函式的自我實現C語言字串函式
- 五子棋AI:實現邏輯與相關背景探討(上)AI
- 五子棋AI:實現邏輯與相關背景探討(下)AI
- 陪玩系統原始碼實現音訊編碼的相關步驟原始碼音訊
- Docker網路,手把手教你如何實現容器網路相關知識Docker
- 『現學現忘』Docker相關概念 — 4、虛擬化概念Docker
- PHP相關PHP
- AndroidJNI相關Android
- 【Unity】相關Unity