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

в среде KDE при переходе к Desktop Effects и на вкладке Дополнительно есть опция с именем "Compositing type", которая может быть установлена в OpenGl или XRenderer.

  1. в чем разница между этими двумя вариантами?

  2. каков вариант использования каждого варианта?

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, это больше не имеет практического значения).