c語言圖形庫lcui 1.0 alpha2免費版是一款采用c語言編寫的ui圖形庫,支持使用css和xml編寫界麵,新版本加入了對uwp程序的支持,c語言也能製作出實用的窗口應用了,需要的用戶不妨下載試試。
調整代碼結構
改進 TextView 部件
改進 TextEdit 部件的光標定位與文本渲染
改進部件的盒形陰影(box-shadow)繪製
添加適用於 UWP 應用的驅動支持,示例應用代碼在這裏。
改進對高分屏的支持
添加 dp、sp 度量單位,功能與 Android 中的同名單位相似
添加縮放支持,可根據屏幕像素密度設置合適的縮放比例
完善自動化構建和測試
添加單元測試
添加代碼覆蓋率測試
引入 valgrind 內存檢查工具
解決所有內存泄露和內存訪問越界問題
解決部件布局功能中存在的一些問題
解決 jpeg 圖像讀取器有時會讀取失敗的問題
其它已知 BUG 修複
如需了解更多代碼變更細節,請查看此次拉取請求,包含 86 次代碼提交,淨增 6K+ 行代碼。
這個版本已經引入 UWP 應用的驅動支持,基於 DirectX 11,封裝了 UWP C++ 接口調用代碼,源代碼參考自 Visual Studio 提供的 DirectX 11 示例應用(通用 Windows),你可以在 src/platform/windows 目錄下找到實現代碼,示例應用代碼在 build/windows/LCUIApp/App.cpp,編譯生成 LCUIApp 項目即可查看運行效果。
該驅動代碼單獨放在 LCUIUWPApp 項目中,編譯生成的是動態庫(dll),需要與 LCUIUWP 項目一起使用。由於該項目隻是做了簡單的封裝,沒有對靈活性和擴展性做過多的考慮,因此,如果你有其它需求(例如在應用掛起、恢複時做一些操作),請手動修改該項目的代碼。
如今高分屏在手機和筆記本上日漸普及,作為一個圖形界麵開發庫,如果還停留在以像素(px)為單位設置界麵元素的位置和大小的話,那麼在各種分辨率下的視覺體驗會慘不忍睹,因此,LCUI 在此次版本更新中添加了高分屏適配方案,原理很簡單,讓界麵元素支持比例縮放,這樣就能夠根據屏幕像素密度以合適的縮放比例呈現界麵內容。
除此之外,還添加了 dp 和 sp 度量單位,這兩個度量單位參考自 Android,效果大致一樣,相信 Android 程序員們對其最為熟悉,此處就不做詳細說明了。
注:目前 LCUI 並不支持自動檢測 dpi 來設置縮放比例,你需要手動設置縮放比例,這個問題會在後續版本中解決。
在以往的版本中,每次代碼改動都有可能影響到正常功能,遇到這種情況隻能人工手動運行程序來檢查各項功能是否運作正常,既麻煩又浪費時間。在此次版本更新後這個情況會有所改善,部分主要功能模塊已經有了對應的單元測試,在每次更新代碼後,可以方便的根據自動化構建和測試結果來得知是否存在新 BUG。
有時一兩處存在內存越界的代碼可能不會影響到正常的運行結果,一旦數量多起來的時候就很容易讓程序崩潰,更為奇特的是程序並不是固定在某個情況下崩潰的。為確保單元測試能夠得到正常的結果,LCUI 引入了 valgrind 內存檢查工具,並將內存檢查結果作為測試是否通過的條件之一,以前堆積的內存訪問越界和內存泄漏問題在這個版本中已經全部解決。
商業許可
和其它 GPL軟件的套路一樣,LCUI 添加了收費的商業授權許可,允許閉源商用,附帶一點點技術支持服務。當然,這主要是為以後的可持續發展做些準備,現階段並不指望有多少人會用。商業授權的收費並不貴,可能還不及某些實習生的半個月工資,你可以當作是聘用了個實習生花了幾天時間寫的界麵庫。
CSS 框架
手寫 CSS 代碼和調整界麵布局終究是一件麻煩的事情,就像 Web 前端程序員不用現成的 CSS 框架寫網站一樣,除了業務邏輯還要浪費時間寫 CSS 代碼調整頁麵效果。作者計劃為此開發一個新的項目,包含 CSS 框架、常用界麵組件、國際化支持(i18n)等,如果你是 Web 前端大佬,踩過一些坑,用過一些主流的 CSS 框架,可以在這裏與作者交流心得體會,包括但不僅限於:工程目錄劃分、CSS 代碼命名、編碼規範、SCSS 技巧、界麵配色及視覺效果這類內容。
相信很多人已經習慣看到那些活躍的開源項目,即使自己什麼都不用做,它也能積極的發展下去,然而 LCUI 並不是那種有強大社區力量或雄厚資金支持的開源項目,所以,如果你有什麼需求,請先閱讀以下內容。
遇到問題時請盡量花時間自己獨立解決,實在無法解決的話,請再花些時間準備好詳細的問題描述,然後按照下麵給出的方法提交問題。
普通的使用問題,請在開源中國社區(問答板塊)、SegmentFault 或 Stackoverflow 上提交問題並 @ 作者,這樣作者在幫助你解決問題後至少能賺點積分/聲望值,還能讓搜索引擎多收錄一條 LCUI 相關的內容,幫助其他遇到類似問題的人。
BUG、新功能建議、代碼改進建議等核心開發相關的問題請提交至 GitHub 的 Issues 頁麵中。雖然作者英語比較渣,但還是建議你使用英語撰寫內容,就當是一起學習英語吧。
如果你想提交自己的代碼改進方案,請先向作者確認這個方案是否符合要求,確認之後再開始編寫代碼,務必遵循現有代碼風格。在代碼完成後,請提交拉取請求(Pull Request),讓作者決定是否拉取你的分支裏的代碼並合並至主分支,必要的話請補充單元測試。
文檔相關問題、需求及改進建議,請提交至 LCUI-Guide 項目裏。
76.4M / 03-25
立即下載55M / 06-05
立即下載237.9M / 04-13
立即下載140.5M / 03-06
立即下載900.9M / 03-02
立即下載96.2M / 07-06
立即下載311.2M / 07-06
立即下載335M / 07-06
立即下載200M / 07-06
立即下載413.8M / 07-06
立即下載353.9M / 06-05
立即下載131.8M / 04-13
立即下載230.8M / 03-03
立即下載195.6M / 03-03
立即下載165.4M / 03-03
立即下載45.6M / 09-08
立即下載665.2M / 07-06
立即下載2.84G / 07-06
立即下載93M / 07-06
立即下載338.3M / 07-06
立即下載1.38G / 07-26
立即下載488.3M / 07-16
立即下載109.8M / 06-03
立即下載142M / 01-08
立即下載1.2M / 11-23
立即下載548.8M / 04-13
立即下載1.6M / 04-13
立即下載1.48G / 03-18
立即下載646.6M / 03-03
立即下載133.7M / 03-03
立即下載325.8M / 06-07
立即下載60M / 04-29
立即下載254M / 04-25
立即下載659M / 04-23
立即下載1M / 12-26
立即下載253.4M / 12-08
立即下載253M / 12-08
立即下載1.19G / 11-16
立即下載110.5M / 04-23
立即下載26.7M / 03-16
立即下載488.3M / 07-16
立即下載248.9M / 12-08
立即下載248.9M / 12-08
立即下載201.2M / 04-13
立即下載100.6M / 03-06
立即下載148.9M / 03-06
立即下載1.12G / 07-06
立即下載1.25G / 07-06
立即下載9.48G / 07-06
立即下載50KB / 07-06
立即下載116.2M / 04-10
立即下載1.92G / 04-17
立即下載201.5M / 04-13
立即下載7.31G / 07-01
立即下載94.3M / 07-06
立即下載2.48G / 07-06
立即下載7.63G / 07-06
立即下載1M / 07-06
立即下載778.1M / 07-06
立即下載509.7M / 07-06
立即下載561.8M / 07-11
立即下載1.32G / 01-19
立即下載72M / 07-06
立即下載548.7M / 07-06
立即下載1.00G / 07-06
立即下載9.13G / 07-06
立即下載126.2M / 07-06
立即下載72M / 07-06
立即下載105.1M / 07-06
立即下載132M / 07-06
立即下載