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