Является ли Каир уязвимым для бэкэнда Opengl?

Под этим я подразумеваю, что Каир рисует линии, фигуры и все, используя opengl-аселерированные примитивы или нет? а если нет, то это библиотека?

Ответ 1

Cairo предназначен для гибкого бэкэнда для рендеринга. Он может использовать OpenGL для рендеринга, хотя поддержка по-прежнему отображается как "экспериментальная" на данный момент. Подробнее см. с использованием cairo с OpenGL.

Он также может выводиться в X Window System, Quartz, Win32, буферах изображений, PostScript, PDF и SVG и т.д.

Ответ 2

Бэкенд OpenGL, безусловно, ускоряет некоторые функции. Но их много не ускорить. Тот факт, что он написан против GL 2.1 (и, следовательно, не может использовать более продвинутые функции аппаратного обеспечения 3.x или 4.x), означает, что его просто невозможно ускорить.

Если вы захотите ограничить себя оборудованием NVIDIA, NVIDIA просто вышла с расширением NV_path_rendering, которое обеспечивает много функциональных возможностей 2D, которые вы найдете в Каире. В самом деле, возможно, что вы могли бы написать для этого Cairo. Расширение рендеринга путей доступно только на оборудовании GeForce 8xxx и выше.

Это изящно, поскольку он сосредоточился на конвейере вершин. Он не делает такие вещи, как градиенты или цвета или что-то еще. Это хорошо, потому что он по-прежнему позволяет использовать фрагментарный шейдер. Это означает, что вы можете делать все, что захотите;)