Кіріспе

Cairo (Cairo) — ашық кодты графикалық кітапхана, бағдарламалық жасақтама әзірлеушілерге векторлық графика негізінде құрылғыға тәуелсіз API ұсынады. Ол әртүрлі бэкендтерде екі өлшемді сурет салуға арналған негізгі элементтерді қамтамасыз етеді. Cairo мүмкіндігі болған жағдайда аппараттық үдетуді пайдаланады.

Тілдік байланыстар

Бір бағдарламалау тілінде жазылған кітапхана, егер оған байланыстар (bindings) жасалса, басқа тілде де қолданылуы мүмкін. Каир түрлі тілдер үшін байланыстарды ұсынады, олардың ішінде C++, C# және басқа CLI тілдері, Delphi, Eiffel, Fortran, Factor, Harbour, Haskell, Julia, Lua, Perl, PHP, Python, Ruby, Rust, Scheme, Smalltalk және Gambas (Visual Basic сияқты) сияқты көптеген тілдер бар.

Құрал жиынтығының байланыстары

Cairo – тек сурет салу кітапханасы болғандықтан, оны графикалық пайдаланушы интерфейсі құралдар жиынтығымен интеграциялау өте пайдалы болуы мүмкін. FLTK толыққанды Cairo қолдауын ұсынады (cairo compile switch арқылы қосу арқылы). GTK 2005 жылдан бастап, 2.8 нұсқасынан бастап, графикалық басқару элементтерінің көп бөлігін көрсету үшін Cairo-ны қолдана бастады, ал 3.0 нұсқасынан бастап барлық көрсету Cairo арқылы жүзеге асырылады. Cairo әзірлеу тобы SDL-ге беттерді көрсету бойынша жаңартылған нұсқауларды ұстап тұрады.

Қол жетімді серверлер

Каир бірнеше түрлі артқы жақтағы шығыстарды (растерлеуді қоса алғанда) қолдайды, олар оның кодында "беттері" деп аталады. Артқы жақтағы қолдау X Window жүйесіне Xlib және XCB, Win32 GDI, OS X Quartz Compositor, BeOS API, OS/2, OpenGL контексттері (тікелей және glitz арқылы), жергілікті кескін буферлері, PNG файлдары, PDF, PostScript, DirectFB және SVG файлдары арқылы шығаруды қамтиды. OpenVG, Qt, Skia және Microsoft Direct2D графикалық API-леріне бағытталған басқа да артқы жақтағылар әзірленуде. BeOS, OS/2 және DirectFB артқы жақтағылары 2022 жылы қолдаудан алынды.

Ерекше қолданылуы

Cairo ашық кодты қоғамдастықта 2D сурет салуға арналған платформааралық қолдауды қамтамасыз етуімен танымал. GTK, 2005 жылғы 2.8 нұсқасынан бастап, өзінің көптеген графикалық басқару элементтерін көрсету үшін Cairo-ны пайдаланады. GTK 3 нұсқасынан бастап барлық рендеринг Cairo арқылы жүзеге асырылады. Debian жүйесінде табылған бағдарлама GTK 3 қолданбаларының векторлық (SVG, PDF немесе PostScript) скриншоттарын алуға мүмкіндік береді. Mono жобасы, соның ішінде Moonlight, GDI+ (libgdiplus) және System атау кеңістіктерінің артқы бөліктерін қуаттандыру үшін Cairo-ны бастапқы тұжырымдама кезінен бері пайдаланып келеді. Mozilla жобасы Cairo-ны Gecko макет қозғалтқышында қолданды, ол Mozilla өнімдерінің графикалық шығысын көрсету үшін пайдаланылады. Gecko 1.8, Mozilla Firefox 2.0 және SeaMonkey 1.0 үшін макет қозғалтқышы ретінде SVG және <canvas> мазмұнын көрсету үшін Cairo қолданылды. Gecko 1.9, Firefox 3-тің негізі болып табылатын Gecko нұсқасы, веб-бет мазмұнын және пайдаланушы интерфейсін (немесе "chrome") көрсету үшін графикалық артқы жағы ретінде Cairo-ны пайдаланады. WebKit фреймворкі GTK және EFL порттарында барлық рендеринг үшін Cairo-ны қолданады. Сондай-ақ, Cairo қолдауымен SVG және <canvas> мазмұнына қолдау қосылды. Poppler кітапханасы PDF құжаттарын көрсету үшін Cairo-ны пайдаланады. Cairo антиалиаздалған векторлық графиканы және мөлдір нысандарды салуға мүмкіндік береді. Векторлық графика қолданбасы Inkscape, контурлық режимде көрсету үшін, сондай-ақ PDF және PostScript экспорттау үшін 0.46 нұсқасынан бастап Cairo кітапханасын пайдаланады. Manim-нің бастапқы нұсқасы ManimCairo деп аталды, ол 3Blue1Brown-ның YouTube бейнелеріндегі анимацияларда қолданылатын математикалық анимация қозғалтқышы. Manim енді OpenGL-ді пайдаланады, бұл нұсқа ManimGL деп аталады. MorphOS 2.5 Cairo-ның ортақ кітапханалық жүзеге асырылуын қамтиды, ол бұрынғы MorphOS нұсқалары үшін жеке релиз ретінде қол жетімді болды. AmigaOS 4.1 әдепкі орнату кезінде Cairo ортақ нысандар кітапханасын (libcairo.so) қолдайды. FontForge 2008 жылғы қазан айының ортасынан бастап рендеринг үшін Cairo-ны әдепкі бойынша қосты. R, егер қол жетімді болса, Cairo арқылы PDF, PostScript және SVG форматтарында графикті шығара алады. Gnuplot 4.4 енді PDF және PNG шығысын көрсету үшін Cairo-ны пайдаланады. PlayStation 3-ке арналған интернет-браузер 4.10 жүйелік бағдарламалық жасақтама жаңартуынан бері Cairo-ны қолданады. Synfig 0.64 енді опционалды Cairo рендерингін қолдайды. Graphite жүйесінде уақыт сериясы деректерін сұраныс бойынша графиктік түрде көрсету. Konfabulator/Yahoo виджет қозғалтқышы Mac OS/X жүйесінде Win32 және Quartz үшін бірдей шығыс алу үшін Cairo-ны пайдаланады. SolveSpace – тегін және ашық кодты 2D және 3D CAD бағдарламалық жасақтамасы.

Тарих

Кит Паккард пен Карл Уорт X терезесі жүйесінде қолдану үшін Каир жобасын құрды. Каир атауы бастапқы Xr атауынан туындаған, ол грек әріптері хи және ро ретінде түсіндіріледі.

Күрделі мәтіннің орналасуы

Каир латын және CJK негізделген қаріптерді қолдайды, бірақ күрделі мәтіндік құралымды қаріптерді тікелей қолдамайды, оларға глифтерді формалау қажет. Каирдің жасаушылары күрделі мәтіндік құралымды қамтамасыз ететін және Каирмен үйлесетін Pango қолдануды ұсынады.