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