В чем разница между OpenGl и XRender в KDE Desktop Effects?

В среде KDE, когда вы переходите на "Эффекты рабочего стола" и на вкладке "Дополнительно" есть опция "Тип композиций", которая может быть установлена ​​в OpenGl или XRenderer.

  • В чем разница между этими двумя параметрами?

  • Какой вариант использования каждой опции?

Ответы

Ответ 1

OpenGL и XRender - это оба API-интерфейсов рисования, которые позволяют применять определенные геометрические преобразования при этом.

OpenGL нацелен на операции рисования, которые будут выполняться выделенным графическим процессором (GPU), и предоставляет множество функций, которые делают создание 3D-выглядящего изображения очень легким (буфер глубины, глубинное тестирование, 4 × 4 гомогенных матриц преобразования). Но вы можете делать 2D-графику, а также с OpenGL.

XRender - это расширение для X11, поддерживающее методы рендеринга (сглаживание, альфа-смешивание), которые невозможно сделать с основными функциями рисования X11. XRender-API оптимизирован для 2D-графики, хотя (без буфера/теста глубины, матриц преобразования 3 × 3).

Обратите внимание, что XRender не идеально ортогонален OpenGL. Особенно, если вам нужно сглаживание в OpenGL, вам нужно использовать несколько функций из XRender, чтобы включить его.

Какой вариант использования каждой опции?

Опция XRender существует для поддержки систем, для которых нет надлежащей поддержки OpenGL (отсутствие стабильных драйверов), но приемлемая поддержка операций XRender. Также XRender немного проще настроить (с точки зрения программистов), чем OpenGL.

В целом OpenGL более гибкий, чем XRender, с точки зрения программистов. Если вы спрашиваете, какой из них вы должны выбрать: Начните с OpenGL, и если все будет работать, придерживайтесь его. Опция XRender является резервным, если OpenGL не работает должным образом (однако с тех пор, как в настоящее время в драйверах XRender разделяет большую часть с OpenGL или фактически реализуется с использованием OpenGL, это больше не имеет практических различий).