<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 軍事指揮系統(tǒng)中VxWorks下漢字顯示技術(shù)

          軍事指揮系統(tǒng)中VxWorks下漢字顯示技術(shù)

          作者: 時間:2009-08-07 來源:網(wǎng)絡(luò) 收藏

          WindML的主要功能有二維圖形API、事件服務(wù)、區(qū)域和視窗管理、多媒體API和資源管理。其中,二維圖形API是最常用的部分,包括基本繪圖操作 (如畫線、矩形、橢圓、多邊形、點等),選擇字體輸出文本、位圖管理、光標(biāo)管理、批量繪圖操作、圖形上下文、色彩管理和雙緩沖等。事件服務(wù)程序用來處理輸入設(shè)備的輸入請求。它會把鍵盤、鼠標(biāo)等輸入數(shù)據(jù)轉(zhuǎn)化為事件并加入應(yīng)用隊列;區(qū)域和視窗管理可以在界面上定義一個區(qū)域或多線程之間共享的窗口,以進行繪圖操作;多媒體APl支持NTSC,PAL,SECAM等視頻制式下DSP或混頻器兩種設(shè)備的音頻輸出,也支持JPEG圖形格式;資源管理器是指常規(guī)的 WindML資源(例如設(shè)備和事件隊列)、內(nèi)存管理和驅(qū)動器注冊等資源的建立、控制和刪除。
          2.2 WindML字體驅(qū)動體系結(jié)構(gòu)
          WindML字體驅(qū)動在WindML 2D API上提供了一個通用的抽象層,允許應(yīng)用程序通過一個通用2D字體API庫使用不同的字體引擎。通用2D字體API是提供給應(yīng)用程序使用字體API的公共接口。字體驅(qū)動不同于中的其他驅(qū)動,它不允許執(zhí)行或使用任何圖形驅(qū)動接口以下的程序,也就是說它不直接訪問硬件,只訪問所使用的圖形驅(qū)動或間接通過UGL圖形驅(qū)動結(jié)構(gòu)來訪問硬件。這就允許字體驅(qū)動可以運行在任何圖形驅(qū)動之上,與字體引擎硬件無關(guān)。WindML字體驅(qū)動體系結(jié)構(gòu)如圖2所示。

          本文引用地址:http://www.ex-cimer.com/article/152394.htm

          2.3 點陣輸出過程
          點陣是利用WindML的圖形輸出功能來實現(xiàn)的。設(shè)計開發(fā)中利用WindML對位圖字符和雙字節(jié)編碼的支持,按照WindML位圖字體文件的格式完成點陣的轉(zhuǎn)換存儲,并使用WindML的雙字節(jié)函數(shù)實現(xiàn)點陣獲取、點陣顯示,將漢字顯示出來。
          WindML有很多字庫文件,原始安裝狀態(tài)下都是西文字庫文件,要在中顯示中文漢字,解決方案是將西文字庫文件修改成為中文字庫文件,即設(shè)計一種類似西文字庫格式的C語言文件,文件中存儲雙字節(jié)的漢字編碼、點陣信息及字體的控制信息等。字庫文件經(jīng)過配置、編譯后生成點陣字庫文件目標(biāo)代碼,點陣驅(qū)動程序從目標(biāo)代碼中獲取點陣信息傳遞給應(yīng)用程序編程接口,應(yīng)用程序調(diào)用圖形顯示函數(shù)輸出漢字。WindML下漢字顯示處理過程如圖3所示。



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();