В стандарт C++ предложено добавить API на основе свободной графической библиотеки Cairo

Герб Саттер (Herb Sutter), председатель комитета по развитию международных стандартов для языка С++, выступил с предложением включить в состав будущего стандарта ISO C++ программный интерфейс для отрисовки двухмерной графики, реализованный в свободной библиотеке Cairo.

Cairo предоставляет унифицированный программный интерфейс для векторного формирования изображений, похожий на операции рисовая в PostScript и PDF, но не не зависящий от определённого механизма вывода. Формирование 2D-графики может производиться при помощи различных бэкендов вывода, от стандартного вывода на экран через X Window System, Quartz и Win32, до генерации PostScript, PDF, SVG и задействования OpenGL, XCB и DirectFB. Кроме функций, напоминающих операторы рисования PostScript и PDF, API библиотеки предоставляет такие дополненные возможности, как трансформация изображений (масштабирование, поворот, вращение и т.п.), создание полупрозрачных объектов и рендеринг текста. Код Cairo распространяется под лицензиями LGPL и Mozilla Public License. Среди известных проектов, использующих Cairo, можно отметить GTK+ и Firefox.

Так как Cairo написан на языке Си, в стандарте ISO C++ планируется использовать обёртку на языке C++. Создание подобной обёртки упрощает высокое качество кода Cairo, который уже построен в объекто-ориентированном стиле с корректным отделением констант. В настоящее время изучается возможность задействовать автоматическую систему трансляции базового кода на Cи в форму на языке C++. Например, предлагается автоматически преобразовать традиционные функции "_create" в набор конструкторов, а параметры функций (mystruct*, int length) в параметры vector&. При этом дизайн библиотеки, абстрактные вызовы и непосредственно реализация функций останутся неизменными. Подобный подход позволит отслеживать дальнейшее развитие проекта и применять единый набор правил трансляции к будущим выпускам Cairo.

Источник:
http://www.opennet.ru/opennews/art.shtml?num=38792

<= Назад
Комментарии
]]> ipv6 ready Kiev LUGLinux4MeНостальгияЛичный сайт skeletora ]]>

Warning: mysqli_close(): Couldn't fetch mysqli in /opt/www/lin.in.ua/old/include/mysql.php on line 69