cairo是opensource的項目,其在*nix上利用makefile,gcc便能很方便進行編譯,客戶程序也能很方便pkg-config進行鏈接.
cairo 依賴項目: FreeType,FontConfig,libPng,libExpat,libZ
Win32平臺的編譯也是非常簡單,只要將makefile.in里面的東東搬到CMakefiles.txt中,然后用CMake(2.4)產(chǎn)生vs2005的工程即可
WINCE的編譯可謂是異常的麻煩
FreeType倒是不錯,自帶了wince的工程檔,F(xiàn)ontConfig卻是沒有,且Fontconfig為了實現(xiàn)多進程共享字體資源而采用了cache機制,應用程序通過mmap()將字體信息映射到自己的地址空間來訪問。這種模式在wince里可謂沒有必要,所以對Fontconfig進行了比較大的手術(shù),去除了FcSerialize,FcCache,FcPattern的內(nèi)存映射機制,同時限定fonts.conf的存儲位置,字體目錄位置等等。
libPng:
libpng的 png_convert_from_struct_tm ,png_convert_from_time_t 在wince得不到實現(xiàn),因為部分的c runtime functions在wince沒有實現(xiàn),所以不得已自己實現(xiàn)這些功能函數(shù)
我編譯的cairo特性:
支持win32_surface,freetype,fontconfig,image_surface,png_surface